decidim-forms 0.21.0 → 0.22.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (92) hide show
  1. checksums.yaml +4 -4
  2. data/app/assets/config/admin/decidim_forms_manifest.js +1 -0
  3. data/app/assets/images/decidim/surveys/icon.svg +1 -19
  4. data/app/assets/javascripts/decidim/forms/admin/collapsible_questions.js.es6 +13 -0
  5. data/app/assets/javascripts/decidim/forms/admin/forms.js.es6 +95 -7
  6. data/app/assets/javascripts/decidim/forms/admin/live_text_update.component.js.es6 +52 -0
  7. data/app/assets/javascripts/decidim/forms/forms.js.es6 +42 -1
  8. data/app/assets/javascripts/decidim/forms/max_choices_alert.component.js.es6 +44 -0
  9. data/app/assets/stylesheets/decidim/forms/forms.scss +39 -0
  10. data/app/cells/decidim/forms/matrix_readonly/show.erb +5 -0
  11. data/app/cells/decidim/forms/matrix_readonly_cell.rb +12 -0
  12. data/app/cells/decidim/forms/question_readonly/show.erb +5 -1
  13. data/app/cells/decidim/forms/question_readonly_cell.rb +5 -0
  14. data/app/cells/decidim/forms/step_navigation/show.erb +35 -0
  15. data/app/cells/decidim/forms/step_navigation_cell.rb +46 -0
  16. data/app/commands/decidim/forms/admin/update_questionnaire.rb +8 -0
  17. data/app/commands/decidim/forms/answer_questionnaire.rb +2 -1
  18. data/app/controllers/decidim/forms/admin/concerns/has_questionnaire.rb +6 -2
  19. data/app/controllers/decidim/forms/concerns/has_questionnaire.rb +11 -2
  20. data/app/forms/decidim/forms/admin/question_form.rb +20 -1
  21. data/app/forms/decidim/forms/admin/question_matrix_row_form.rb +26 -0
  22. data/app/forms/decidim/forms/answer_choice_form.rb +1 -0
  23. data/app/forms/decidim/forms/answer_form.rb +16 -2
  24. data/app/forms/decidim/forms/questionnaire_form.rb +25 -3
  25. data/app/helpers/decidim/forms/admin/application_helper.rb +16 -0
  26. data/app/models/decidim/forms/answer_choice.rb +7 -0
  27. data/app/models/decidim/forms/question.rb +18 -2
  28. data/app/models/decidim/forms/question_matrix_row.rb +12 -0
  29. data/app/views/decidim/forms/admin/questionnaires/_answer_option_template.html.erb +1 -1
  30. data/app/views/decidim/forms/admin/questionnaires/_form.html.erb +37 -4
  31. data/app/views/decidim/forms/admin/questionnaires/_matrix_row.html.erb +34 -0
  32. data/app/views/decidim/forms/admin/questionnaires/_matrix_row_template.html.erb +7 -0
  33. data/app/views/decidim/forms/admin/questionnaires/_question.html.erb +29 -6
  34. data/app/views/decidim/forms/admin/questionnaires/_separator.html.erb +41 -0
  35. data/app/views/decidim/forms/questionnaires/_answer.html.erb +21 -92
  36. data/app/views/decidim/forms/questionnaires/answers/_long_answer.html.erb +1 -0
  37. data/app/views/decidim/forms/questionnaires/answers/_matrix_multiple.html.erb +43 -0
  38. data/app/views/decidim/forms/questionnaires/answers/_matrix_single.html.erb +43 -0
  39. data/app/views/decidim/forms/questionnaires/answers/_multiple_option.html.erb +23 -0
  40. data/app/views/decidim/forms/questionnaires/answers/_separator.html.erb +1 -0
  41. data/app/views/decidim/forms/questionnaires/answers/_short_answer.html.erb +1 -0
  42. data/app/views/decidim/forms/questionnaires/answers/_single_option.html.erb +30 -0
  43. data/app/views/decidim/forms/questionnaires/answers/_sorting.html.erb +23 -0
  44. data/app/views/decidim/forms/questionnaires/show.html.erb +57 -25
  45. data/config/locales/ar.yml +7 -3
  46. data/config/locales/bg-BG.yml +16 -0
  47. data/config/locales/ca.yml +35 -3
  48. data/config/locales/cs.yml +35 -3
  49. data/config/locales/da-DK.yml +1 -0
  50. data/config/locales/de.yml +41 -3
  51. data/config/locales/el.yml +119 -0
  52. data/config/locales/en.yml +35 -3
  53. data/config/locales/es-MX.yml +35 -3
  54. data/config/locales/es-PY.yml +35 -3
  55. data/config/locales/es.yml +35 -3
  56. data/config/locales/et-EE.yml +1 -0
  57. data/config/locales/eu.yml +7 -3
  58. data/config/locales/fi-plain.yml +35 -3
  59. data/config/locales/fi.yml +36 -4
  60. data/config/locales/fr-CA.yml +120 -0
  61. data/config/locales/fr.yml +36 -4
  62. data/config/locales/ga-IE.yml +1 -0
  63. data/config/locales/gl.yml +7 -3
  64. data/config/locales/hr-HR.yml +1 -0
  65. data/config/locales/hu.yml +11 -3
  66. data/config/locales/id-ID.yml +7 -3
  67. data/config/locales/it.yml +36 -4
  68. data/config/locales/ja-JP.yml +120 -0
  69. data/config/locales/lt-LT.yml +1 -0
  70. data/config/locales/lv-LV.yml +119 -0
  71. data/config/locales/mt-MT.yml +1 -0
  72. data/config/locales/nl.yml +35 -3
  73. data/config/locales/no.yml +7 -3
  74. data/config/locales/pl.yml +63 -25
  75. data/config/locales/pt-BR.yml +8 -4
  76. data/config/locales/pt.yml +62 -24
  77. data/config/locales/ro-RO.yml +118 -0
  78. data/config/locales/ru.yml +4 -1
  79. data/config/locales/sk-SK.yml +88 -0
  80. data/config/locales/sk.yml +92 -0
  81. data/config/locales/sl.yml +5 -0
  82. data/config/locales/sr-CS.yml +1 -0
  83. data/config/locales/sv.yml +38 -6
  84. data/config/locales/tr-TR.yml +7 -3
  85. data/db/migrate/20200225123810_create_decidim_forms_question_matrix_rows.rb +11 -0
  86. data/db/migrate/20200304152939_add_matrix_row_id_to_decidim_forms_answer_choices.rb +11 -0
  87. data/lib/decidim/forms/test/factories.rb +20 -0
  88. data/lib/decidim/forms/test/shared_examples/has_questionnaire.rb +313 -36
  89. data/lib/decidim/forms/test/shared_examples/manage_questionnaires.rb +346 -15
  90. data/lib/decidim/forms/user_answers_serializer.rb +21 -4
  91. data/lib/decidim/forms/version.rb +1 -1
  92. metadata +45 -8
