decidim-forms 0.28.4 → 0.29.0.rc1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/app/cells/decidim/forms/question_readonly_cell.rb +0 -2
- data/app/cells/decidim/forms/step_navigation/show.erb +3 -3
- data/app/cells/decidim/forms/step_navigation_cell.rb +2 -3
- data/app/commands/decidim/forms/answer_questionnaire.rb +4 -4
- data/app/controllers/decidim/forms/concerns/has_questionnaire.rb +1 -1
- data/app/forms/decidim/forms/answer_form.rb +2 -2
- data/app/forms/decidim/forms/questionnaire_form.rb +1 -1
- data/app/helpers/decidim/forms/application_helper.rb +2 -2
- data/app/models/decidim/forms/answer_option.rb +1 -1
- data/app/models/decidim/forms/display_condition.rb +11 -3
- data/app/models/decidim/forms/question_matrix_row.rb +1 -1
- data/app/presenters/decidim/forms/admin/questionnaire_participant_presenter.rb +7 -7
- data/app/views/decidim/forms/admin/questionnaires/_answer_option.html.erb +1 -1
- data/app/views/decidim/forms/admin/questionnaires/_display_condition.html.erb +2 -2
- data/app/views/decidim/forms/admin/questionnaires/_matrix_row.html.erb +1 -1
- data/app/views/decidim/forms/admin/questionnaires/_question.html.erb +4 -4
- data/app/views/decidim/forms/admin/questionnaires/_separator.html.erb +4 -4
- data/app/views/decidim/forms/admin/questionnaires/_title_and_description.html.erb +4 -4
- data/config/initializers/wicked_pdf.rb +5 -5
- data/config/locales/ar.yml +0 -1
- data/config/locales/bg.yml +1 -2
- data/config/locales/ca.yml +1 -1
- data/config/locales/cs.yml +0 -1
- data/config/locales/de.yml +1 -1
- data/config/locales/el.yml +0 -2
- data/config/locales/en.yml +2 -2
- data/config/locales/es-MX.yml +2 -2
- data/config/locales/es-PY.yml +2 -2
- data/config/locales/es.yml +2 -2
- data/config/locales/eu.yml +1 -1
- data/config/locales/fi-plain.yml +1 -1
- data/config/locales/fi.yml +2 -2
- data/config/locales/fr-CA.yml +1 -1
- data/config/locales/fr.yml +1 -1
- data/config/locales/gl.yml +0 -1
- data/config/locales/hu.yml +3 -4
- data/config/locales/id-ID.yml +0 -1
- data/config/locales/it.yml +0 -1
- data/config/locales/ja.yml +1 -1
- data/config/locales/lb.yml +0 -1
- data/config/locales/lt.yml +0 -2
- data/config/locales/lv.yml +0 -1
- data/config/locales/nl.yml +0 -1
- data/config/locales/no.yml +0 -1
- data/config/locales/pl.yml +1 -1
- data/config/locales/pt-BR.yml +0 -1
- data/config/locales/pt.yml +0 -1
- data/config/locales/ro-RO.yml +0 -2
- data/config/locales/sk.yml +0 -1
- data/config/locales/sv.yml +29 -47
- data/config/locales/tr-TR.yml +0 -1
- data/config/locales/zh-CN.yml +0 -1
- data/config/locales/zh-TW.yml +0 -2
- data/db/migrate/20240402092039_add_answer_options_counter_cache_to_questions.rb +16 -0
- data/db/migrate/20240402095253_add_matrix_row_counter_cache_to_questions.rb +16 -0
- data/db/migrate/20240416111953_add_display_conditions_counter_cache_to_questions.rb +16 -0
- data/db/migrate/20240416113926_add_display_conditions_for_other_questions_counter_cache_to_questions.rb +16 -0
- data/decidim-forms.gemspec +1 -1
- data/lib/decidim/forms/test/shared_examples/has_questionnaire.rb +44 -44
- data/lib/decidim/forms/test/shared_examples/manage_questionnaire_answers.rb +12 -12
- data/lib/decidim/forms/test/shared_examples/manage_questionnaires/add_display_conditions.rb +10 -10
- data/lib/decidim/forms/test/shared_examples/manage_questionnaires/add_questions.rb +85 -85
- data/lib/decidim/forms/test/shared_examples/manage_questionnaires/update_display_conditions.rb +8 -8
- data/lib/decidim/forms/test/shared_examples/manage_questionnaires/update_questions.rb +82 -82
- data/lib/decidim/forms/test/shared_examples/manage_questionnaires.rb +9 -9
- data/lib/decidim/forms/version.rb +1 -1
- metadata +16 -12
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 2293a9e3534dc50768b5ed1a7ac9e501ec9a531089ac49a33e31cf7c4660d7ed
|
4
|
+
data.tar.gz: da021b4ab46c20cdb1aaeaa1f5a8cd1aedd46cd411c22b74b6cfdf72c4440592
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: d72b88bb788cb143ff3c422f0f9df2a1dedeac476b30c0c393d6cee92a0664a48ab1ad4dd0ac55313a5b902c1efaa5f7b8d9a9b4086320aa35a14bb42f6d3344
|
7
|
+
data.tar.gz: d2c4966ec421a62dda538e4257934223a1708eb8f7c20b9c31947d5e87f67bf261ca669d7cd0ee790397353017df8c62936fd7a02aef6702f424c3a6a6ea58f5
|
@@ -4,8 +4,6 @@ module Decidim
|
|
4
4
|
module Forms
|
5
5
|
# This cell renders a question (readonly) of a questionnaire
|
6
6
|
class QuestionReadonlyCell < Decidim::ViewModel
|
7
|
-
include Decidim::SanitizeHelper
|
8
|
-
|
9
7
|
def show
|
10
8
|
return if model.separator?
|
11
9
|
return render :title_and_description if model.title_and_description?
|
@@ -1,6 +1,6 @@
|
|
1
|
-
<div class="
|
1
|
+
<div class="answer-questionnaire__submit layout-aside__ctas-buttons survey-section-buttons" data-sticky-buttons>
|
2
2
|
<% if !first_step? %>
|
3
|
-
<button type="button" class="button button__sm
|
3
|
+
<button type="button" class="button button__sm button__transparent-secondary" data-toggle="<%= [previous_step_dom_id, current_step_dom_id].join(" ") %>" data-survey-buttons>
|
4
4
|
<%= icon "arrow-left-line", class: "fill-current" %>
|
5
5
|
<%= t("decidim.forms.step_navigation.show.back") %>
|
6
6
|
</button>
|
@@ -14,7 +14,7 @@
|
|
14
14
|
**confirm_data
|
15
15
|
) %>
|
16
16
|
<% else %>
|
17
|
-
<button type="button" class="button button__sm button__secondary" data-toggle="<%= [next_step_dom_id, current_step_dom_id].join(" ") %>">
|
17
|
+
<button type="button" class="button button__sm button__secondary" data-toggle="<%= [next_step_dom_id, current_step_dom_id].join(" ") %>" data-survey-buttons>
|
18
18
|
<%= t("decidim.forms.step_navigation.show.continue") %>
|
19
19
|
<%= icon "arrow-right-line", class: "fill-current" %>
|
20
20
|
</button>
|
@@ -4,8 +4,6 @@ module Decidim
|
|
4
4
|
module Forms
|
5
5
|
# This cell renders the navigation of a questionnaire step.
|
6
6
|
class StepNavigationCell < Decidim::ViewModel
|
7
|
-
include Decidim::LayoutHelper
|
8
|
-
|
9
7
|
def current_step_index
|
10
8
|
model
|
11
9
|
end
|
@@ -45,7 +43,8 @@ module Decidim
|
|
45
43
|
def confirm_data
|
46
44
|
{ data: {
|
47
45
|
confirm: t("decidim.forms.step_navigation.show.are_you_sure"),
|
48
|
-
disable: true
|
46
|
+
disable: true,
|
47
|
+
data: "survey-buttons"
|
49
48
|
} }
|
50
49
|
end
|
51
50
|
end
|
@@ -4,15 +4,15 @@ module Decidim
|
|
4
4
|
module Forms
|
5
5
|
# This command is executed when the user answers a Questionnaire.
|
6
6
|
class AnswerQuestionnaire < Decidim::Command
|
7
|
+
delegate :current_user, to: :form
|
7
8
|
include ::Decidim::MultipleAttachmentsMethods
|
8
9
|
|
9
10
|
# Initializes a AnswerQuestionnaire Command.
|
10
11
|
#
|
11
12
|
# form - The form from which to get the data.
|
12
13
|
# questionnaire - The current instance of the questionnaire to be answered.
|
13
|
-
def initialize(form,
|
14
|
+
def initialize(form, questionnaire)
|
14
15
|
@form = form
|
15
|
-
@current_user = current_user
|
16
16
|
@questionnaire = questionnaire
|
17
17
|
end
|
18
18
|
|
@@ -34,7 +34,7 @@ module Decidim
|
|
34
34
|
end
|
35
35
|
end
|
36
36
|
|
37
|
-
attr_reader :form, :questionnaire
|
37
|
+
attr_reader :form, :questionnaire
|
38
38
|
|
39
39
|
private
|
40
40
|
|
@@ -82,7 +82,7 @@ module Decidim
|
|
82
82
|
Answer.transaction(requires_new: true) do
|
83
83
|
form.responses_by_step.flatten.select(&:display_conditions_fulfilled?).each do |form_answer|
|
84
84
|
answer = Answer.new(
|
85
|
-
user:
|
85
|
+
user: current_user,
|
86
86
|
questionnaire: @questionnaire,
|
87
87
|
question: form_answer.question,
|
88
88
|
body: form_answer.body,
|
@@ -30,7 +30,7 @@ module Decidim
|
|
30
30
|
|
31
31
|
@form = form(Decidim::Forms::QuestionnaireForm).from_params(params, session_token:, ip_hash:)
|
32
32
|
|
33
|
-
Decidim::Forms::AnswerQuestionnaire.call(@form,
|
33
|
+
Decidim::Forms::AnswerQuestionnaire.call(@form, questionnaire) do
|
34
34
|
on(:ok) do
|
35
35
|
# i18n-tasks-use t("decidim.forms.questionnaires.answer.success")
|
36
36
|
flash[:notice] = I18n.t("answer.success", scope: i18n_flashes_scope)
|
@@ -108,9 +108,9 @@ module Decidim
|
|
108
108
|
|
109
109
|
def max_choices
|
110
110
|
if matrix?
|
111
|
-
errors.add(:choices, :too_many) if grouped_choices.any? { |choices| choices.count > question.max_choices }
|
111
|
+
errors.add(:choices, :too_many, count: question.max_choices) if grouped_choices.any? { |choices| choices.count > question.max_choices }
|
112
112
|
elsif selected_choices.size > question.max_choices
|
113
|
-
errors.add(:choices, :too_many)
|
113
|
+
errors.add(:choices, :too_many, count: question.max_choices)
|
114
114
|
end
|
115
115
|
end
|
116
116
|
|
@@ -33,7 +33,7 @@ module Decidim
|
|
33
33
|
context.responses = attributes[:responses]
|
34
34
|
end
|
35
35
|
|
36
|
-
# Public: Splits
|
36
|
+
# Public: Splits responses by step, keeping the separator.
|
37
37
|
#
|
38
38
|
# Returns an array of steps. Each step is a list of the questions in that
|
39
39
|
# step, including the separator.
|
@@ -8,11 +8,11 @@ module Decidim
|
|
8
8
|
def show_represent_user_group?
|
9
9
|
model_name = questionnaire_for.model_name.element
|
10
10
|
|
11
|
-
|
11
|
+
permitted_models.include?(model_name)
|
12
12
|
end
|
13
13
|
alias show_public_participation? show_represent_user_group?
|
14
14
|
|
15
|
-
def
|
15
|
+
def permitted_models
|
16
16
|
%(meeting)
|
17
17
|
end
|
18
18
|
end
|
@@ -9,7 +9,7 @@ module Decidim
|
|
9
9
|
|
10
10
|
translatable_fields :body
|
11
11
|
|
12
|
-
belongs_to :question, class_name: "Question", foreign_key: "decidim_question_id"
|
12
|
+
belongs_to :question, class_name: "Question", foreign_key: "decidim_question_id", counter_cache: true
|
13
13
|
|
14
14
|
has_many :display_conditions,
|
15
15
|
class_name: "DisplayCondition",
|
@@ -7,16 +7,24 @@ module Decidim
|
|
7
7
|
# that we want to display or hide based on some conditions, and :condition_question
|
8
8
|
# is the question the answers of which are checked against the conditions.
|
9
9
|
# Conditions can be whether the question is answered ("answered") or it is not ("not_answered"),
|
10
|
-
# if the selected answer option is ("equal") or is not ("not_equal") a given one, or
|
10
|
+
# if the selected answer option is ("equal") or is not ("not_equal") a given one, or whether
|
11
11
|
# the text value of the answer matches a string ("match").
|
12
12
|
class DisplayCondition < Forms::ApplicationRecord
|
13
13
|
enum condition_type: [:answered, :not_answered, :equal, :not_equal, :match], _prefix: true
|
14
14
|
|
15
15
|
# Question which will be displayed or hidden
|
16
|
-
belongs_to :question,
|
16
|
+
belongs_to :question,
|
17
|
+
class_name: "Question",
|
18
|
+
foreign_key: "decidim_question_id",
|
19
|
+
inverse_of: :display_conditions,
|
20
|
+
counter_cache: :display_conditions_count
|
17
21
|
|
18
22
|
# Question the answers of which are checked against conditions
|
19
|
-
belongs_to :condition_question,
|
23
|
+
belongs_to :condition_question,
|
24
|
+
class_name: "Question",
|
25
|
+
foreign_key: "decidim_condition_question_id",
|
26
|
+
inverse_of: :display_conditions_for_other_questions,
|
27
|
+
counter_cache: :display_conditions_for_other_questions_count
|
20
28
|
|
21
29
|
# Answer option provided to check for "equal" or "not_equal" (optional)
|
22
30
|
belongs_to :answer_option, class_name: "AnswerOption", foreign_key: "decidim_answer_option_id", optional: true
|
@@ -7,7 +7,7 @@ module Decidim
|
|
7
7
|
include Decidim::TranslatableResource
|
8
8
|
|
9
9
|
translatable_fields :body
|
10
|
-
belongs_to :question, class_name: "Question", foreign_key: "decidim_question_id"
|
10
|
+
belongs_to :question, class_name: "Question", foreign_key: "decidim_question_id", counter_cache: :matrix_rows_count
|
11
11
|
|
12
12
|
delegate :answer_options, :mandatory, :max_choices, to: :question
|
13
13
|
|
@@ -34,26 +34,26 @@ module Decidim
|
|
34
34
|
end
|
35
35
|
|
36
36
|
def answers
|
37
|
-
|
37
|
+
siblings.map { |answer| QuestionnaireAnswerPresenter.new(answer:) }
|
38
38
|
end
|
39
39
|
|
40
40
|
def first_short_answer
|
41
|
-
short =
|
41
|
+
short = siblings.where(decidim_forms_questions: { question_type: %w(short_answer) })
|
42
42
|
short.first
|
43
43
|
end
|
44
44
|
|
45
45
|
def completion
|
46
|
-
with_body =
|
47
|
-
|
48
|
-
with_choices =
|
49
|
-
|
46
|
+
with_body = siblings.where(decidim_forms_questions: { question_type: %w(short_answer long_answer) })
|
47
|
+
.where.not(body: "").count
|
48
|
+
with_choices = siblings.where.not("decidim_forms_questions.question_type in (?)", %w(short_answer long_answer))
|
49
|
+
.where("decidim_forms_answers.id IN (SELECT decidim_answer_id FROM decidim_forms_answer_choices)").count
|
50
50
|
|
51
51
|
(with_body + with_choices).to_f / questionnaire.questions.not_separator.not_title_and_description.count * 100
|
52
52
|
end
|
53
53
|
|
54
54
|
private
|
55
55
|
|
56
|
-
def
|
56
|
+
def siblings
|
57
57
|
Answer.not_separator
|
58
58
|
.not_title_and_description
|
59
59
|
.where(questionnaire:, session_token: participant.session_token)
|
@@ -5,7 +5,7 @@
|
|
5
5
|
<h2 class="card-title">
|
6
6
|
<span><%= t(".answer_option") %></span>
|
7
7
|
<% if editable %>
|
8
|
-
<button class="button button__sm button__transparent-secondary small alert
|
8
|
+
<button class="button button__sm button__transparent-secondary small alert remove-answer-option button--title mb-2">
|
9
9
|
<%= icon("delete-bin-line") %>
|
10
10
|
<%= t(".remove") %>
|
11
11
|
</button>
|
@@ -5,7 +5,7 @@
|
|
5
5
|
<h2 class="card-title">
|
6
6
|
<span><%= t(".display_condition") %></span>
|
7
7
|
<% if editable %>
|
8
|
-
<button class="button button__sm button__transparent-secondary small alert
|
8
|
+
<button class="button button__sm button__transparent-secondary small alert remove-display-condition button--title">
|
9
9
|
<%= icon("delete-bin-line") %>
|
10
10
|
<%= t(".remove") %>
|
11
11
|
</button>
|
@@ -14,7 +14,7 @@
|
|
14
14
|
</div>
|
15
15
|
<div class="card-section">
|
16
16
|
<div class="row column">
|
17
|
-
<small
|
17
|
+
<small>
|
18
18
|
<%= t(".save_warning") %>
|
19
19
|
</small>
|
20
20
|
</div>
|
@@ -5,7 +5,7 @@
|
|
5
5
|
<h2 class="card-title">
|
6
6
|
<span><%= t(".matrix_row") %></span>
|
7
7
|
<% if editable %>
|
8
|
-
<button class="button button__sm button__transparent-secondary small alert
|
8
|
+
<button class="button button__sm button__transparent-secondary small alert remove-matrix-row button--title mb-2">
|
9
9
|
<%= icon("delete-bin-line") %>
|
10
10
|
<%= t(".remove") %>
|
11
11
|
</button>
|
@@ -2,7 +2,7 @@
|
|
2
2
|
<% is_expanded = question.errors.any? %>
|
3
3
|
<div class="card questionnaire-question" id="accordion-<%= id %>-field">
|
4
4
|
<div class="form__wrapper" data-component="accordion">
|
5
|
-
<div class="card-divider
|
5
|
+
<div class="card-divider">
|
6
6
|
<h2 class="card-title flex items-center">
|
7
7
|
<span>
|
8
8
|
<% if editable %>
|
@@ -23,17 +23,17 @@
|
|
23
23
|
</button>
|
24
24
|
|
25
25
|
<% if editable %>
|
26
|
-
<button class="button button__sm button__transparent-secondary small alert
|
26
|
+
<button class="button button__sm button__transparent-secondary small alert move-up-question button--title">
|
27
27
|
<%= icon("arrow-up-line") %>
|
28
28
|
<%= t(".up") %>
|
29
29
|
</button>
|
30
30
|
|
31
|
-
<button class="button button__sm button__transparent-secondary small alert
|
31
|
+
<button class="button button__sm button__transparent-secondary small alert move-down-question button--title">
|
32
32
|
<%= icon("arrow-down-line") %>
|
33
33
|
<%= t(".down") %>
|
34
34
|
</button>
|
35
35
|
|
36
|
-
<button class="button button__sm button__transparent-secondary small alert
|
36
|
+
<button class="button button__sm button__transparent-secondary small alert remove-question button--title">
|
37
37
|
<%= icon("delete-bin-line") %>
|
38
38
|
<%= t(".remove") %>
|
39
39
|
</button>
|
@@ -1,7 +1,7 @@
|
|
1
1
|
<% question = form.object %>
|
2
2
|
|
3
3
|
<div class="card questionnaire-question" id="<%= id %>-field">
|
4
|
-
<div class="card-divider
|
4
|
+
<div class="card-divider">
|
5
5
|
<h2 class="card-title flex items-center">
|
6
6
|
<span>
|
7
7
|
<% if editable %>
|
@@ -12,15 +12,15 @@
|
|
12
12
|
|
13
13
|
<div class="flex items-center gap-x-4 ml-auto">
|
14
14
|
<% if editable %>
|
15
|
-
<button class="button button__sm button__transparent button__transparent-secondary small alert
|
15
|
+
<button class="button button__sm button__transparent button__transparent-secondary small alert move-up-question button--title">
|
16
16
|
<%== "#{icon("arrow-up-line")} #{t(".up")}" %>
|
17
17
|
</button>
|
18
18
|
|
19
|
-
<button class="button button__sm button__transparent button__transparent-secondary small alert
|
19
|
+
<button class="button button__sm button__transparent button__transparent-secondary small alert move-down-question button--title">
|
20
20
|
<%== "#{icon("arrow-down-line")} #{t(".down")}" %>
|
21
21
|
</button>
|
22
22
|
|
23
|
-
<button class="button button__sm button__transparent button__transparent-secondary small alert
|
23
|
+
<button class="button button__sm button__transparent button__transparent-secondary small alert remove-question button--title">
|
24
24
|
<%= t(".remove") %>
|
25
25
|
</button>
|
26
26
|
<% end %>
|
@@ -3,7 +3,7 @@
|
|
3
3
|
|
4
4
|
<div class="card questionnaire-question" id="accordion-<%= id %>-field">
|
5
5
|
<div data-component="accordion">
|
6
|
-
<div class="card-divider
|
6
|
+
<div class="card-divider">
|
7
7
|
<h2 class="card-title flex items-center">
|
8
8
|
<span>
|
9
9
|
<% if editable %>
|
@@ -23,17 +23,17 @@
|
|
23
23
|
</button>
|
24
24
|
|
25
25
|
<% if editable %>
|
26
|
-
<button class="button button__sm button__transparent button__transparent-secondary small alert
|
26
|
+
<button class="button button__sm button__transparent button__transparent-secondary small alert move-up-question button--title">
|
27
27
|
<%= icon("arrow-up-line") %>
|
28
28
|
<%= t(".up") %>
|
29
29
|
</button>
|
30
30
|
|
31
|
-
<button class="button button__sm button__transparent button__transparent-secondary small alert
|
31
|
+
<button class="button button__sm button__transparent button__transparent-secondary small alert move-down-question button--title">
|
32
32
|
<%= icon("arrow-down-line") %>
|
33
33
|
<%= t(".down") %>
|
34
34
|
</button>
|
35
35
|
|
36
|
-
<button class="button button__sm button__transparent button__transparent-secondary small alert
|
36
|
+
<button class="button button__sm button__transparent button__transparent-secondary small alert remove-question button--title">
|
37
37
|
<%= icon("delete-bin-line") %>
|
38
38
|
<%= t(".remove") %>
|
39
39
|
</button>
|
@@ -14,14 +14,14 @@ require "wicked_pdf"
|
|
14
14
|
#
|
15
15
|
# https://github.com/mileszs/wicked_pdf/blob/master/README.md
|
16
16
|
|
17
|
-
WickedPdf.
|
17
|
+
WickedPdf.configure do |config|
|
18
18
|
# Path to the wkhtmltopdf executable: This usually is not needed if using
|
19
19
|
# one of the wkhtmltopdf-binary family of gems.
|
20
|
-
# exe_path: '/usr/local/bin/wkhtmltopdf',
|
21
20
|
# or
|
22
|
-
exe_path
|
21
|
+
# config.exe_path = '/usr/local/bin/wkhtmltopdf',
|
22
|
+
config.exe_path = Gem.bin_path("wkhtmltopdf-binary", "wkhtmltopdf")
|
23
23
|
|
24
24
|
# Layout file to be used for all PDFs
|
25
25
|
# (but can be overridden in `render :pdf` calls)
|
26
|
-
# layout
|
27
|
-
|
26
|
+
# config.layout = 'pdf.html'
|
27
|
+
end
|
data/config/locales/ar.yml
CHANGED
data/config/locales/bg.yml
CHANGED
@@ -22,7 +22,7 @@ bg:
|
|
22
22
|
too_long: твърде дълъг
|
23
23
|
choices:
|
24
24
|
missing: не са завършени
|
25
|
-
too_many:
|
25
|
+
too_many: Можете да изберете максимум %{count}.
|
26
26
|
questionnaire:
|
27
27
|
request_invalid: Възникна грешка при обработката на заявката. Моля, опитайте отново.
|
28
28
|
decidim:
|
@@ -158,7 +158,6 @@ bg:
|
|
158
158
|
answer_questionnaire:
|
159
159
|
already_have_an_account?: Вече имате профил?
|
160
160
|
are_you_new?: Нов потребител?
|
161
|
-
sign_in_description: Влезте, за да участвате в анкетата
|
162
161
|
sign_up_description: Създайте акаунт на участник, за да участвате в анкетата
|
163
162
|
title: Попълване на отговори във формуляра
|
164
163
|
current_step: Стъпка %{step}
|
data/config/locales/ca.yml
CHANGED
@@ -22,7 +22,7 @@ ca:
|
|
22
22
|
too_long: és massa llarg
|
23
23
|
choices:
|
24
24
|
missing: no estan complets
|
25
|
-
too_many:
|
25
|
+
too_many: Pots triar un màxim de %{count} opcions.
|
26
26
|
questionnaire:
|
27
27
|
request_invalid: Hi ha hagut un problema gestionant la petició. Si us plau, torna-ho a provar.
|
28
28
|
decidim:
|
data/config/locales/cs.yml
CHANGED
data/config/locales/de.yml
CHANGED
@@ -22,7 +22,7 @@ de:
|
|
22
22
|
too_long: ist zu lang
|
23
23
|
choices:
|
24
24
|
missing: sind nicht vollständig
|
25
|
-
too_many:
|
25
|
+
too_many: Sie können ein Maximum von %{count} auswählen.
|
26
26
|
questionnaire:
|
27
27
|
request_invalid: Beim Bearbeiten der Anfrage ist ein Fehler aufgetreten. Bitte versuchen Sie es nochmal.
|
28
28
|
decidim:
|
data/config/locales/el.yml
CHANGED
@@ -22,7 +22,6 @@ el:
|
|
22
22
|
too_long: είναι πολύ μεγάλο
|
23
23
|
choices:
|
24
24
|
missing: δεν έχουν ολοκληρωθεί
|
25
|
-
too_many: είναι πάρα πολλά
|
26
25
|
questionnaire:
|
27
26
|
request_invalid: Παρουσιάστηκε σφάλμα κατά τον χειρισμό του αιτήματος. Παρακαλώ δοκιμάστε ξανά.
|
28
27
|
decidim:
|
@@ -158,7 +157,6 @@ el:
|
|
158
157
|
answer_questionnaire:
|
159
158
|
already_have_an_account?: Έχετε ήδη λογαριασμό;
|
160
159
|
are_you_new?: Νέος χρήστης;
|
161
|
-
sign_in_description: Συνδεθείτε για να πραγματοποιήσετε την έρευνα
|
162
160
|
sign_up_description: Δημιουργήστε ένα λογαριασμό συμμετέχοντα για να κάνετε την έρευνα
|
163
161
|
title: Απαντήστε στη φόρμα
|
164
162
|
current_step: Βήμα %{step}
|
data/config/locales/en.yml
CHANGED
@@ -22,7 +22,7 @@ en:
|
|
22
22
|
too_long: is too long
|
23
23
|
choices:
|
24
24
|
missing: are not complete
|
25
|
-
too_many:
|
25
|
+
too_many: You can choose a maximum of %{count}.
|
26
26
|
questionnaire:
|
27
27
|
request_invalid: There was an error handling the request. Please try again.
|
28
28
|
decidim:
|
@@ -158,7 +158,7 @@ en:
|
|
158
158
|
answer_questionnaire:
|
159
159
|
already_have_an_account?: Already have an account?
|
160
160
|
are_you_new?: New user?
|
161
|
-
sign_in_description:
|
161
|
+
sign_in_description: Log in to take the survey
|
162
162
|
sign_up_description: Create a participant account to take the survey
|
163
163
|
title: Answer the form
|
164
164
|
current_step: Step %{step}
|
data/config/locales/es-MX.yml
CHANGED
@@ -22,7 +22,7 @@ es-MX:
|
|
22
22
|
too_long: es demasiado largo
|
23
23
|
choices:
|
24
24
|
missing: no están completos
|
25
|
-
too_many:
|
25
|
+
too_many: Puedes elegir un máximo de %{count} opciones.
|
26
26
|
questionnaire:
|
27
27
|
request_invalid: Ha ocurrido un error al enviar tu solicitud. Por favor, Inténtalo de nuevo.
|
28
28
|
decidim:
|
@@ -158,7 +158,7 @@ es-MX:
|
|
158
158
|
answer_questionnaire:
|
159
159
|
already_have_an_account?: '¿Ya tienes una cuenta?'
|
160
160
|
are_you_new?: '¿Eres una nueva usuaria?'
|
161
|
-
sign_in_description: Inicia
|
161
|
+
sign_in_description: Inicia sesión para realizar la encuesta
|
162
162
|
sign_up_description: Crea una cuenta de participante para realizar la encuesta
|
163
163
|
title: Responde al cuestionario
|
164
164
|
current_step: Paso %{step}
|
data/config/locales/es-PY.yml
CHANGED
@@ -22,7 +22,7 @@ es-PY:
|
|
22
22
|
too_long: es demasiado largo
|
23
23
|
choices:
|
24
24
|
missing: no están completos
|
25
|
-
too_many:
|
25
|
+
too_many: Puedes elegir un máximo de %{count} opciones.
|
26
26
|
questionnaire:
|
27
27
|
request_invalid: Ha ocurrido un error al enviar tu solicitud. Por favor, Inténtalo de nuevo.
|
28
28
|
decidim:
|
@@ -158,7 +158,7 @@ es-PY:
|
|
158
158
|
answer_questionnaire:
|
159
159
|
already_have_an_account?: '¿Ya tienes una cuenta?'
|
160
160
|
are_you_new?: '¿Eres una nueva usuaria?'
|
161
|
-
sign_in_description: Inicia
|
161
|
+
sign_in_description: Inicia sesión para realizar la encuesta
|
162
162
|
sign_up_description: Crea una cuenta de participante para realizar la encuesta
|
163
163
|
title: Responde al cuestionario
|
164
164
|
current_step: Paso %{step}
|
data/config/locales/es.yml
CHANGED
@@ -22,7 +22,7 @@ es:
|
|
22
22
|
too_long: es demasiado largo
|
23
23
|
choices:
|
24
24
|
missing: no están completos
|
25
|
-
too_many:
|
25
|
+
too_many: Puedes elegir un máximo de %{count} opciones.
|
26
26
|
questionnaire:
|
27
27
|
request_invalid: Ha ocurrido un error al enviar tu solicitud. Por favor, Inténtalo de nuevo.
|
28
28
|
decidim:
|
@@ -158,7 +158,7 @@ es:
|
|
158
158
|
answer_questionnaire:
|
159
159
|
already_have_an_account?: '¿Ya tienes una cuenta?'
|
160
160
|
are_you_new?: '¿Eres una nueva usuaria?'
|
161
|
-
sign_in_description: Inicia
|
161
|
+
sign_in_description: Inicia sesión para realizar la encuesta
|
162
162
|
sign_up_description: Crea una cuenta de participante para realizar la encuesta
|
163
163
|
title: Responde el formulario
|
164
164
|
current_step: Paso %{step}
|
data/config/locales/eu.yml
CHANGED
data/config/locales/fi-plain.yml
CHANGED
@@ -22,7 +22,7 @@ fi-pl:
|
|
22
22
|
too_long: liian pitkä
|
23
23
|
choices:
|
24
24
|
missing: ovat puutteellisia
|
25
|
-
too_many:
|
25
|
+
too_many: Voit valita enintään %{count} vaihtoehtoa.
|
26
26
|
questionnaire:
|
27
27
|
request_invalid: Pyynnön käsittely ei onnistunut. Yritä uudestaan myöhemmin.
|
28
28
|
decidim:
|
data/config/locales/fi.yml
CHANGED
@@ -22,7 +22,7 @@ fi:
|
|
22
22
|
too_long: liian pitkä
|
23
23
|
choices:
|
24
24
|
missing: ovat puutteellisia
|
25
|
-
too_many:
|
25
|
+
too_many: Voit valita enintään %{count} vaihtoehtoa.
|
26
26
|
questionnaire:
|
27
27
|
request_invalid: Pyynnön käsittely ei onnistunut. Yritä uudestaan myöhemmin.
|
28
28
|
decidim:
|
@@ -123,7 +123,7 @@ fi:
|
|
123
123
|
up: Ylös
|
124
124
|
update:
|
125
125
|
invalid: Kyselylomakkeen tallentaminen epäonnistui.
|
126
|
-
success:
|
126
|
+
success: Lomake tallennettu onnistuneesti.
|
127
127
|
admin_log:
|
128
128
|
questionnaire:
|
129
129
|
update: "%{user_name} päivitti kyselyä %{resource_name}"
|
data/config/locales/fr-CA.yml
CHANGED
@@ -22,7 +22,7 @@ fr-CA:
|
|
22
22
|
too_long: est trop long
|
23
23
|
choices:
|
24
24
|
missing: ne sont pas complets
|
25
|
-
too_many:
|
25
|
+
too_many: Vous pouvez choisir un maximum de %{count}.
|
26
26
|
questionnaire:
|
27
27
|
request_invalid: Une erreur s'est produite. Veuillez réessayer.
|
28
28
|
decidim:
|
data/config/locales/fr.yml
CHANGED
@@ -22,7 +22,7 @@ fr:
|
|
22
22
|
too_long: est trop long
|
23
23
|
choices:
|
24
24
|
missing: ne sont pas complets
|
25
|
-
too_many:
|
25
|
+
too_many: Vous pouvez choisir un maximum de %{count}.
|
26
26
|
questionnaire:
|
27
27
|
request_invalid: Une erreur s'est produite. Veuillez réessayer.
|
28
28
|
decidim:
|
data/config/locales/gl.yml
CHANGED
data/config/locales/hu.yml
CHANGED
@@ -15,7 +15,6 @@ hu:
|
|
15
15
|
attributes:
|
16
16
|
choices:
|
17
17
|
missing: nem teljesek
|
18
|
-
too_many: túl sok
|
19
18
|
decidim:
|
20
19
|
forms:
|
21
20
|
admin:
|
@@ -28,7 +27,7 @@ hu:
|
|
28
27
|
answer_option: Válasz opció
|
29
28
|
free_text: Szabadszöveg
|
30
29
|
remove: Eltávolít
|
31
|
-
statement:
|
30
|
+
statement: Nyilatkozat
|
32
31
|
edit:
|
33
32
|
save: Mentés
|
34
33
|
form:
|
@@ -39,7 +38,7 @@ hu:
|
|
39
38
|
expand: Minden kérdés kibontása
|
40
39
|
matrix_row:
|
41
40
|
remove: Eltávolít
|
42
|
-
statement:
|
41
|
+
statement: Nyilatkozat
|
43
42
|
question:
|
44
43
|
add_answer_option: Válasz opció hozzáadása
|
45
44
|
any: Bármilyen
|
@@ -49,7 +48,7 @@ hu:
|
|
49
48
|
expand: Kibontás
|
50
49
|
question: Kérdés
|
51
50
|
remove: Eltávolít
|
52
|
-
statement:
|
51
|
+
statement: Nyilatkozat
|
53
52
|
up: Fel
|
54
53
|
title_and_description:
|
55
54
|
collapse: Összecsuk
|