decidim-forms 0.20.1 → 0.23.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/app/assets/config/admin/decidim_forms_manifest.css +3 -0
- data/app/assets/config/admin/decidim_forms_manifest.js +1 -0
- data/app/assets/config/decidim_forms_manifest.css +1 -0
- data/app/assets/images/decidim/surveys/icon.svg +1 -19
- data/app/assets/javascripts/decidim/forms/admin/auto_select_options_from_url.component.js.es6 +40 -0
- data/app/assets/javascripts/decidim/forms/admin/collapsible_questions.js.es6 +13 -0
- data/app/assets/javascripts/decidim/forms/admin/forms.js.es6 +260 -16
- data/app/assets/javascripts/decidim/forms/admin/live_text_update.component.js.es6 +52 -0
- data/app/assets/javascripts/decidim/forms/autosortable_checkboxes.component.js.es6 +54 -34
- data/app/assets/javascripts/decidim/forms/display_conditions.component.js.es6 +203 -0
- data/app/assets/javascripts/decidim/forms/forms.js.es6 +49 -1
- data/app/assets/javascripts/decidim/forms/max_choices_alert.component.js.es6 +44 -0
- data/app/assets/stylesheets/decidim/forms/forms.scss +39 -0
- data/app/assets/stylesheets/decidim/forms/questionnaire-answers-pdf.scss +69 -0
- data/app/cells/decidim/forms/matrix_readonly/show.erb +5 -0
- data/app/cells/decidim/forms/matrix_readonly_cell.rb +12 -0
- data/app/cells/decidim/forms/question_readonly/show.erb +5 -1
- data/app/cells/decidim/forms/question_readonly_cell.rb +5 -0
- data/app/cells/decidim/forms/step_navigation/show.erb +35 -0
- data/app/cells/decidim/forms/step_navigation_cell.rb +46 -0
- data/app/commands/decidim/forms/admin/update_questionnaire.rb +33 -1
- data/app/commands/decidim/forms/answer_questionnaire.rb +2 -1
- data/app/controllers/decidim/forms/admin/concerns/has_questionnaire.rb +52 -2
- data/app/controllers/decidim/forms/admin/concerns/has_questionnaire_answers.rb +97 -0
- data/app/controllers/decidim/forms/concerns/has_questionnaire.rb +11 -2
- data/app/forms/decidim/forms/admin/display_condition_form.rb +100 -0
- data/app/forms/decidim/forms/admin/question_form.rb +21 -1
- data/app/forms/decidim/forms/admin/question_matrix_row_form.rb +26 -0
- data/app/forms/decidim/forms/answer_choice_form.rb +1 -0
- data/app/forms/decidim/forms/answer_form.rb +31 -2
- data/app/forms/decidim/forms/questionnaire_form.rb +30 -3
- data/app/helpers/decidim/forms/admin/application_helper.rb +37 -0
- data/app/helpers/decidim/forms/admin/concerns/has_questionnaire_answers_pagination_helper.rb +49 -0
- data/app/helpers/decidim/forms/admin/concerns/has_questionnaire_answers_url_helper.rb +40 -0
- data/app/helpers/decidim/forms/admin/questionnaire_answers_helper.rb +27 -0
- data/app/jobs/decidim/forms/export_questionnaire_answers_job.rb +19 -0
- data/app/models/decidim/forms/answer.rb +0 -3
- data/app/models/decidim/forms/answer_choice.rb +7 -0
- data/app/models/decidim/forms/answer_option.rb +14 -0
- data/app/models/decidim/forms/display_condition.rb +65 -0
- data/app/models/decidim/forms/question.rb +52 -2
- data/app/models/decidim/forms/question_matrix_row.rb +15 -0
- data/app/models/decidim/forms/questionnaire.rb +11 -1
- data/app/presenters/decidim/forms/admin/questionnaire_answer_presenter.rb +43 -0
- data/app/presenters/decidim/forms/admin/questionnaire_participant_presenter.rb +60 -0
- data/app/presenters/decidim/forms/answer_option_presenter.rb +20 -0
- data/app/presenters/decidim/forms/question_presenter.rb +16 -0
- data/app/queries/decidim/forms/questionnaire_participant.rb +35 -0
- data/app/queries/decidim/forms/questionnaire_participants.rb +43 -0
- data/app/types/decidim/forms/answer_option_type.rb +14 -0
- data/app/types/decidim/forms/question_type.rb +23 -0
- data/app/types/decidim/forms/questionnaire_type.rb +22 -0
- data/app/views/decidim/forms/admin/questionnaires/_answer_option_template.html.erb +1 -1
- data/app/views/decidim/forms/admin/questionnaires/_display_condition.html.erb +88 -0
- data/app/views/decidim/forms/admin/questionnaires/_display_condition_template.html.erb +7 -0
- data/app/views/decidim/forms/admin/questionnaires/_form.html.erb +67 -8
- data/app/views/decidim/forms/admin/questionnaires/_matrix_row.html.erb +34 -0
- data/app/views/decidim/forms/admin/questionnaires/_matrix_row_template.html.erb +7 -0
- data/app/views/decidim/forms/admin/questionnaires/_question.html.erb +45 -6
- data/app/views/decidim/forms/admin/questionnaires/_separator.html.erb +41 -0
- data/app/views/decidim/forms/admin/questionnaires/answers/export/_answer.html.erb +31 -0
- data/app/views/decidim/forms/admin/questionnaires/answers/export/pdf.html.erb +13 -0
- data/app/views/decidim/forms/admin/questionnaires/answers/index.html.erb +53 -0
- data/app/views/decidim/forms/admin/questionnaires/answers/show.html.erb +48 -0
- data/app/views/decidim/forms/admin/questionnaires/edit.html.erb +9 -5
- data/app/views/decidim/forms/questionnaires/_answer.html.erb +28 -99
- data/app/views/decidim/forms/questionnaires/answers/_long_answer.html.erb +1 -0
- data/app/views/decidim/forms/questionnaires/answers/_matrix_multiple.html.erb +43 -0
- data/app/views/decidim/forms/questionnaires/answers/_matrix_single.html.erb +43 -0
- data/app/views/decidim/forms/questionnaires/answers/_multiple_option.html.erb +23 -0
- data/app/views/decidim/forms/questionnaires/answers/_separator.html.erb +1 -0
- data/app/views/decidim/forms/questionnaires/answers/_short_answer.html.erb +1 -0
- data/app/views/decidim/forms/questionnaires/answers/_single_option.html.erb +30 -0
- data/app/views/decidim/forms/questionnaires/answers/_sorting.html.erb +23 -0
- data/app/views/decidim/forms/questionnaires/show.html.erb +78 -26
- data/app/views/layouts/decidim/forms/admin/questionnaires/questionnaire_answers.html.erb +12 -0
- data/config/initializers/wicked_pdf.rb +25 -0
- data/config/locales/am-ET.yml +1 -0
- data/config/locales/ar.yml +7 -4
- data/config/locales/bg-BG.yml +14 -0
- data/config/locales/bg.yml +14 -0
- data/config/locales/ca.yml +89 -5
- data/config/locales/cs.yml +89 -5
- data/config/locales/da-DK.yml +1 -0
- data/config/locales/da.yml +1 -0
- data/config/locales/de.yml +92 -4
- data/config/locales/el.yml +118 -0
- data/config/locales/en.yml +89 -5
- data/config/locales/eo.yml +1 -0
- data/config/locales/es-MX.yml +88 -4
- data/config/locales/es-PY.yml +88 -4
- data/config/locales/es.yml +88 -4
- data/config/locales/et-EE.yml +1 -0
- data/config/locales/et.yml +1 -0
- data/config/locales/eu.yml +7 -4
- data/config/locales/fi-plain.yml +88 -4
- data/config/locales/fi.yml +88 -4
- data/config/locales/fr-CA.yml +172 -0
- data/config/locales/fr.yml +89 -5
- data/config/locales/ga-IE.yml +1 -0
- data/config/locales/gl.yml +7 -4
- data/config/locales/hr-HR.yml +1 -0
- data/config/locales/hr.yml +1 -0
- data/config/locales/hu.yml +11 -5
- data/config/locales/id-ID.yml +7 -4
- data/config/locales/is.yml +1 -0
- data/config/locales/it.yml +89 -5
- data/config/locales/ja-JP.yml +170 -0
- data/config/locales/ja.yml +170 -0
- data/config/locales/ko-KR.yml +1 -0
- data/config/locales/ko.yml +1 -0
- data/config/locales/lt-LT.yml +1 -0
- data/config/locales/lt.yml +1 -0
- data/config/locales/lv.yml +118 -0
- data/config/locales/mt-MT.yml +1 -0
- data/config/locales/mt.yml +1 -0
- data/config/locales/nl.yml +92 -8
- data/config/locales/no.yml +54 -5
- data/config/locales/om-ET.yml +1 -0
- data/config/locales/pl.yml +113 -26
- data/config/locales/pt-BR.yml +8 -5
- data/config/locales/pt.yml +111 -24
- data/config/locales/ro-RO.yml +167 -0
- data/config/locales/ru.yml +4 -2
- data/config/locales/sk-SK.yml +88 -0
- data/config/locales/sk.yml +90 -0
- data/config/locales/sl.yml +12 -0
- data/config/locales/so-SO.yml +1 -0
- data/config/locales/sr-CS.yml +1 -0
- data/config/locales/sv.yml +88 -7
- data/config/locales/ti-ER.yml +1 -0
- data/config/locales/tr-TR.yml +7 -4
- data/config/locales/vi-VN.yml +1 -0
- data/config/locales/vi.yml +1 -0
- data/config/locales/zh-CN.yml +172 -0
- data/config/locales/zh-TW.yml +1 -0
- data/db/migrate/20200130194123_create_decidim_forms_display_conditions.rb +20 -0
- data/db/migrate/20200225123810_create_decidim_forms_question_matrix_rows.rb +11 -0
- data/db/migrate/20200304152939_add_matrix_row_id_to_decidim_forms_answer_choices.rb +11 -0
- data/lib/decidim/api/questionnaire_entity_interface.rb +18 -0
- data/lib/decidim/exporters/form_pdf.rb +33 -0
- data/lib/decidim/exporters/form_pdf_controller_helper.rb +11 -0
- data/lib/decidim/forms.rb +6 -0
- data/lib/decidim/forms/admin_engine.rb +1 -1
- data/lib/decidim/forms/api.rb +7 -0
- data/lib/decidim/forms/test.rb +6 -0
- data/lib/decidim/forms/test/factories.rb +55 -0
- data/lib/decidim/forms/test/shared_examples/has_questionnaire.rb +918 -60
- data/lib/decidim/forms/test/shared_examples/manage_questionnaire_answers.rb +108 -0
- data/lib/decidim/forms/test/shared_examples/manage_questionnaires.rb +33 -575
- data/lib/decidim/forms/test/shared_examples/manage_questionnaires/add_display_conditions.rb +179 -0
- data/lib/decidim/forms/test/shared_examples/manage_questionnaires/add_questions.rb +463 -0
- data/lib/decidim/forms/test/shared_examples/manage_questionnaires/update_display_conditions.rb +93 -0
- data/lib/decidim/forms/test/shared_examples/manage_questionnaires/update_questions.rb +461 -0
- data/lib/decidim/forms/user_answers_serializer.rb +21 -4
- data/lib/decidim/forms/version.rb +1 -1
- metadata +133 -10
@@ -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,21 +3,31 @@
|
|
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
|
-
<
|
11
|
+
<h3 class="section-heading"><%= translated_attribute questionnaire.title %></h3>
|
10
12
|
<div class="row">
|
11
|
-
<div class="columns large
|
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
|
20
|
+
<div class="columns large-<%= columns %> medium-centered">
|
19
21
|
<div class="card">
|
20
22
|
<div class="card__content">
|
23
|
+
<% unless questionnaire_for.try(:component)&.try(:published?) %>
|
24
|
+
<div class="section">
|
25
|
+
<div class="callout warning">
|
26
|
+
<p><%= t(".questionnaire_not_published.body") %></p>
|
27
|
+
</div>
|
28
|
+
</div>
|
29
|
+
<% end %>
|
30
|
+
|
21
31
|
<% if allow_answers? %>
|
22
32
|
<% if visitor_can_answer? %>
|
23
33
|
<% if visitor_already_answered? %>
|
@@ -29,6 +39,14 @@
|
|
29
39
|
</div>
|
30
40
|
<% else %>
|
31
41
|
<div class="answer-questionnaire">
|
42
|
+
<noscript>
|
43
|
+
<div class="section">
|
44
|
+
<div class="callout warning">
|
45
|
+
<h5><%= t(".questionnaire_js_disabled.title") %></h5>
|
46
|
+
<p><%= t(".questionnaire_js_disabled.body") %></p>
|
47
|
+
</div>
|
48
|
+
</div>
|
49
|
+
</noscript>
|
32
50
|
<% unless current_participatory_space.can_participate?(current_user) %>
|
33
51
|
<div class="section">
|
34
52
|
<div class="callout alert">
|
@@ -38,32 +56,66 @@
|
|
38
56
|
</div>
|
39
57
|
<% end %>
|
40
58
|
|
41
|
-
<%= decidim_form_for(@form, url: update_url, method: :post, html: { class: "form answer-questionnaire" }) do |form| %>
|
59
|
+
<%= decidim_form_for(@form, url: update_url, method: :post, html: { class: "form answer-questionnaire" }, data: { "safe-path" => form_path }) do |form| %>
|
60
|
+
<%= form_required_explanation %>
|
42
61
|
<%= invisible_captcha %>
|
43
|
-
<%
|
44
|
-
|
45
|
-
|
46
|
-
|
62
|
+
<% answer_idx = 0 %>
|
63
|
+
<% cleaned_answer_idx = 0 %>
|
64
|
+
<% @form.responses_by_step.each_with_index do |step_answers, step_index| %>
|
65
|
+
<div id="step-<%= step_index %>" class="<%= step_index.zero? ? "questionnaire-step" : "questionnaire-step hide" %>" data-toggler=".hide">
|
66
|
+
<% if @form.total_steps > 1 %>
|
67
|
+
<h4 class="section-heading">
|
68
|
+
<%= t(".current_step", step: step_index + 1) %> <span class="answer-questionnaire__steps"><%= t(".of_total_steps", total_steps: @form.total_steps) %></span>
|
69
|
+
</h4>
|
47
70
|
<% end %>
|
48
|
-
</div>
|
49
|
-
<% end %>
|
50
71
|
|
51
|
-
|
52
|
-
|
53
|
-
|
54
|
-
|
55
|
-
|
72
|
+
<% step_answers.each do |answer| %>
|
73
|
+
<div class="row column answer question" data-max-choices="<%= answer.question.max_choices %>" data-conditioned="<%= answer.question.display_conditions.any? %>" data-question-id="<%= answer.question.id %>">
|
74
|
+
<% answer.question.display_conditions.each do |display_condition| %>
|
75
|
+
<%= content_tag :div, nil, class: "display-condition", data: display_condition.to_html_data %>
|
76
|
+
<% end %>
|
56
77
|
|
57
|
-
|
58
|
-
|
59
|
-
|
60
|
-
|
61
|
-
|
62
|
-
|
78
|
+
<%= fields_for "questionnaire[responses][#{answer_idx}]", answer do |answer_form| %>
|
79
|
+
<%= render(
|
80
|
+
"decidim/forms/questionnaires/answer",
|
81
|
+
answer_form: answer_form,
|
82
|
+
answer: answer,
|
83
|
+
answer_idx: answer_idx,
|
84
|
+
cleaned_answer_idx: cleaned_answer_idx,
|
85
|
+
disabled: !current_participatory_space.can_participate?(current_user)
|
86
|
+
) %>
|
87
|
+
<% end %>
|
88
|
+
</div>
|
89
|
+
<% if !answer.question.separator? %>
|
90
|
+
<% cleaned_answer_idx += 1 %>
|
91
|
+
<% end %>
|
92
|
+
<% answer_idx += 1 %>
|
93
|
+
<% end %>
|
63
94
|
|
64
|
-
|
65
|
-
|
66
|
-
|
95
|
+
<% if step_index + 1 == @form.total_steps %>
|
96
|
+
<% if show_represent_user_group? %>
|
97
|
+
<div class="row column represent-user-group">
|
98
|
+
<%= cell("decidim/represent_user_group", form) %>
|
99
|
+
</div>
|
100
|
+
<% end %>
|
101
|
+
|
102
|
+
<div class="row column tos-agreement">
|
103
|
+
<%= form.check_box :tos_agreement, label: t(".tos_agreement"), id: "questionnaire_tos_agreement", disabled: !current_participatory_space.can_participate?(current_user) %>
|
104
|
+
<div class="help-text">
|
105
|
+
<%= decidim_sanitize translated_attribute questionnaire.tos %>
|
106
|
+
</div>
|
107
|
+
</div>
|
108
|
+
<% end %>
|
109
|
+
|
110
|
+
<%= cell(
|
111
|
+
"decidim/forms/step_navigation",
|
112
|
+
step_index,
|
113
|
+
total_steps: @form.total_steps,
|
114
|
+
button_disabled: !current_participatory_space.can_participate?(current_user),
|
115
|
+
form: form
|
116
|
+
) %>
|
117
|
+
</div>
|
118
|
+
<% end %>
|
67
119
|
<% end %>
|
68
120
|
</div>
|
69
121
|
<% end %>
|
@@ -75,14 +127,14 @@
|
|
75
127
|
</p>
|
76
128
|
|
77
129
|
<ol>
|
78
|
-
<%= cell("decidim/forms/question_readonly", collection: @questionnaire.questions) %>
|
130
|
+
<%= cell("decidim/forms/question_readonly", collection: @questionnaire.questions.not_conditioned) %>
|
79
131
|
</ol>
|
80
132
|
</div>
|
81
133
|
<% end %>
|
82
134
|
<% else %>
|
83
135
|
<div class="section">
|
84
136
|
<div class="callout warning">
|
85
|
-
<
|
137
|
+
<h4><%= t(".questionnaire_closed.title") %></h4>
|
86
138
|
<p><%= t(".questionnaire_closed.body") %></p>
|
87
139
|
</div>
|
88
140
|
</div>
|
@@ -0,0 +1,12 @@
|
|
1
|
+
<!DOCTYPE html>
|
2
|
+
<html lang="<%= I18n.locale %>" class="no-js">
|
3
|
+
<head>
|
4
|
+
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
|
5
|
+
<meta name="viewport" content="width=device-width">
|
6
|
+
<%= wicked_pdf_stylesheet_link_tag "decidim/forms/questionnaire-answers-pdf" %>
|
7
|
+
<title><%= @title %></title>
|
8
|
+
</head>
|
9
|
+
<body>
|
10
|
+
<%= yield %>
|
11
|
+
</body>
|
12
|
+
</html>
|
@@ -0,0 +1,25 @@
|
|
1
|
+
require "wicked_pdf"
|
2
|
+
|
3
|
+
# frozen_string_literal: true
|
4
|
+
|
5
|
+
# WickedPDF Global Configuration
|
6
|
+
#
|
7
|
+
# Use this to set up shared configuration options for your entire application.
|
8
|
+
# Any of the configuration options shown here can also be applied to single
|
9
|
+
# models by passing arguments to the `render :pdf` call.
|
10
|
+
#
|
11
|
+
# To learn more, check out the README:
|
12
|
+
#
|
13
|
+
# https://github.com/mileszs/wicked_pdf/blob/master/README.md
|
14
|
+
|
15
|
+
WickedPdf.config = {
|
16
|
+
# Path to the wkhtmltopdf executable: This usually isn't needed if using
|
17
|
+
# one of the wkhtmltopdf-binary family of gems.
|
18
|
+
# exe_path: '/usr/local/bin/wkhtmltopdf',
|
19
|
+
# or
|
20
|
+
exe_path: Gem.bin_path("wkhtmltopdf-binary", "wkhtmltopdf")
|
21
|
+
|
22
|
+
# Layout file to be used for all PDFs
|
23
|
+
# (but can be overridden in `render :pdf` calls)
|
24
|
+
# layout: 'pdf.html',
|
25
|
+
}
|
@@ -0,0 +1 @@
|
|
1
|
+
am:
|
data/config/locales/ar.yml
CHANGED
@@ -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: أي
|
@@ -47,7 +49,6 @@ ar:
|
|
47
49
|
up: فوق
|
48
50
|
update:
|
49
51
|
invalid: كانت هناك مشكلة في حفظ النموذج.
|
50
|
-
success: تم حفظ النماذج بنجاح.
|
51
52
|
errors:
|
52
53
|
answer:
|
53
54
|
body: لا يمكن أن يكون الجسم فارغًا
|
@@ -67,7 +68,6 @@ ar:
|
|
67
68
|
answer_questionnaire:
|
68
69
|
anonymous_user_message: <a href="%{sign_in_link}">قم بتسجيل الدخول بحسابك</a> أو <a href="%{sign_up_link}">اشترك</a> للإجابة على النموذج
|
69
70
|
title: أجب عن النموذج
|
70
|
-
are_you_sure: لا يمكن التراجع عن هذا الإجراء ولن تتمكن من تعديل إجاباتك. هل أنت واثق؟
|
71
71
|
questionnaire_answered:
|
72
72
|
body: لقد أجبت بالفعل على هذا النموذج.
|
73
73
|
title: تمت الاجابة مسبقا
|
@@ -77,8 +77,11 @@ ar:
|
|
77
77
|
questionnaire_for_private_users:
|
78
78
|
body: النموذج متاح فقط للمستخدمين من القطاع الخاص
|
79
79
|
title: شكل مغلق
|
80
|
-
submit: خضع
|
81
80
|
tos_agreement: من خلال المشاركة ، فإنك تقبل شروط الخدمة
|
81
|
+
step_navigation:
|
82
|
+
show:
|
83
|
+
are_you_sure: لا يمكن التراجع عن هذا الإجراء ولن تتمكن من تعديل إجاباتك. هل أنت واثق؟
|
84
|
+
submit: خضع
|
82
85
|
user_answers_serializer:
|
83
86
|
created_at: أجاب على
|
84
87
|
id: معرف الإجابة
|
@@ -0,0 +1,14 @@
|
|
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: Изпрати
|
@@ -0,0 +1,14 @@
|
|
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: Изпрати
|
data/config/locales/ca.yml
CHANGED
@@ -3,6 +3,8 @@ ca:
|
|
3
3
|
attributes:
|
4
4
|
answer:
|
5
5
|
body: Resposta
|
6
|
+
choices: Opcions
|
7
|
+
selected_choices: Opcions seleccionades
|
6
8
|
question:
|
7
9
|
max_choices: Nombre màxim d'opcions
|
8
10
|
question_type: Tipus
|
@@ -25,34 +27,100 @@ ca:
|
|
25
27
|
description: Descripció
|
26
28
|
tos: Termes del servei
|
27
29
|
questionnaires:
|
30
|
+
actions:
|
31
|
+
back: Tornar a les preguntes
|
32
|
+
show: Mostrar les respostes
|
28
33
|
answer_option:
|
29
34
|
answer_option: Opció de resposta
|
30
35
|
free_text: Text lliure
|
31
36
|
remove: Elimina
|
32
37
|
statement: Declaració
|
38
|
+
answers:
|
39
|
+
actions:
|
40
|
+
back: Tornar a les respostes
|
41
|
+
export: Exportar
|
42
|
+
show: Mostrar les respostes
|
43
|
+
empty: Encara no hi ha respostes
|
44
|
+
export:
|
45
|
+
answer:
|
46
|
+
title: 'Resposta #%{number}'
|
47
|
+
export_response:
|
48
|
+
title: survey_user_answers_%{token}
|
49
|
+
index:
|
50
|
+
title: "%{total} respostes totals"
|
51
|
+
show:
|
52
|
+
title: 'Resposta #%{number}'
|
53
|
+
display_condition:
|
54
|
+
answer_option: Opció de resposta
|
55
|
+
condition_question: Pregunta
|
56
|
+
condition_type: Condició
|
57
|
+
condition_types:
|
58
|
+
answered: Amb resposta
|
59
|
+
equal: Igual a
|
60
|
+
match: Inclou text
|
61
|
+
not_answered: No resposta
|
62
|
+
not_equal: No és igual
|
63
|
+
condition_value: Text inclòs
|
64
|
+
display_condition: Condicions de visualització
|
65
|
+
mandatory: Aquesta condició s'ha de complir sempre independentment de l'estat d'altres condicions
|
66
|
+
remove: Eliminar
|
67
|
+
save_warning: Recorda de guardar l'enquesta abans de configurar les condicions de visualitzacióó
|
68
|
+
select_answer_option: Eliminar l'opció de resposta
|
69
|
+
select_condition_question: Seleccionar una pregunta
|
70
|
+
select_condition_type: Seleccionar un tipus de condició
|
33
71
|
edit:
|
34
72
|
save: Desa
|
35
|
-
title:
|
73
|
+
title: Editar el qüestionari
|
36
74
|
form:
|
37
75
|
add_question: Afegeix una pregunta
|
76
|
+
add_separator: Afegir separador
|
38
77
|
already_answered_warning: No pots modificar les preguntes d'aquest formulari perquè ja ha estat contestat per algunes participants.
|
78
|
+
collapse: Redueix totes les preguntes
|
79
|
+
expand: Expandeix totes les preguntes
|
80
|
+
preview: Previsualitzar
|
81
|
+
title: Editar el formulari
|
82
|
+
unpublished_warning: El formulari no està publicat. Pots modificar les preguntes, però al fer-ho s'esborraran les respostes actuals.
|
83
|
+
matrix_row:
|
84
|
+
matrix_row: Fila
|
85
|
+
remove: Elimina
|
86
|
+
statement: Declaració
|
39
87
|
question:
|
40
88
|
add_answer_option: Afegeix una opció de resposta
|
89
|
+
add_display_condition: Afegir condició de visualització
|
90
|
+
add_display_condition_info: Guardar l'enquesta per a configurar les condicions de visualització
|
91
|
+
add_matrix_row: Afegir fila
|
41
92
|
any: Cap
|
93
|
+
collapse: Redueix
|
42
94
|
description: Descripció
|
43
95
|
down: Avall
|
96
|
+
expand: Expandeix
|
44
97
|
question: Pregunta
|
45
98
|
remove: Eliminar
|
46
99
|
statement: Declaració
|
47
100
|
up: Amunt
|
101
|
+
separator:
|
102
|
+
down: Baixar
|
103
|
+
remove: Eliminar
|
104
|
+
separator: Separador
|
105
|
+
up: Pujar
|
48
106
|
update:
|
49
107
|
invalid: S'ha produït un error en desar el formulari.
|
50
|
-
success:
|
108
|
+
success: Formulari desat correctament.
|
51
109
|
errors:
|
52
110
|
answer:
|
53
111
|
body: El camp no pot estar en blanc
|
112
|
+
files:
|
113
|
+
extension_whitelist: 'Formats d''arxiu acceptats:'
|
114
|
+
images:
|
115
|
+
dimensions: "%{width} x %{height} px"
|
116
|
+
dimensions_info: 'Aquesta imatge medirà:'
|
117
|
+
processors:
|
118
|
+
resize_and_pad: Redimensionat i ajustat a
|
119
|
+
resize_to_fit: Redimensionada per ajustar-la
|
54
120
|
question_types:
|
55
121
|
long_answer: Resposta llarga
|
122
|
+
matrix_multiple: Matriu (opció multiple)
|
123
|
+
matrix_single: Matriu (opció única)
|
56
124
|
multiple_option: Opció múltiple
|
57
125
|
short_answer: Resposta curta
|
58
126
|
single_option: Opció única
|
@@ -60,6 +128,7 @@ ca:
|
|
60
128
|
questionnaires:
|
61
129
|
answer:
|
62
130
|
invalid: S'han produït un error en respondre el formulari.
|
131
|
+
max_choices_alert: Hi ha massa opcions seleccionades
|
63
132
|
success: Has contestat el formulari correctament.
|
64
133
|
question:
|
65
134
|
max_choices: 'Opcions màximes: %{n}'
|
@@ -67,7 +136,8 @@ ca:
|
|
67
136
|
answer_questionnaire:
|
68
137
|
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
138
|
title: Respon el formulari
|
70
|
-
|
139
|
+
current_step: Pas %{step}
|
140
|
+
of_total_steps: de %{total_steps}
|
71
141
|
questionnaire_answered:
|
72
142
|
body: Ja has respost a aquest formulari.
|
73
143
|
title: Ja has respost
|
@@ -77,12 +147,26 @@ ca:
|
|
77
147
|
questionnaire_for_private_users:
|
78
148
|
body: El formulari només està disponible per a participants privades
|
79
149
|
title: S'ha tancat el formulari
|
80
|
-
|
150
|
+
questionnaire_js_disabled:
|
151
|
+
body: Algunes de les característiques d'aquest formulari es deshabilitaran. Per millorar la teva experiència, si us plau, habilita JavaScript al teu navegador.
|
152
|
+
title: JavaScript està desactivat
|
153
|
+
questionnaire_not_published:
|
154
|
+
body: Aquest formulari no s'ha publicat encara.
|
81
155
|
tos_agreement: En participar acceptes els Termes i condicions d'ús
|
156
|
+
step_navigation:
|
157
|
+
show:
|
158
|
+
are_you_sure: Aquesta acció no es pot desfer i no podràs editar les teves respostes. Estàs segura?
|
159
|
+
back: Enrere
|
160
|
+
continue: Continuar
|
161
|
+
submit: Enviar respostes
|
82
162
|
user_answers_serializer:
|
163
|
+
body: Resposta
|
164
|
+
completion: Finalització
|
83
165
|
created_at: Respost el
|
84
166
|
id: Identificador de resposta
|
85
|
-
ip_hash:
|
167
|
+
ip_hash: Hash d'adreça IP
|
168
|
+
question: Pregunta
|
86
169
|
registered: Registrada
|
170
|
+
session_token: Identificador d'usuària
|
87
171
|
unregistered: No registrada
|
88
172
|
user_status: Estat de l'usuària
|