@@ -0,0 +1,23 @@
1
+ <div class="check-box-collection">
2
+ <% answer.question.answer_options.each_with_index do |answer_option, idx| %>
3
+ <% choice = answer.selected_choices.find { |choice| choice.answer_option_id == answer_option.id } %>
4
+
5
+ <div class="collection-input">
6
+ <%= label_tag do %>
7
+ <%= check_box_tag "questionnaire[responses][#{answer_idx}][choices][#{idx}][body]",
8
+ translated_attribute(answer_option.body),
9
+ choice.present?, disabled: disabled %>
10
+
11
+ <%= translated_attribute(answer_option.body) %>
12
+
13
+ <%= hidden_field_tag "questionnaire[responses][#{answer_idx}][choices][#{idx}][answer_option_id]", answer_option.id %>
14
+ <% end %>
15
+
16
+ <% if answer_option.free_text %>
17
+ <%= text_field_tag "questionnaire[responses][#{answer_idx}][choices][#{idx}][custom_body]",
18
+ choice.try(:custom_body),
19
+ disabled: true %>
20
+ <% end %>
21
+ </div>
22
+ <% end %>
23
+ </div>
@@ -0,0 +1 @@
1
+ <%= answer_form.hidden_field :body, value: "separator", id: field_id, disabled: disabled %>
@@ -0,0 +1 @@
1
+ <%= answer_form.text_field :body, label: false, id: field_id, disabled: disabled %>
@@ -0,0 +1,30 @@
1
+ <div class="radio-button-collection">
2
+ <% choice = answer.choices.first %>
3
+
4
+ <% answer.question.answer_options.each_with_index do |answer_option, idx| %>
5
+ <% choice_id = "#{field_id}_choices_#{idx}" %>
6
+
7
+ <div class="collection-input">
8
+ <%= label_tag "#{choice_id}_body" do %>
9
+ <%= radio_button_tag "questionnaire[responses][#{answer_idx}][choices][][body]",
10
+ translated_attribute(answer_option.body),
11
+ answer_option.id == choice.try(:answer_option_id),
12
+ id: "#{choice_id}_body", disabled: disabled %>
13
+
14
+ <%= translated_attribute(answer_option.body) %>
15
+
16
+ <%= hidden_field_tag "questionnaire[responses][#{answer_idx}][choices][][answer_option_id]",
17
+ answer_option.id,
18
+ id: "#{choice_id}_answer_option",
19
+ disabled: true %>
20
+ <% end %>
21
+
22
+ <% if answer_option.free_text %>
23
+ <%= text_field_tag "questionnaire[responses][#{answer_idx}][choices][][custom_body]",
24
+ choice.try(:custom_body),
25
+ id: "#{choice_id}_custom_body",
26
+ disabled: true %>
27
+ <% end %>
28
+ </div>
29
+ <% end %>
30
+ </div>
@@ -0,0 +1,23 @@
1
+ <div class="sortable-check-box-collection">
2
+ <% answer.question.answer_options.each_with_index do |answer_option, idx| %>
3
+ <% choice = answer.selected_choices.find { |choice| choice.answer_option_id == answer_option.id } %>
4
+
5
+ <div class="collection-input">
6
+ <%= label_tag do %>
7
+ <%= check_box_tag "questionnaire[responses][#{answer_idx}][choices][#{idx}][body]",
8
+ translated_attribute(answer_option.body),
9
+ choice.present?, disabled: disabled %>
10
+
11
+ <span class="position"><%= choice.try(:position) %></span>
12
+
13
+ <%= translated_attribute(answer_option.body) %>
14
+
15
+ <%= hidden_field_tag "questionnaire[responses][#{answer_idx}][choices][#{idx}][position]",
16
+ choice.try(:position),
17
+ disabled: true %>
18
+
19
+ <%= hidden_field_tag "questionnaire[responses][#{answer_idx}][choices][#{idx}][answer_option_id]", answer_option.id %>
20
+ <% end %>
21
+ </div>
22
+ <% end %>
23
+ </div>
@@ -3,19 +3,21 @@
3
3
  description: translated_attribute(questionnaire.description),
