decidim-forms 0.16.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.
- checksums.yaml +7 -0
- data/README.md +65 -0
- data/Rakefile +3 -0
- data/app/assets/config/admin/decidim_forms_manifest.js +1 -0
- data/app/assets/config/decidim_forms_manifest.js +1 -0
- data/app/assets/images/decidim/surveys/icon.svg +19 -0
- data/app/assets/javascripts/decidim/forms/admin/auto_buttons_by_min_items.component.js.es6 +25 -0
- data/app/assets/javascripts/decidim/forms/admin/auto_select_options_by_total_items.component.js.es6 +23 -0
- data/app/assets/javascripts/decidim/forms/admin/forms.js.es6 +188 -0
- data/app/assets/javascripts/decidim/forms/autosortable_checkboxes.component.js.es6 +65 -0
- data/app/assets/javascripts/decidim/forms/forms.js.es6 +20 -0
- data/app/assets/javascripts/decidim/forms/option_attached_inputs.component.js.es6 +32 -0
- data/app/commands/decidim/forms/admin/update_questionnaire.rb +86 -0
- data/app/commands/decidim/forms/answer_questionnaire.rb +54 -0
- data/app/controllers/decidim/forms/admin/concerns/has_questionnaire.rb +95 -0
- data/app/controllers/decidim/forms/concerns/has_questionnaire.rb +84 -0
- data/app/forms/decidim/forms/admin/answer_option_form.rb +23 -0
- data/app/forms/decidim/forms/admin/question_form.rb +35 -0
- data/app/forms/decidim/forms/admin/questionnaire_form.rb +27 -0
- data/app/forms/decidim/forms/answer_choice_form.rb +15 -0
- data/app/forms/decidim/forms/answer_form.rb +69 -0
- data/app/forms/decidim/forms/questionnaire_form.rb +22 -0
- data/app/helpers/decidim/forms/admin/application_helper.rb +19 -0
- data/app/models/concerns/decidim/forms/has_questionnaire.rb +20 -0
- data/app/models/decidim/forms/answer.rb +45 -0
- data/app/models/decidim/forms/answer_choice.rb +15 -0
- data/app/models/decidim/forms/answer_option.rb +11 -0
- data/app/models/decidim/forms/application_record.rb +10 -0
- data/app/models/decidim/forms/question.rb +36 -0
- data/app/models/decidim/forms/questionnaire.rb +23 -0
- data/app/queries/decidim/forms/questionnaire_user_answers.rb +28 -0
- data/app/views/decidim/forms/admin/questionnaires/_answer_option.html.erb +44 -0
- data/app/views/decidim/forms/admin/questionnaires/_form.html.erb +51 -0
- data/app/views/decidim/forms/admin/questionnaires/_question.html.erb +115 -0
- data/app/views/decidim/forms/admin/questionnaires/edit.html.erb +7 -0
- data/app/views/decidim/forms/questionnaires/_answer.html.erb +94 -0
- data/app/views/decidim/forms/questionnaires/show.html.erb +84 -0
- data/config/locales/ca.yml +79 -0
- data/config/locales/de.yml +79 -0
- data/config/locales/en.yml +79 -0
- data/config/locales/es-PY.yml +79 -0
- data/config/locales/es.yml +79 -0
- data/config/locales/eu.yml +79 -0
- data/config/locales/fi-pl.yml +79 -0
- data/config/locales/fi.yml +79 -0
- data/config/locales/fr.yml +79 -0
- data/config/locales/gl.yml +79 -0
- data/config/locales/hu.yml +79 -0
- data/config/locales/id-ID.yml +1 -0
- data/config/locales/it.yml +79 -0
- data/config/locales/nl.yml +79 -0
- data/config/locales/pl.yml +79 -0
- data/config/locales/pt-BR.yml +79 -0
- data/config/locales/pt.yml +79 -0
- data/config/locales/ru.yml +1 -0
- data/config/locales/sv.yml +79 -0
- data/config/locales/tr-TR.yml +1 -0
- data/config/locales/uk.yml +1 -0
- data/db/migrate/20170511092231_create_decidim_forms_questionnaires.rb +15 -0
- data/db/migrate/20170515090916_create_decidim_forms_questions.rb +17 -0
- data/db/migrate/20170515144119_create_decidim_forms_answers.rb +15 -0
- data/db/migrate/20180405015012_create_decidim_forms_answer_options.rb +11 -0
- data/db/migrate/20180405015147_create_decidim_forms_answer_choices.rb +13 -0
- data/lib/decidim/forms.rb +13 -0
- data/lib/decidim/forms/admin.rb +9 -0
- data/lib/decidim/forms/admin_engine.rb +21 -0
- data/lib/decidim/forms/data_portability_user_answers_serializer.rb +37 -0
- data/lib/decidim/forms/engine.rb +14 -0
- data/lib/decidim/forms/test.rb +4 -0
- data/lib/decidim/forms/test/factories.rb +55 -0
- data/lib/decidim/forms/test/shared_examples/has_questionnaire.rb +524 -0
- data/lib/decidim/forms/test/shared_examples/manage_questionnaires.rb +626 -0
- data/lib/decidim/forms/user_answers_serializer.rb +29 -0
- data/lib/decidim/forms/version.rb +10 -0
- metadata +165 -0
@@ -0,0 +1,7 @@
|
|
1
|
+
<%= decidim_form_for(@form, url: update_url, method: :put, html: { class: "form edit_questionnaire" }) do |form| %>
|
2
|
+
<%= render partial: "decidim/forms/admin/questionnaires/form", object: form, locals: { title: t(".title") } %>
|
3
|
+
|
4
|
+
<div class="button--double form-general-submit">
|
5
|
+
<%= form.submit t(".save"), class: "button" %>
|
6
|
+
</div>
|
7
|
+
<% end %>
|
@@ -0,0 +1,94 @@
|
|
1
|
+
<% field_id = "questionnaire_answers_#{answer_idx}" %>
|
2
|
+
<%= label_tag field_id, answer.label(answer_idx), class: "questionnaire-question" %>
|
3
|
+
|
4
|
+
<% if translated_attribute(answer.question.description).present? %>
|
5
|
+
<div class="help-text">
|
6
|
+
<%= decidim_sanitize translated_attribute(answer.question.description) %>
|
7
|
+
</div>
|
8
|
+
<% end %>
|
9
|
+
|
10
|
+
<% case answer.question.question_type %>
|
11
|
+
<% when "short_answer" %>
|
12
|
+
<%= answer_form.text_field :body, label: false, id: field_id, disabled: disabled %>
|
13
|
+
<% when "long_answer" %>
|
14
|
+
<%= answer_form.text_area :body, label: false, id: field_id, rows: 10, disabled: disabled %>
|
15
|
+
<% when "single_option" %>
|
16
|
+
<div class="radio-button-collection">
|
17
|
+
<% choice = answer.choices.first %>
|
18
|
+
|
19
|
+
<% answer.question.answer_options.each_with_index do |answer_option, idx| %>
|
20
|
+
<% choice_id = "#{field_id}_choices_#{idx}" %>
|
21
|
+
|
22
|
+
<%= label_tag "#{choice_id}_body" do %>
|
23
|
+
<%= radio_button_tag "questionnaire[answers][#{answer_idx}][choices][][body]",
|
24
|
+
translated_attribute(answer_option.body),
|
25
|
+
choice.try(:body),
|
26
|
+
id: "#{choice_id}_body", disabled: disabled %>
|
27
|
+
|
28
|
+
<%= translated_attribute(answer_option.body) %>
|
29
|
+
|
30
|
+
<% if answer_option.free_text %>
|
31
|
+
<%= text_field_tag "questionnaire[answers][#{answer_idx}][choices][][custom_body]",
|
32
|
+
choice.try(:custom_body),
|
33
|
+
id: "#{choice_id}_custom_body",
|
34
|
+
disabled: true %>
|
35
|
+
<% end %>
|
36
|
+
|
37
|
+
<%= hidden_field_tag "questionnaire[answers][#{answer_idx}][choices][][answer_option_id]",
|
38
|
+
answer_option.id,
|
39
|
+
id: "#{choice_id}_answer_option",
|
40
|
+
disabled: true %>
|
41
|
+
<% end %>
|
42
|
+
<% end %>
|
43
|
+
</div>
|
44
|
+
<% when "multiple_option" %>
|
45
|
+
<div class="check-box-collection">
|
46
|
+
<% answer.question.answer_options.each_with_index do |answer_option, idx| %>
|
47
|
+
<% choice = answer.selected_choices.find { |choice| choice.answer_option_id == answer_option.id } %>
|
48
|
+
|
49
|
+
<%= label_tag do %>
|
50
|
+
<%= check_box_tag "questionnaire[answers][#{answer_idx}][choices][#{idx}][body]",
|
51
|
+
translated_attribute(answer_option.body),
|
52
|
+
choice.present?, disabled: disabled %>
|
53
|
+
|
54
|
+
<%= translated_attribute(answer_option.body) %>
|
55
|
+
|
56
|
+
<% if answer_option.free_text %>
|
57
|
+
<%= text_field_tag "questionnaire[answers][#{answer_idx}][choices][#{idx}][custom_body]",
|
58
|
+
choice.try(:custom_body),
|
59
|
+
disabled: true %>
|
60
|
+
<% end %>
|
61
|
+
|
62
|
+
<%= hidden_field_tag "questionnaire[answers][#{answer_idx}][choices][#{idx}][answer_option_id]", answer_option.id %>
|
63
|
+
<% end %>
|
64
|
+
<% end %>
|
65
|
+
</div>
|
66
|
+
<% when "sorting" %>
|
67
|
+
<div class="sortable-check-box-collection">
|
68
|
+
<% answer.question.answer_options.each_with_index do |answer_option, idx| %>
|
69
|
+
<% choice = answer.selected_choices.find { |choice| choice.answer_option_id == answer_option.id } %>
|
70
|
+
|
71
|
+
<%= label_tag do %>
|
72
|
+
<%= check_box_tag "questionnaire[answers][#{answer_idx}][choices][#{idx}][body]",
|
73
|
+
translated_attribute(answer_option.body),
|
74
|
+
choice.present?, disabled: disabled %>
|
75
|
+
|
76
|
+
<span class="position"><%= choice.try(:position) %></span>
|
77
|
+
|
78
|
+
<%= translated_attribute(answer_option.body) %>
|
79
|
+
|
80
|
+
<%= hidden_field_tag "questionnaire[answers][#{answer_idx}][choices][#{idx}][position]",
|
81
|
+
choice.try(:position),
|
82
|
+
disabled: true %>
|
83
|
+
|
84
|
+
<%= hidden_field_tag "questionnaire[answers][#{answer_idx}][choices][#{idx}][answer_option_id]", answer_option.id %>
|
85
|
+
<% end %>
|
86
|
+
<% end %>
|
87
|
+
</div>
|
88
|
+
<% end %>
|
89
|
+
|
90
|
+
<%= answer_form.hidden_field :question_id %>
|
91
|
+
|
92
|
+
<% answer.errors.full_messages.each do |msg| %>
|
93
|
+
<small class="form-error is-visible"><%= msg %></small>
|
94
|
+
<% end %>
|
@@ -0,0 +1,84 @@
|
|
1
|
+
<% add_decidim_meta_tags({
|
2
|
+
title: translated_attribute(questionnaire.title),
|
3
|
+
description: translated_attribute(questionnaire.description),
|
4
|
+
}) %>
|
5
|
+
|
6
|
+
<%= render partial: "decidim/shared/component_announcement" %>
|
7
|
+
|
8
|
+
<div class="row columns">
|
9
|
+
<h2 class="section-heading"><%= translated_attribute questionnaire.title %></h2>
|
10
|
+
<div class="row">
|
11
|
+
<div class="columns large-6 medium-centered lead">
|
12
|
+
<%= decidim_sanitize translated_attribute questionnaire.description %>
|
13
|
+
</div>
|
14
|
+
</div>
|
15
|
+
</div>
|
16
|
+
|
17
|
+
<div class="row">
|
18
|
+
<div class="columns large-6 medium-centered">
|
19
|
+
<div class="card">
|
20
|
+
<div class="card__content">
|
21
|
+
<% if allow_answers? %>
|
22
|
+
<% if current_user %>
|
23
|
+
<% if questionnaire.answered_by?(current_user) %>
|
24
|
+
<div class="section">
|
25
|
+
<div class="callout success">
|
26
|
+
<h5><%= t(".questionnaire_answered.title") %></h5>
|
27
|
+
<p><%= t(".questionnaire_answered.body") %></p>
|
28
|
+
</div>
|
29
|
+
</div>
|
30
|
+
<% else %>
|
31
|
+
<div class="answer-questionnaire">
|
32
|
+
<% unless current_participatory_space.can_participate?(current_user) %>
|
33
|
+
<div class="section">
|
34
|
+
<div class="callout alert">
|
35
|
+
<h5><%= t(".questionnaire_for_private_users.title") %></h5>
|
36
|
+
<p><%= t(".questionnaire_for_private_users.body") %></p>
|
37
|
+
</div>
|
38
|
+
</div>
|
39
|
+
<% end %>
|
40
|
+
|
41
|
+
<%= decidim_form_for(@form, url: update_url, method: :post, html: { class: "form answer-questionnaire" }) do |form| %>
|
42
|
+
<% @form.answers.each_with_index do |answer, answer_idx| %>
|
43
|
+
<div class="row column">
|
44
|
+
<%= fields_for "questionnaire[answers][#{answer_idx}]", answer do |answer_form| %>
|
45
|
+
<%= render "decidim/forms/questionnaires/answer", answer_form: answer_form, answer: answer, answer_idx: answer_idx, disabled: !current_participatory_space.can_participate?(current_user) %>
|
46
|
+
<% end %>
|
47
|
+
</div>
|
48
|
+
<% end %>
|
49
|
+
|
50
|
+
<div class="row column tos-agreement">
|
51
|
+
<%= form.check_box :tos_agreement, label: t(".tos_agreement"), id: "questionnaire_tos_agreement", disabled: !current_participatory_space.can_participate?(current_user) %>
|
52
|
+
<div class="help-text">
|
53
|
+
<%= decidim_sanitize translated_attribute questionnaire.tos %>
|
54
|
+
</div>
|
55
|
+
</div>
|
56
|
+
|
57
|
+
<div class="button--double form-general-submit">
|
58
|
+
<%= form.submit t(".submit"), class: "button", disabled: !current_participatory_space.can_participate?(current_user), data: { confirm: t(".are_you_sure"), disable: true } %>
|
59
|
+
</div>
|
60
|
+
<% end %>
|
61
|
+
</div>
|
62
|
+
<% end %>
|
63
|
+
<% else %>
|
64
|
+
<div class="answer-questionnaire">
|
65
|
+
<h5 class="section-heading"><%= t(".answer_questionnaire.title") %></h5>
|
66
|
+
<p>
|
67
|
+
<%= t(".answer_questionnaire.anonymous_user_message", sign_in_link: decidim.new_user_session_path, sign_up_link: decidim.new_user_registration_path).html_safe %>
|
68
|
+
</p>
|
69
|
+
</div>
|
70
|
+
<% end %>
|
71
|
+
<% else %>
|
72
|
+
<div class="section">
|
73
|
+
<div class="callout warning">
|
74
|
+
<h5><%= t(".questionnaire_closed.title") %></h5>
|
75
|
+
<p><%= t(".questionnaire_closed.body") %></p>
|
76
|
+
</div>
|
77
|
+
</div>
|
78
|
+
<% end %>
|
79
|
+
</div>
|
80
|
+
</div>
|
81
|
+
</div>
|
82
|
+
</div>
|
83
|
+
|
84
|
+
<%= javascript_include_tag "decidim/forms/forms" %>
|
@@ -0,0 +1,79 @@
|
|
1
|
+
ca:
|
2
|
+
activemodel:
|
3
|
+
attributes:
|
4
|
+
answer:
|
5
|
+
body: Resposta
|
6
|
+
question:
|
7
|
+
max_choices: Nombre màxim d'opcions
|
8
|
+
question_type: Escriu
|
9
|
+
questionnaire_question:
|
10
|
+
mandatory: Obligatori
|
11
|
+
errors:
|
12
|
+
models:
|
13
|
+
answer:
|
14
|
+
attributes:
|
15
|
+
choices:
|
16
|
+
missing: no estan complerts
|
17
|
+
too_many: n'hi ha massa
|
18
|
+
decidim:
|
19
|
+
forms:
|
20
|
+
admin:
|
21
|
+
models:
|
22
|
+
components:
|
23
|
+
description: Descripció
|
24
|
+
tos: Termes i condicions d'ús
|
25
|
+
questionnaires:
|
26
|
+
answer_option:
|
27
|
+
answer_option: Opció de resposta
|
28
|
+
free_text: Text lliure
|
29
|
+
remove: Elimina
|
30
|
+
statement: Declaració
|
31
|
+
edit:
|
32
|
+
save: Desar
|
33
|
+
title: Títol
|
34
|
+
form:
|
35
|
+
add_question: Afegeix una pregunta
|
36
|
+
already_answered_warning: No pots modificar les pregunte d'aquest qüestionari perquè ja ha estat contestat per alguns usuaris.
|
37
|
+
question:
|
38
|
+
add_answer_option: Afegeix una opció de resposta
|
39
|
+
any: Cap
|
40
|
+
description: Descripció
|
41
|
+
down: Baixar
|
42
|
+
question: Pregunta
|
43
|
+
remove: Eliminar
|
44
|
+
statement: Declaració
|
45
|
+
up: Pujar
|
46
|
+
update:
|
47
|
+
invalid: S'han produït alguns errors en desar el qüestionari.
|
48
|
+
success: Els qüestionaris s'han desat correctament.
|
49
|
+
errors:
|
50
|
+
answer:
|
51
|
+
body: El camp no pot estar en blanc
|
52
|
+
question_types:
|
53
|
+
long_answer: Resposta llarga
|
54
|
+
multiple_option: Opció múltiple
|
55
|
+
short_answer: Resposta curta
|
56
|
+
single_option: Opció única
|
57
|
+
sorting: Ordenació
|
58
|
+
questionnaires:
|
59
|
+
answer:
|
60
|
+
invalid: S'han produït errors en respondre el qüestionari.
|
61
|
+
success: El qüestionari ha estat respost amb èxit.
|
62
|
+
question:
|
63
|
+
max_choices: 'Opcions màximes: %{n}'
|
64
|
+
show:
|
65
|
+
answer_questionnaire:
|
66
|
+
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 qüestionari.
|
67
|
+
title: Respon el qüestionari
|
68
|
+
are_you_sure: Aquesta acció no es pot desfer i no podràs editar les teves respostes. Estàs segur?
|
69
|
+
questionnaire_answered:
|
70
|
+
body: Ja has respost a aquest qüestionari.
|
71
|
+
title: Ja has respost
|
72
|
+
questionnaire_closed:
|
73
|
+
body: El qüestionari està tancat i no es pot respondre.
|
74
|
+
title: S'ha tancat el qüestionari
|
75
|
+
questionnaire_for_private_users:
|
76
|
+
body: El qüestionari només està disponible per a usuaris privats
|
77
|
+
title: S'ha tancat el qüestionari
|
78
|
+
submit: Enviar respostes
|
79
|
+
tos_agreement: En participar, acceptes els Termes i condicions d'ús
|
@@ -0,0 +1,79 @@
|
|
1
|
+
de:
|
2
|
+
activemodel:
|
3
|
+
attributes:
|
4
|
+
answer:
|
5
|
+
body: Antworten
|
6
|
+
question:
|
7
|
+
max_choices: Maximale Anzahl von Auswahlmöglichkeiten
|
8
|
+
question_type: Art
|
9
|
+
questionnaire_question:
|
10
|
+
mandatory: Verpflichtend
|
11
|
+
errors:
|
12
|
+
models:
|
13
|
+
answer:
|
14
|
+
attributes:
|
15
|
+
choices:
|
16
|
+
missing: sind nicht vollständig
|
17
|
+
too_many: sind zu viele
|
18
|
+
decidim:
|
19
|
+
forms:
|
20
|
+
admin:
|
21
|
+
models:
|
22
|
+
components:
|
23
|
+
description: Beschreibung
|
24
|
+
tos: Nutzungsbedingungen
|
25
|
+
questionnaires:
|
26
|
+
answer_option:
|
27
|
+
answer_option: Antwortoption
|
28
|
+
free_text: Freier Text
|
29
|
+
remove: Löschen
|
30
|
+
statement: Aussage
|
31
|
+
edit:
|
32
|
+
save: sparen
|
33
|
+
title: Titel
|
34
|
+
form:
|
35
|
+
add_question: Frage hinzufügen
|
36
|
+
already_answered_warning: Der Fragebogen wird bereits von einigen Benutzern beantwortet, sodass Sie die Fragen nicht ändern können.
|
37
|
+
question:
|
38
|
+
add_answer_option: Antwortoption hinzufügen
|
39
|
+
any: Irgendein
|
40
|
+
description: Beschreibung
|
41
|
+
down: Nieder
|
42
|
+
question: Frage
|
43
|
+
remove: Löschen
|
44
|
+
statement: Aussage
|
45
|
+
up: Oben
|
46
|
+
update:
|
47
|
+
invalid: Beim Speichern des Fragebogens sind Fehler aufgetreten.
|
48
|
+
success: Fragebögen wurden erfolgreich gespeichert.
|
49
|
+
errors:
|
50
|
+
answer:
|
51
|
+
body: Körper kann nicht leer sein
|
52
|
+
question_types:
|
53
|
+
long_answer: Lange Antwort
|
54
|
+
multiple_option: Mehrfachoption
|
55
|
+
short_answer: Kurze Antwort
|
56
|
+
single_option: Einzelne Option
|
57
|
+
sorting: Sortierung
|
58
|
+
questionnaires:
|
59
|
+
answer:
|
60
|
+
invalid: Bei der Beantwortung des Fragebogens sind Fehler aufgetreten.
|
61
|
+
success: Fragebogen erfolgreich beantwortet.
|
62
|
+
question:
|
63
|
+
max_choices: 'Max Auswahlmöglichkeiten: %{n}'
|
64
|
+
show:
|
65
|
+
answer_questionnaire:
|
66
|
+
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
|
+
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?
|
69
|
+
questionnaire_answered:
|
70
|
+
body: Sie haben diesen Fragebogen bereits beantwortet.
|
71
|
+
title: Schon beantwortet
|
72
|
+
questionnaire_closed:
|
73
|
+
body: Der Fragebogen ist geschlossen und kann nicht beantwortet werden.
|
74
|
+
title: Fragebogen geschlossen
|
75
|
+
questionnaire_for_private_users:
|
76
|
+
body: Der Fragebogen ist nur für Privatanwender verfügbar
|
77
|
+
title: Fragebogen geschlossen
|
78
|
+
submit: einreichen
|
79
|
+
tos_agreement: Mit der Teilnahme stimmen Sie den Nutzungsbedingungen zu
|
@@ -0,0 +1,79 @@
|
|
1
|
+
en:
|
2
|
+
activemodel:
|
3
|
+
attributes:
|
4
|
+
answer:
|
5
|
+
body: Answer
|
6
|
+
question:
|
7
|
+
max_choices: Maximum number of choices
|
8
|
+
question_type: Type
|
9
|
+
questionnaire_question:
|
10
|
+
mandatory: Mandatory
|
11
|
+
errors:
|
12
|
+
models:
|
13
|
+
answer:
|
14
|
+
attributes:
|
15
|
+
choices:
|
16
|
+
missing: are not complete
|
17
|
+
too_many: are too many
|
18
|
+
decidim:
|
19
|
+
forms:
|
20
|
+
admin:
|
21
|
+
models:
|
22
|
+
components:
|
23
|
+
description: Description
|
24
|
+
tos: Terms of service
|
25
|
+
questionnaires:
|
26
|
+
answer_option:
|
27
|
+
answer_option: Answer option
|
28
|
+
free_text: Free text
|
29
|
+
remove: Remove
|
30
|
+
statement: Statement
|
31
|
+
edit:
|
32
|
+
save: Save
|
33
|
+
title: Title
|
34
|
+
form:
|
35
|
+
add_question: Add question
|
36
|
+
already_answered_warning: The questionnaire is already answered by some users so you cannot modify its questions.
|
37
|
+
question:
|
38
|
+
add_answer_option: Add answer option
|
39
|
+
any: Any
|
40
|
+
description: Description
|
41
|
+
down: Down
|
42
|
+
question: Question
|
43
|
+
remove: Remove
|
44
|
+
statement: Statement
|
45
|
+
up: Up
|
46
|
+
update:
|
47
|
+
invalid: There's been errors when saving the questionnaire.
|
48
|
+
success: Questionnaires saved successfully.
|
49
|
+
errors:
|
50
|
+
answer:
|
51
|
+
body: Body can't be blank
|
52
|
+
question_types:
|
53
|
+
long_answer: Long answer
|
54
|
+
multiple_option: Multiple option
|
55
|
+
short_answer: Short answer
|
56
|
+
single_option: Single option
|
57
|
+
sorting: Sorting
|
58
|
+
questionnaires:
|
59
|
+
answer:
|
60
|
+
invalid: There's been errors when answering the questionnaire.
|
61
|
+
success: Questionnaire answered successfully.
|
62
|
+
question:
|
63
|
+
max_choices: 'Max choices: %{n}'
|
64
|
+
show:
|
65
|
+
answer_questionnaire:
|
66
|
+
anonymous_user_message: <a href="%{sign_in_link}">Sign in with your account</a> or <a href="%{sign_up_link}">sign up</a> to answer the questionnaire.
|
67
|
+
title: Answer the questionnaire
|
68
|
+
are_you_sure: This action cannot be undone and you will not be able to edit your answers. Are you sure?
|
69
|
+
questionnaire_answered:
|
70
|
+
body: You have already answered this questionnaire.
|
71
|
+
title: Already answered
|
72
|
+
questionnaire_closed:
|
73
|
+
body: The questionnaire is closed and cannot be answered.
|
74
|
+
title: Questionnaire closed
|
75
|
+
questionnaire_for_private_users:
|
76
|
+
body: The questionnaire is available only for private users
|
77
|
+
title: Questionnaire closed
|
78
|
+
submit: Submit
|
79
|
+
tos_agreement: By participating you accept its Terms of Service
|
@@ -0,0 +1,79 @@
|
|
1
|
+
es-PY:
|
2
|
+
activemodel:
|
3
|
+
attributes:
|
4
|
+
answer:
|
5
|
+
body: Responder
|
6
|
+
question:
|
7
|
+
max_choices: Número máximo de opciones
|
8
|
+
question_type: Tipo
|
9
|
+
questionnaire_question:
|
10
|
+
mandatory: Obligatorio
|
11
|
+
errors:
|
12
|
+
models:
|
13
|
+
answer:
|
14
|
+
attributes:
|
15
|
+
choices:
|
16
|
+
missing: no están completos
|
17
|
+
too_many: son demasiados
|
18
|
+
decidim:
|
19
|
+
forms:
|
20
|
+
admin:
|
21
|
+
models:
|
22
|
+
components:
|
23
|
+
description: Descripción
|
24
|
+
tos: Términos y condiciones de uso
|
25
|
+
questionnaires:
|
26
|
+
answer_option:
|
27
|
+
answer_option: Opción de respuesta
|
28
|
+
free_text: Texto libre
|
29
|
+
remove: Retirar
|
30
|
+
statement: Declaración
|
31
|
+
edit:
|
32
|
+
save: Guardar
|
33
|
+
title: Título
|
34
|
+
form:
|
35
|
+
add_question: Añadir pregunta
|
36
|
+
already_answered_warning: Algunos usuarios ya han respondido al cuestionario, por lo que no puedes modificar las preguntas.
|
37
|
+
question:
|
38
|
+
add_answer_option: Añadir opción de respuesta
|
39
|
+
any: Alguna
|
40
|
+
description: Descripción
|
41
|
+
down: Abajo
|
42
|
+
question: Pregunta
|
43
|
+
remove: Borrar
|
44
|
+
statement: Declaración
|
45
|
+
up: Arriba
|
46
|
+
update:
|
47
|
+
invalid: Ha habido errores al guardar el cuestionario.
|
48
|
+
success: Cuestionarios guardados con éxito.
|
49
|
+
errors:
|
50
|
+
answer:
|
51
|
+
body: El campo no puede estar en blanco
|
52
|
+
question_types:
|
53
|
+
long_answer: Respuesta larga
|
54
|
+
multiple_option: Opción múltiple
|
55
|
+
short_answer: Respuesta corta
|
56
|
+
single_option: Opción única
|
57
|
+
sorting: Ordenación
|
58
|
+
questionnaires:
|
59
|
+
answer:
|
60
|
+
invalid: Ha habido errores al responder al cuestionario.
|
61
|
+
success: Has respondido al cuestionario con éxito.
|
62
|
+
question:
|
63
|
+
max_choices: 'Opciones máximas: %{n}'
|
64
|
+
show:
|
65
|
+
answer_questionnaire:
|
66
|
+
anonymous_user_message: <a href="%{sign_in_link}">Inicia sesión con tu cuenta</a> o <a href="%{sign_up_link}">regístrese</a> para responder al cuestionario.
|
67
|
+
title: Responde al cuestionario
|
68
|
+
are_you_sure: Esta acción no se puede deshacer y no podrás editar tus respuestas. ¿Estás seguro?
|
69
|
+
questionnaire_answered:
|
70
|
+
body: Ya has respondido este cuestionario.
|
71
|
+
title: Ya has respondido
|
72
|
+
questionnaire_closed:
|
73
|
+
body: El cuestionario está cerrado y ya no puedes responder.
|
74
|
+
title: Cuestionario cerrado
|
75
|
+
questionnaire_for_private_users:
|
76
|
+
body: El cuestionario está disponible solo para usuarios privados
|
77
|
+
title: Cuestionario cerrado
|
78
|
+
submit: Enviar
|
79
|
+
tos_agreement: Al responder aceptas los Términos y condiciones de uso
|