decidim-forms 0.21.0 → 0.22.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
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