4
4
  }) %>
5
5
 
6
+ <% columns = allow_answers? && visitor_can_answer? && @form.responses.map(&:question).any?(&:matrix?) ? 9 : 6 %>
7
+
6
8
  <%= render partial: "decidim/shared/component_announcement" %>
7
9
 
8
10
  <div class="row columns">
9
- <h2 class="section-heading"><%= translated_attribute questionnaire.title %></h2>
11
+ <h3 class="section-heading"><%= translated_attribute questionnaire.title %></h3>
10
12
  <div class="row">
11
- <div class="columns large-6 medium-centered lead">
13
+ <div class="columns large-<%= columns %> medium-centered lead">
12
14
  <%= decidim_sanitize translated_attribute questionnaire.description %>
13
15
  </div>
14
16
  </div>
15
17
  </div>
16
18
 
17
19
  <div class="row">
18
- <div class="columns large-6 medium-centered">
20
+ <div class="columns large-<%= columns %> medium-centered">
19
21
  <div class="card">
20
22
  <div class="card__content">
21
23
  <% if allow_answers? %>
@@ -38,32 +40,62 @@
38
40
  </div>
39
41
  <% end %>
40
42
 
41
- <%= decidim_form_for(@form, url: update_url, method: :post, html: { class: "form answer-questionnaire" }) do |form| %>
43
+ <%= decidim_form_for(@form, url: update_url, method: :post, html: { class: "form answer-questionnaire" }, data: { "safe-path" => form_path }) do |form| %>
44
+ <%= form_required_explanation %>
42
45
  <%= invisible_captcha %>
43
- <% @form.answers.each_with_index do |answer, answer_idx| %>
44
- <div class="row column">
45
- <%= fields_for "questionnaire[answers][#{answer_idx}]", answer do |answer_form| %>
46
- <%= render "decidim/forms/questionnaires/answer", answer_form: answer_form, answer: answer, answer_idx: answer_idx, disabled: !current_participatory_space.can_participate?(current_user) %>
46
+ <% answer_idx = 0 %>
47
+ <% cleaned_answer_idx = 0 %>
48
+ <% @form.responses_by_step.each_with_index do |step_answers, step_index| %>
49
+ <div id="step-<%= step_index %>" class="<%= step_index.zero? ? "questionnaire-step" : "questionnaire-step hide" %>" data-toggler=".hide">
50
+ <% if @form.total_steps > 1 %>
51
+ <h4 class="section-heading">
52
+ <%= t(".current_step", step: step_index + 1) %> <span class="answer-questionnaire__steps"><%= t(".of_total_steps", total_steps: @form.total_steps) %></span>
53
+ </h4>
47
54
  <% end %>
48
- </div>
49
- <% end %>
50
55
 
51
- <% if show_represent_user_group? %>
52
- <div class="row column represent-user-group">
53
- <%= cell("decidim/represent_user_group", form) %>
54
- </div>
55
- <% end %>
56
+ <% step_answers.each do |answer| %>
57
+ <div class="row column answer" data-max-choices="<%= answer.question.max_choices %>">
58
+ <%= fields_for "questionnaire[responses][#{answer_idx}]", answer do |answer_form| %>
59
+ <%= render(
60
+ "decidim/forms/questionnaires/answer",
61
+ answer_form: answer_form,
62
+ answer: answer,
63
+ answer_idx: answer_idx,
64
+ cleaned_answer_idx: cleaned_answer_idx,
65
+ disabled: !current_participatory_space.can_participate?(current_user)
66
+ ) %>
67
+ <% end %>
68
+ </div>
69
+ <% if !answer.question.separator? %>
70
+ <% cleaned_answer_idx += 1 %>
71
+ <% end %>
72
+ <% answer_idx += 1 %>
73
+ <% end %>
56
74
 
57
- <div class="row column tos-agreement">
58
- <%= form.check_box :tos_agreement, label: t(".tos_agreement"), id: "questionnaire_tos_agreement", disabled: !current_participatory_space.can_participate?(current_user) %>
59
- <div class="help-text">
60
- <%= decidim_sanitize translated_attribute questionnaire.tos %>
61
- </div>
62
- </div>
75
+ <% if step_index + 1 == @form.total_steps %>
76
+ <% if show_represent_user_group? %>
77
+ <div class="row column represent-user-group">
78
+ <%= cell("decidim/represent_user_group", form) %>
79
+ </div>
80
+ <% end %>
63
81
 
64
- <div class="button--double form-general-submit">
65
- <%= form.submit t(".submit"), class: "button", disabled: !current_participatory_space.can_participate?(current_user), data: { confirm: t(".are_you_sure"), disable: true } %>
66
- </div>
82
+ <div class="row column tos-agreement">
83
+ <%= form.check_box :tos_agreement, label: t(".tos_agreement"), id: "questionnaire_tos_agreement", disabled: !current_participatory_space.can_participate?(current_user) %>
84
+ <div class="help-text">
85
+ <%= decidim_sanitize translated_attribute questionnaire.tos %>
86
+ </div>
87
+ </div>
88
+ <% end %>
89
+
90
+ <%= cell(
91
+ "decidim/forms/step_navigation",
92
+ step_index,
93
+ total_steps: @form.total_steps,
94
+ button_disabled: !current_participatory_space.can_participate?(current_user),
95
+ form: form
96
+ ) %>
97
+ </div>
98
+ <% end %>
67
99
  <% end %>
68
100
  </div>
69
101
  <% end %>
@@ -82,7 +114,7 @@
82
114
  <% else %>
83
115
  <div class="section">
84
116
  <div class="callout warning">
85
- <h5><%= t(".questionnaire_closed.title") %></h5>
117
+ <h4><%= t(".questionnaire_closed.title") %></h4>
86
118
  <p><%= t(".questionnaire_closed.body") %></p>
87
119
  </div>
88
120
  </div>
@@ -32,10 +32,12 @@ ar:
32
32
  statement: بيان
33
33
  edit:
34
34
  save: حفظ
35
- title: عنوان
36
35
  form:
37
36
  add_question: أضف سؤال
38
37
  already_answered_warning: تمت الإجابة على النموذج من قبل بعض المستخدمين حتى لا تتمكن من تعديل أسئلته.
38
+ matrix_row:
39
+ remove: إزالة
40
+ statement: بيان
39
41
  question:
40
42
  add_answer_option: إضافة خيار الإجابة
41
43
  any: أي
@@ -67,7 +69,6 @@ ar:
67
69
  answer_questionnaire:
68
70
  anonymous_user_message: <a href="%{sign_in_link}">قم بتسجيل الدخول بحسابك</a> أو <a href="%{sign_up_link}">اشترك</a> للإجابة على النموذج
69
71
  title: أجب عن النموذج
70
- are_you_sure: لا يمكن التراجع عن هذا الإجراء ولن تتمكن من تعديل إجاباتك. هل أنت واثق؟
71
72
  questionnaire_answered:
72
73
  body: لقد أجبت بالفعل على هذا النموذج.
73
74
  title: تمت الاجابة مسبقا
@@ -77,8 +78,11 @@ ar:
77
78
  questionnaire_for_private_users:
78
79
  body: النموذج متاح فقط للمستخدمين من القطاع الخاص
79
80
  title: شكل مغلق
80
- submit: خضع
81
81
  tos_agreement: من خلال المشاركة ، فإنك تقبل شروط الخدمة
82
+ step_navigation:
83
+ show:
84
+ are_you_sure: لا يمكن التراجع عن هذا الإجراء ولن تتمكن من تعديل إجاباتك. هل أنت واثق؟
85
+ submit: خضع
82
86
  user_answers_serializer:
83
87
  created_at: أجاب على
84
88
  id: معرف الإجابة
@@ -0,0 +1,16 @@
1
+ bg:
2
+ activemodel:
3
+ attributes:
4
+ answer:
5
+ body: Отговор
6
+ question:
7
+ max_choices: Максимален брой възможности
8
+ question_type: Тип
9
+ decidim:
10
+ forms:
11
+ step_navigation:
12
+ show:
13
+ are_you_sure: Това действие не може да се отмени и Вие не можете да редактирате отговорите си. Сигурни ли сте?
14
+ submit: Изпрати
15
+ user_answers_serializer:
16
+ ip_hash: Ip Хеш
@@ -32,27 +32,52 @@ ca:
32
32
  statement: Declaració
33
33
  edit:
34
34
  save: Desa
35
- title: Títol
35
+ title: Editar el qüestionari
36
36
  form:
37
37
  add_question: Afegeix una pregunta
38
+ add_separator: Afegir separador
38
39
  already_answered_warning: No pots modificar les preguntes d'aquest formulari perquè ja ha estat contestat per algunes participants.
40
+ collapse: Redueix totes les preguntes
41
+ expand: Expandeix totes les preguntes
42
+ matrix_row:
43
+ matrix_row: Fila
44
+ remove: Elimina
45
+ statement: Declaració
39
46
  question:
40
47
  add_answer_option: Afegeix una opció de resposta
48
+ add_matrix_row: Afegir fila
41
49
  any: Cap
50
+ collapse: Redueix
42
51
  description: Descripció
43
52
  down: Avall
53
+ expand: Expandeix
44
54
  question: Pregunta
45
55
  remove: Eliminar
46
56
  statement: Declaració
47
57
  up: Amunt
58
+ separator:
59
+ down: Baixar
60
+ remove: Eliminar
61
+ separator: Separador
62
+ up: Pujar
48
63
  update:
49
64
  invalid: S'ha produït un error en desar el formulari.
50
65
  success: Els formularis s'han desat correctament.
51
66
  errors:
52
67
  answer:
53
68
  body: El camp no pot estar en blanc
69
+ files:
70
+ extension_whitelist: 'Formats d''arxiu acceptats:'
71
+ images:
72
+ dimensions: "%{width} x %{height} px"
73
+ dimensions_info: 'Esta imagen medirà:'
74
+ processors:
75
+ resize_and_pad: Redimensionat i ajustat a
76
+ resize_to_fit: Redimensionada per ajustar-la
54
77
  question_types:
55
78
  long_answer: Resposta llarga
79
+ matrix_multiple: Matriu (opció multiple)
80
+ matrix_single: Matriu (opció única)
56
81
  multiple_option: Opció múltiple
57
82
  short_answer: Resposta curta
58
83
  single_option: Opció única
@@ -60,6 +85,7 @@ ca:
60
85
  questionnaires:
61
86
  answer:
62
87
  invalid: S'han produït un error en respondre el formulari.
88
+ max_choices_alert: Hi ha masses opcions seleccionades
63
89
  success: Has contestat el formulari correctament.
64
90
  question:
65
91
  max_choices: 'Opcions màximes: %{n}'
@@ -67,7 +93,8 @@ ca:
67
93
  answer_questionnaire:
68
94
  anonymous_user_message: <a href="%{sign_in_link}">Inicia sessió amb el teu compte</a> o <a href="%{sign_up_link}">registra't</a> per respondre el formulari.
69
95
  title: Respon el formulari
70
- are_you_sure: Aquesta acció no es pot desfer i no podràs editar les teves respostes. Estàs segura?
96
+ current_step: Pas %{step}
97
+ of_total_steps: de %{total_steps}
71
98
  questionnaire_answered:
72
99
  body: Ja has respost a aquest formulari.
73
100
  title: Ja has respost
@@ -77,8 +104,13 @@ ca:
77
104
  questionnaire_for_private_users:
78
105
  body: El formulari només està disponible per a participants privades
79
106
  title: S'ha tancat el formulari
80
- submit: Enviar respostes
81
107
  tos_agreement: En participar acceptes els Termes i condicions d'ús
108
+ step_navigation:
109
+ show:
110
+ are_you_sure: Aquesta acció no es pot desfer i no podràs editar les teves respostes. Estàs segura?
111
+ back: Enrere
112
+ continue: Continuar
113
+ submit: Enviar respostes
82
114
  user_answers_serializer:
83
115
  created_at: Respost el
84
116
  id: Identificador de resposta
@@ -32,27 +32,52 @@ cs:
32
32
  statement: Prohlášení
33
33
  edit:
34
34
  save: Uložit
35
- title: Titul
35
+ title: Upravit dotazník
36
36
  form:
37
37
  add_question: Přidat otázku
38
+ add_separator: Přidat oddělovač
38
39
  already_answered_warning: Dotazník již odpověděli někteří uživatelé, takže nemusíte upravovat své dotazy.
40
+ collapse: Sbalit všechny úlohy
41
+ expand: Rozbalit všechny otázky
42
+ matrix_row:
43
+ matrix_row: Řádek
44
+ remove: Odstranit
45
+ statement: Prohlášení
39
46
  question:
40
47
  add_answer_option: Přidat možnost odpovědi
48
+ add_matrix_row: Přidat řádek
41
49
  any: Žádný
50
+ collapse: Sbalit
42
51
  description: Popis
43
52
  down: Dolů
53
+ expand: Rozbalit
44
54
  question: Otázka
45
55
  remove: Odstranit
46
56
  statement: Prohlášení
47
57
  up: Nahoru
58
+ separator:
59
+ down: Dolů
60
+ remove: Odebrat
61
+ separator: Oddělovač
62
+ up: Nahoru
48
63
  update:
49
64
  invalid: Při ukládání dotazníku došlo k chybám.
50
65
  success: Dotazníky byly úspěšně uloženy.
51
66
  errors:
52
67
  answer:
53
68
  body: Tělo nemůže být prázdné
69
+ files:
70
+ extension_whitelist: 'Akceptované formáty:'
71
+ images:
72
+ dimensions: "%{width} x %{height} px"
73
+ dimensions_info: 'Tento obrázek bude:'
74
+ processors:
75
+ resize_and_pad: Zmenšeno a odsazeno k
76
+ resize_to_fit: Upravena velikost na vyplnění
54
77
  question_types:
55
78
  long_answer: Dlouhá odpověď
79
+ matrix_multiple: Matice (Více možností)
80
+ matrix_single: Matice (Jedna možnost)
56
81
  multiple_option: Více možností
57
82
  short_answer: Stručná odpověď
58
83
  single_option: Jedna možnost
@@ -60,6 +85,7 @@ cs:
60
85
  questionnaires:
61
86
  answer:
62
87
  invalid: Při odpovědi na dotazník došlo k chybám.
88
+ max_choices_alert: Je vybráno příliš mnoho možností
63
89
  success: Dotazník úspěšně odpověděl.
64
90
  question:
65
91
  max_choices: 'Max možnosti: %{n}'
@@ -67,7 +93,8 @@ cs:
67
93
  answer_questionnaire:
68
94
  anonymous_user_message: <a href="%{sign_in_link}">Přihlaste se svým účtem</a> nebo <a href="%{sign_up_link}">zaregistrujte</a> abyste odpověděli na dotazník.
69
95
  title: Odpovězte na dotazník
70
- are_you_sure: Tato akce nemůže být odvolána a vaše odpovědi nebudete moci upravovat. Jsi si jistá?
96
+ current_step: Krok %{step}
97
+ of_total_steps: z %{total_steps}
71
98
  questionnaire_answered:
72
99
  body: Již jste odpověděli na tento dotazník.
73
100
  title: Již jste odpověděli
@@ -77,8 +104,13 @@ cs:
77
104
  questionnaire_for_private_users:
78
105
  body: Dotazník je k dispozici pouze pro soukromé uživatele
79
106
  title: Dotazník byl uzavřen
80
- submit: Odeslat
81
107
  tos_agreement: Účastí přijímáte jeho smluvní podmínky
108
+ step_navigation:
109
+ show:
110
+ are_you_sure: Tuto akci nelze vrátit zpět a nebudete moci upravit své odpovědi. Jste si jisti?
111
+ back: Zpět
112
+ continue: Pokračovat
113
+ submit: Odeslat
82
114
  user_answers_serializer:
83
115
  created_at: Zodpovězeno
84
116
  id: ID odpovědi
@@ -0,0 +1 @@
1
+ da:
@@ -15,6 +15,8 @@ de:
15
15
  choices:
16
16
  missing: sind nicht vollständig
17
17
  too_many: sind zu viele
18
+ questionnaire:
19
+ request_invalid: Bei der Bearbeitung der Anfrage ist ein Fehler aufgetreten. Bitte versuchen Sie es nochmal
18
20
  decidim:
19
21
  forms:
20
22
  admin:
@@ -30,27 +32,52 @@ de:
30
32
  statement: Aussage
31
33
  edit:
32
34
  save: Speichern
33
- title: Titel
35
+ title: Fragebogen bearbeiten
34
36
  form:
35
37
  add_question: Frage hinzufügen
38
+ add_separator: Trennzeichen hinzufügen
36
39
  already_answered_warning: Der Fragebogen wird bereits von einigen Benutzern beantwortet, sodass Sie die Fragen nicht ändern können.
40
+ collapse: Alle Fragen einklappen
41
+ expand: Alle Fragen ausklappen
42
+ matrix_row:
43
+ matrix_row: Zeile
44
+ remove: Löschen
45
+ statement: Aussage
37
46
  question:
38
47
  add_answer_option: Antwortoption hinzufügen
48
+ add_matrix_row: Zeile hinzufügen
39
49
  any: Irgendein
50
+ collapse: Einklappen
40
51
  description: Beschreibung
41
52
  down: Nieder
53
+ expand: Ausklappen
42
54
  question: Frage
43
55
  remove: Löschen
44
56
  statement: Aussage
45
57
  up: Oben
58
+ separator:
59
+ down: Runter
60
+ remove: Löschen
61
+ separator: Trennzeichen
62
+ up: Hoch
46
63
  update:
47
64
  invalid: Beim Speichern des Fragebogens sind Fehler aufgetreten.
48
65
  success: Fragebögen wurden erfolgreich gespeichert.
49
66
  errors:
50
67
  answer:
51
68
  body: Körper kann nicht leer sein
69
+ files:
70
+ extension_whitelist: 'Gültige Formate:'
71
+ images:
72
+ dimensions: "%{width} x %{height} px"
73
+ dimensions_info: 'Das Bild wird:'
74
+ processors:
75
+ resize_and_pad: in der Größe angepasst und gepolstert zu
76
+ resize_to_fit: in der Größe verändert, damit es passt
52
77
  question_types:
53
78
  long_answer: Lange Antwort
79
+ matrix_multiple: Matrix (Mehrfachoption)
80
+ matrix_single: Matrix (Einzelne Option)
54
81
  multiple_option: Mehrfachoption
55
82
  short_answer: Kurze Antwort
56
83
  single_option: Einzelne Option
@@ -58,6 +85,7 @@ de:
58
85
  questionnaires:
59
86
  answer:
60
87
  invalid: Bei der Beantwortung des Fragebogens sind Fehler aufgetreten.
88
+ max_choices_alert: Es wurden zu viele Auswahlmöglichkeiten ausgewählt
61
89
  success: Fragebogen erfolgreich beantwortet.
62
90
  question:
63
91
  max_choices: 'Max Auswahlmöglichkeiten: %{n}'
@@ -65,7 +93,8 @@ de:
65
93
  answer_questionnaire:
66
94
  anonymous_user_message: <a href="%{sign_in_link}">Melden Sie sich mit Ihrem Konto an</a> oder <a href="%{sign_up_link}">Melden Sie sich an</a> , um den Fragebogen zu beantworten.
67
95
  title: Beantworten Sie den Fragebogen
68
- are_you_sure: Diese Aktion kann nicht rückgängig gemacht werden und Sie können Ihre Antworten nicht bearbeiten. Bist du sicher?
96
+ current_step: Schritt %{step}
97
+ of_total_steps: von %{total_steps}
69
98
  questionnaire_answered:
70
99
  body: Sie haben diesen Fragebogen bereits beantwortet.
71
100
  title: Schon beantwortet
@@ -75,8 +104,17 @@ de:
75
104
  questionnaire_for_private_users:
76
105
  body: Der Fragebogen ist nur für Privatanwender verfügbar
77
106
  title: Fragebogen geschlossen
78
- submit: einreichen
79
107
  tos_agreement: Mit der Teilnahme stimmen Sie den Nutzungsbedingungen zu
108
+ step_navigation:
109
+ show:
110
+ are_you_sure: Diese Aktion kann nicht rückgängig gemacht werden und Sie können Ihre Antworten nicht bearbeiten. Bist du sicher?
111
+ back: Zurück
112
+ continue: Weiter
113
+ submit: einreichen
80
114
  user_answers_serializer:
81
115
  created_at: Beantwortet am
82
116
  id: ID beantworten
117
+ ip_hash: IP-Hash
118
+ registered: Registriert
119
+ unregistered: Nicht registriert
120
+ user_status: Benutzerstatus