decidim-forms 0.26.2 → 0.27.0.rc2
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 +4 -4
- data/app/commands/decidim/forms/admin/update_questionnaire.rb +13 -8
- data/app/commands/decidim/forms/answer_questionnaire.rb +3 -3
- data/app/controllers/decidim/forms/admin/concerns/has_questionnaire.rb +2 -2
- data/app/forms/decidim/forms/admin/display_condition_form.rb +3 -3
- data/app/forms/decidim/forms/answer_form.rb +4 -0
- data/app/models/decidim/forms/answer.rb +2 -2
- data/app/models/decidim/forms/display_condition.rb +1 -1
- data/app/models/decidim/forms/questionnaire.rb +7 -0
- data/app/packs/src/decidim/forms/admin/forms.js +3 -0
- data/app/presenters/decidim/forms/admin/questionnaire_answer_presenter.rb +10 -2
- data/app/presenters/decidim/forms/admin/questionnaire_participant_presenter.rb +5 -3
- data/app/presenters/decidim/forms/admin_log/questionnaire_presenter.rb +35 -0
- data/app/queries/decidim/forms/questionnaire_participant.rb +1 -1
- data/app/queries/decidim/forms/questionnaire_participants.rb +1 -1
- data/app/queries/decidim/forms/questionnaire_user_answers.rb +1 -1
- data/app/views/decidim/forms/questionnaires/show.html.erb +4 -2
- data/config/locales/ar.yml +1 -0
- data/config/locales/bg.yml +1 -0
- data/config/locales/ca.yml +6 -3
- data/config/locales/cs.yml +6 -3
- data/config/locales/de.yml +6 -3
- data/config/locales/el.yml +1 -4
- data/config/locales/en.yml +5 -3
- data/config/locales/es-MX.yml +6 -3
- data/config/locales/es-PY.yml +6 -3
- data/config/locales/es.yml +6 -3
- data/config/locales/eu.yml +1 -4
- data/config/locales/fi-plain.yml +6 -3
- data/config/locales/fi.yml +6 -3
- data/config/locales/fr-CA.yml +6 -3
- data/config/locales/fr.yml +6 -3
- data/config/locales/ga-IE.yml +1 -0
- data/config/locales/gl.yml +5 -0
- data/config/locales/hu.yml +4 -0
- data/config/locales/id-ID.yml +1 -0
- data/config/locales/it.yml +1 -4
- data/config/locales/ja.yml +6 -3
- data/config/locales/lb.yml +1 -4
- data/config/locales/lt.yml +191 -0
- data/config/locales/lv.yml +1 -4
- data/config/locales/nl.yml +1 -4
- data/config/locales/no.yml +1 -4
- data/config/locales/pl.yml +1 -4
- data/config/locales/pt-BR.yml +1 -4
- data/config/locales/pt.yml +1 -4
- data/config/locales/ro-RO.yml +1 -4
- data/config/locales/ru.yml +1 -0
- data/config/locales/sk.yml +1 -0
- data/config/locales/sl.yml +1 -0
- data/config/locales/sv.yml +1 -4
- data/config/locales/tr-TR.yml +1 -4
- data/config/locales/val-ES.yml +1 -0
- data/config/locales/zh-CN.yml +1 -4
- data/lib/decidim/exporters/form_pdf.rb +2 -2
- data/lib/decidim/forms/{data_portability_user_answers_serializer.rb → download_your_data_user_answers_serializer.rb} +2 -2
- data/lib/decidim/forms/test/factories.rb +22 -13
- data/lib/decidim/forms/test/shared_examples/manage_questionnaires/update_questions.rb +2 -2
- data/lib/decidim/forms/user_answers_serializer.rb +2 -2
- data/lib/decidim/forms/version.rb +1 -1
- data/lib/decidim/forms.rb +1 -1
- metadata +14 -13
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 81e96451d62f5103d06d5e3faed9995dd4095fd26ead4b0e46441b480248a1cb
|
4
|
+
data.tar.gz: f764c1a304b7a2fd98a716595b51b79342afa092b812dc3b2d627535b6199a43
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 22a006a8033a94f5d9791c74300cc298505521746a40452ae6f10742e6f2da2100cb1f2e4d1c9b6b229908a3e29bce816f338311db14e8581ff8278218298f22
|
7
|
+
data.tar.gz: 6eac52cf9bac996ce47017745444527615c5ba099234d4c7efc1586d93fb8603860158644773526ac9215e9ded8cc0f941b0ec731bc62a755ceddbb97ee5f4cb
|
@@ -5,14 +5,15 @@ module Decidim
|
|
5
5
|
module Admin
|
6
6
|
# This command is executed when the user changes a Questionnaire from the admin
|
7
7
|
# panel.
|
8
|
-
class UpdateQuestionnaire <
|
8
|
+
class UpdateQuestionnaire < Decidim::Command
|
9
9
|
# Initializes a UpdateQuestionnaire Command.
|
10
10
|
#
|
11
11
|
# form - The form from which to get the data.
|
12
12
|
# questionnaire - The current instance of the questionnaire to be updated.
|
13
|
-
def initialize(form, questionnaire)
|
13
|
+
def initialize(form, questionnaire, user)
|
14
14
|
@form = form
|
15
15
|
@questionnaire = questionnaire
|
16
|
+
@user = user
|
16
17
|
end
|
17
18
|
|
18
19
|
# Updates the questionnaire if valid.
|
@@ -21,13 +22,17 @@ module Decidim
|
|
21
22
|
def call
|
22
23
|
return broadcast(:invalid) if @form.invalid?
|
23
24
|
|
24
|
-
Decidim
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
25
|
+
Decidim.traceability.perform_action!("update",
|
26
|
+
@questionnaire,
|
27
|
+
@user) do
|
28
|
+
Decidim::Forms::Questionnaire.transaction do
|
29
|
+
if @questionnaire.questions_editable?
|
30
|
+
update_questionnaire_questions
|
31
|
+
delete_answers unless @questionnaire.published?
|
32
|
+
end
|
29
33
|
|
30
|
-
|
34
|
+
update_questionnaire
|
35
|
+
end
|
31
36
|
end
|
32
37
|
|
33
38
|
broadcast(:ok)
|
@@ -3,7 +3,7 @@
|
|
3
3
|
module Decidim
|
4
4
|
module Forms
|
5
5
|
# This command is executed when the user answers a Questionnaire.
|
6
|
-
class AnswerQuestionnaire <
|
6
|
+
class AnswerQuestionnaire < Decidim::Command
|
7
7
|
include ::Decidim::MultipleAttachmentsMethods
|
8
8
|
|
9
9
|
# Initializes a AnswerQuestionnaire Command.
|
@@ -43,7 +43,7 @@ module Decidim
|
|
43
43
|
# of this problem.
|
44
44
|
def reset_form_attachments
|
45
45
|
@form.responses.each do |answer|
|
46
|
-
answer.errors.add(:add_documents, :needs_to_be_reattached) if answer.has_attachments?
|
46
|
+
answer.errors.add(:add_documents, :needs_to_be_reattached) if answer.has_attachments? || answer.has_error_in_attachments?
|
47
47
|
end
|
48
48
|
end
|
49
49
|
|
@@ -51,7 +51,7 @@ module Decidim
|
|
51
51
|
@main_form = @form
|
52
52
|
@errors = nil
|
53
53
|
|
54
|
-
Answer.transaction do
|
54
|
+
Answer.transaction(requires_new: true) do
|
55
55
|
form.responses_by_step.flatten.select(&:display_conditions_fulfilled?).each do |form_answer|
|
56
56
|
answer = Answer.new(
|
57
57
|
user: @current_user,
|
@@ -22,7 +22,7 @@ module Decidim
|
|
22
22
|
|
23
23
|
if defined? Decidim::Templates::Admin
|
24
24
|
include Decidim::Templates::Admin::Concerns::Templatable
|
25
|
-
helper Decidim::
|
25
|
+
helper Decidim::DatalistSelectHelper
|
26
26
|
|
27
27
|
def templatable_type
|
28
28
|
"Decidim::Forms::Questionnaire"
|
@@ -47,7 +47,7 @@ module Decidim
|
|
47
47
|
params["published_at"] = Time.current if params.has_key? "save_and_publish"
|
48
48
|
@form = form(Admin::QuestionnaireForm).from_params(params)
|
49
49
|
|
50
|
-
Admin::UpdateQuestionnaire.call(@form, questionnaire) do
|
50
|
+
Admin::UpdateQuestionnaire.call(@form, questionnaire, current_user) do
|
51
51
|
on(:ok) do
|
52
52
|
# i18n-tasks-use t("decidim.forms.admin.questionnaires.update.success")
|
53
53
|
flash[:notice] = I18n.t("update.success", scope: i18n_flashes_scope)
|
@@ -55,21 +55,21 @@ module Decidim
|
|
55
55
|
#
|
56
56
|
# Returns a Decidim::Forms::Question
|
57
57
|
def question
|
58
|
-
@question ||= Question.find_by(id:
|
58
|
+
@question ||= Question.find_by(id: decidim_question_id)
|
59
59
|
end
|
60
60
|
|
61
61
|
# Finds the Condition Question from the given decidim_condition_question_id
|
62
62
|
#
|
63
63
|
# Returns a Decidim::Forms::Question
|
64
64
|
def condition_question
|
65
|
-
@condition_question ||= Question.find_by(id:
|
65
|
+
@condition_question ||= Question.find_by(id: decidim_condition_question_id)
|
66
66
|
end
|
67
67
|
|
68
68
|
# Finds the Answer Option from the given decidim_answer_option_id
|
69
69
|
#
|
70
70
|
# Returns a Decidim::Forms::AnswerOption
|
71
71
|
def answer_option
|
72
|
-
@answer_option ||= AnswerOption.find_by(id:
|
72
|
+
@answer_option ||= AnswerOption.find_by(id: decidim_answer_option_id)
|
73
73
|
end
|
74
74
|
|
75
75
|
private
|
@@ -4,7 +4,7 @@ module Decidim
|
|
4
4
|
module Forms
|
5
5
|
# The data store for an Answer in the Decidim::Forms
|
6
6
|
class Answer < Forms::ApplicationRecord
|
7
|
-
include Decidim::
|
7
|
+
include Decidim::DownloadYourData
|
8
8
|
include Decidim::NewsletterParticipant
|
9
9
|
include Decidim::HasAttachments
|
10
10
|
|
@@ -29,7 +29,7 @@ module Decidim
|
|
29
29
|
end
|
30
30
|
|
31
31
|
def self.export_serializer
|
32
|
-
Decidim::Forms::
|
32
|
+
Decidim::Forms::DownloadYourDataUserAnswersSerializer
|
33
33
|
end
|
34
34
|
|
35
35
|
def self.newsletter_participant_ids(component)
|
@@ -33,7 +33,7 @@ module Decidim
|
|
33
33
|
when "not_equal"
|
34
34
|
answer_form.choices.pluck(:answer_option_id).exclude?(answer_option.id)
|
35
35
|
when "match"
|
36
|
-
condition_value.values.
|
36
|
+
condition_value.values.compact_blank.any? { |value| answer_form_matches?(answer_form, value) }
|
37
37
|
end
|
38
38
|
end
|
39
39
|
|
@@ -7,6 +7,7 @@ module Decidim
|
|
7
7
|
include Decidim::Templates::Templatable if defined? Decidim::Templates::Templatable
|
8
8
|
include Decidim::Publicable
|
9
9
|
include Decidim::TranslatableResource
|
10
|
+
include Decidim::Traceable
|
10
11
|
|
11
12
|
translatable_fields :title, :description, :tos
|
12
13
|
belongs_to :questionnaire_for, polymorphic: true
|
@@ -16,6 +17,8 @@ module Decidim
|
|
16
17
|
|
17
18
|
after_initialize :set_default_salt
|
18
19
|
|
20
|
+
attr_accessor :questionnaire_template_id
|
21
|
+
|
19
22
|
# Public: returns whether the questionnaire questions can be modified or not.
|
20
23
|
def questions_editable?
|
21
24
|
has_component = questionnaire_for.respond_to? :component
|
@@ -32,6 +35,10 @@ module Decidim
|
|
32
35
|
created_at.to_i == updated_at.to_i && questions.empty?
|
33
36
|
end
|
34
37
|
|
38
|
+
def self.log_presenter_class_for(_log)
|
39
|
+
Decidim::Forms::AdminLog::QuestionnairePresenter
|
40
|
+
end
|
41
|
+
|
35
42
|
private
|
36
43
|
|
37
44
|
# salt is used to generate secure hash in anonymous answers
|
@@ -11,6 +11,7 @@ import createSortList from "src/decidim/admin/sort_list.component"
|
|
11
11
|
import createDynamicFields from "src/decidim/admin/dynamic_fields.component"
|
12
12
|
import createFieldDependentInputs from "src/decidim/admin/field_dependent_inputs.component"
|
13
13
|
import createQuillEditor from "src/decidim/editor"
|
14
|
+
import initLanguageChangeSelect from "src/decidim/admin/choose_language"
|
14
15
|
|
15
16
|
export default function createEditableForm() {
|
16
17
|
const wrapperSelector = ".questionnaire-questions";
|
@@ -392,6 +393,8 @@ export default function createEditableForm() {
|
|
392
393
|
|
393
394
|
autoLabelByPosition.run();
|
394
395
|
autoButtonsByPosition.run();
|
396
|
+
|
397
|
+
initLanguageChangeSelect($field.find("select.language-change").toArray());
|
395
398
|
},
|
396
399
|
onRemoveField: ($field) => {
|
397
400
|
autoLabelByPosition.run();
|
@@ -6,10 +6,18 @@ module Decidim
|
|
6
6
|
#
|
7
7
|
# Presenter for questionnaire answer
|
8
8
|
#
|
9
|
-
class QuestionnaireAnswerPresenter <
|
9
|
+
class QuestionnaireAnswerPresenter < SimpleDelegator
|
10
|
+
delegate :content_tag, :safe_join, to: :view_context
|
11
|
+
|
10
12
|
include Decidim::TranslatableAttributes
|
11
13
|
|
12
|
-
|
14
|
+
def answer
|
15
|
+
__getobj__.fetch(:answer)
|
16
|
+
end
|
17
|
+
|
18
|
+
def view_context
|
19
|
+
__getobj__.fetch(:view_context, ActionController::Base.new.view_context)
|
20
|
+
end
|
13
21
|
|
14
22
|
def question
|
15
23
|
translated_attribute(answer.question.body)
|
@@ -6,8 +6,10 @@ module Decidim
|
|
6
6
|
#
|
7
7
|
# Presenter for questionnaire response
|
8
8
|
#
|
9
|
-
class QuestionnaireParticipantPresenter <
|
10
|
-
|
9
|
+
class QuestionnaireParticipantPresenter < SimpleDelegator
|
10
|
+
def participant
|
11
|
+
__getobj__.fetch(:participant)
|
12
|
+
end
|
11
13
|
|
12
14
|
def session_token
|
13
15
|
participant.session_token || "-"
|
@@ -28,7 +30,7 @@ module Decidim
|
|
28
30
|
end
|
29
31
|
|
30
32
|
def status
|
31
|
-
t(registered? ? "registered" : "unregistered", scope: "decidim.forms.user_answers_serializer")
|
33
|
+
I18n.t(registered? ? "registered" : "unregistered", scope: "decidim.forms.user_answers_serializer")
|
32
34
|
end
|
33
35
|
|
34
36
|
def answers
|
@@ -0,0 +1,35 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module Decidim
|
4
|
+
module Forms
|
5
|
+
module AdminLog
|
6
|
+
# This class holds the logic to present a `Decidim::Forms::Questionnaire`
|
7
|
+
# for the `AdminLog` log.
|
8
|
+
#
|
9
|
+
# Usage should be automatic and you shouldn't need to call this class
|
10
|
+
# directly, but here's an example:
|
11
|
+
#
|
12
|
+
# action_log = Decidim::ActionLog.last
|
13
|
+
# view_helpers # => this comes from the views
|
14
|
+
# QuestionnairePresenter.new(action_log, view_helpers).present
|
15
|
+
class QuestionnairePresenter < Decidim::Log::BasePresenter
|
16
|
+
private
|
17
|
+
|
18
|
+
def action_string
|
19
|
+
case action
|
20
|
+
when "update"
|
21
|
+
"decidim.forms.admin_log.questionnaire.#{action}"
|
22
|
+
else
|
23
|
+
super
|
24
|
+
end
|
25
|
+
end
|
26
|
+
|
27
|
+
def i18n_params
|
28
|
+
super.merge(
|
29
|
+
meeting_name: resource_presenter.try(:present)
|
30
|
+
)
|
31
|
+
end
|
32
|
+
end
|
33
|
+
end
|
34
|
+
end
|
35
|
+
end
|
@@ -3,7 +3,7 @@
|
|
3
3
|
module Decidim
|
4
4
|
module Forms
|
5
5
|
# A class used to collect user answers for a questionnaire
|
6
|
-
class QuestionnaireParticipant <
|
6
|
+
class QuestionnaireParticipant < Decidim::Query
|
7
7
|
# Syntactic sugar to initialize the class and return the queried objects.
|
8
8
|
#
|
9
9
|
# questionnaire - a Questionnaire object
|
@@ -3,7 +3,7 @@
|
|
3
3
|
module Decidim
|
4
4
|
module Forms
|
5
5
|
# A class used to collect user answers for a questionnaire
|
6
|
-
class QuestionnaireParticipants <
|
6
|
+
class QuestionnaireParticipants < Decidim::Query
|
7
7
|
# Syntactic sugar to initialize the class and return the queried objects.
|
8
8
|
#
|
9
9
|
# questionnaire - a Questionnaire object
|
@@ -3,7 +3,7 @@
|
|
3
3
|
module Decidim
|
4
4
|
module Forms
|
5
5
|
# A class used to collect user answers for a questionnaire
|
6
|
-
class QuestionnaireUserAnswers <
|
6
|
+
class QuestionnaireUserAnswers < Decidim::Query
|
7
7
|
# Syntactic sugar to initialize the class and return the queried objects.
|
8
8
|
#
|
9
9
|
# questionnaire - a Questionnaire object
|
@@ -5,7 +5,7 @@
|
|
5
5
|
|
6
6
|
<% columns = allow_answers? && visitor_can_answer? && @form.responses.map(&:question).any?(&:matrix?) ? 9 : 6 %>
|
7
7
|
|
8
|
-
<%= render partial: "decidim/shared/component_announcement" %>
|
8
|
+
<%= render partial: "decidim/shared/component_announcement" if current_component.manifest_name == "surveys" %>
|
9
9
|
|
10
10
|
<div class="row columns">
|
11
11
|
<h2 class="section-heading"><%= translated_attribute questionnaire.title %></h2>
|
@@ -151,4 +151,6 @@
|
|
151
151
|
</div>
|
152
152
|
</div>
|
153
153
|
|
154
|
-
|
154
|
+
<% content_for :js_content do %>
|
155
|
+
<%= javascript_pack_tag "decidim_forms" %>
|
156
|
+
<% end %>
|
data/config/locales/ar.yml
CHANGED
data/config/locales/bg.yml
CHANGED
data/config/locales/ca.yml
CHANGED
@@ -1,3 +1,4 @@
|
|
1
|
+
---
|
1
2
|
ca:
|
2
3
|
activemodel:
|
3
4
|
attributes:
|
@@ -121,6 +122,9 @@ ca:
|
|
121
122
|
update:
|
122
123
|
invalid: S'ha produït un error en desar el formulari.
|
123
124
|
success: Formulari desat correctament.
|
125
|
+
admin_log:
|
126
|
+
questionnaire:
|
127
|
+
update: "%{user_name} ha actualitzat el qüestionari %{resource_name}"
|
124
128
|
errors:
|
125
129
|
answer:
|
126
130
|
body: El camp no pot estar en blanc
|
@@ -128,10 +132,9 @@ ca:
|
|
128
132
|
extension_allowlist: 'Formats d''arxiu acceptats:'
|
129
133
|
images:
|
130
134
|
dimensions: "%{width} x %{height} px"
|
131
|
-
dimensions_info: 'Aquesta imatge medirà:'
|
132
135
|
processors:
|
133
|
-
resize_and_pad:
|
134
|
-
resize_to_fit:
|
136
|
+
resize_and_pad: Aquesta imatge serà redimensionada i ajustada a %{dimensions}.
|
137
|
+
resize_to_fit: Aquesta imatge serà redimensionada per ajustar-se a %{dimensions}.
|
135
138
|
question_types:
|
136
139
|
files: Arxius
|
137
140
|
long_answer: Resposta llarga
|
data/config/locales/cs.yml
CHANGED
@@ -1,3 +1,4 @@
|
|
1
|
+
---
|
1
2
|
cs:
|
2
3
|
activemodel:
|
3
4
|
attributes:
|
@@ -121,6 +122,9 @@ cs:
|
|
121
122
|
update:
|
122
123
|
invalid: Při ukládání dotazníku došlo k chybám.
|
123
124
|
success: Formulář byl úspěšně uložen.
|
125
|
+
admin_log:
|
126
|
+
questionnaire:
|
127
|
+
update: "%{user_name} aktualizoval dotazník %{resource_name}"
|
124
128
|
errors:
|
125
129
|
answer:
|
126
130
|
body: Tělo nemůže být prázdné
|
@@ -128,10 +132,9 @@ cs:
|
|
128
132
|
extension_allowlist: 'Akceptované formáty:'
|
129
133
|
images:
|
130
134
|
dimensions: "%{width} x %{height} px"
|
131
|
-
dimensions_info: 'Tento obrázek bude:'
|
132
135
|
processors:
|
133
|
-
resize_and_pad:
|
134
|
-
resize_to_fit:
|
136
|
+
resize_and_pad: Tento obrázek bude změněn a vyplněn na %{dimensions}.
|
137
|
+
resize_to_fit: Tento obrázek bude změněn a vyplněn na %{dimensions}.
|
135
138
|
question_types:
|
136
139
|
files: Soubory
|
137
140
|
long_answer: Dlouhá odpověď
|
data/config/locales/de.yml
CHANGED
@@ -1,3 +1,4 @@
|
|
1
|
+
---
|
1
2
|
de:
|
2
3
|
activemodel:
|
3
4
|
attributes:
|
@@ -121,6 +122,9 @@ de:
|
|
121
122
|
update:
|
122
123
|
invalid: Beim Speichern des Fragebogens sind Fehler aufgetreten.
|
123
124
|
success: Formular erfolgreich gespeichert.
|
125
|
+
admin_log:
|
126
|
+
questionnaire:
|
127
|
+
update: "%{user_name} hat die Umfrage %{resource_name} aktualisiert"
|
124
128
|
errors:
|
125
129
|
answer:
|
126
130
|
body: Körper kann nicht leer sein
|
@@ -128,10 +132,9 @@ de:
|
|
128
132
|
extension_allowlist: 'Gültige Formate:'
|
129
133
|
images:
|
130
134
|
dimensions: "%{width} x %{height} px"
|
131
|
-
dimensions_info: 'Das Bild wird:'
|
132
135
|
processors:
|
133
|
-
resize_and_pad:
|
134
|
-
resize_to_fit:
|
136
|
+
resize_and_pad: Dieses Bild wird skaliert und an %{dimensions} angepasst.
|
137
|
+
resize_to_fit: Dieses Bild wird auf %{dimensions} skaliert.
|
135
138
|
question_types:
|
136
139
|
files: Dateien
|
137
140
|
long_answer: Lange Antwort
|
data/config/locales/el.yml
CHANGED
@@ -1,3 +1,4 @@
|
|
1
|
+
---
|
1
2
|
el:
|
2
3
|
activemodel:
|
3
4
|
attributes:
|
@@ -69,10 +70,6 @@ el:
|
|
69
70
|
extension_allowlist: 'Αποδεκτές μορφές:'
|
70
71
|
images:
|
71
72
|
dimensions: "Π %{width} x Υ %{height} px"
|
72
|
-
dimensions_info: 'Για αυτήν την εικόνα θα:'
|
73
|
-
processors:
|
74
|
-
resize_and_pad: Αλλάξει το μέγεθος και θα συμπληρωθεί σε
|
75
|
-
resize_to_fit: Αλλάξει το μέγεθος για προσαρμογή
|
76
73
|
question_types:
|
77
74
|
long_answer: Μεγάλη απάντηση
|
78
75
|
matrix_multiple: Πίνακας (πολλαπλή επιλογή)
|
data/config/locales/en.yml
CHANGED
@@ -122,6 +122,9 @@ en:
|
|
122
122
|
update:
|
123
123
|
invalid: There was a problem saving the form.
|
124
124
|
success: Form successfully saved.
|
125
|
+
admin_log:
|
126
|
+
questionnaire:
|
127
|
+
update: "%{user_name} updated the %{resource_name} questionnaire"
|
125
128
|
errors:
|
126
129
|
answer:
|
127
130
|
body: Body can't be blank
|
@@ -129,10 +132,9 @@ en:
|
|
129
132
|
extension_allowlist: 'Accepted formats:'
|
130
133
|
images:
|
131
134
|
dimensions: "%{width} x %{height} px"
|
132
|
-
dimensions_info: 'This image will be:'
|
133
135
|
processors:
|
134
|
-
resize_and_pad:
|
135
|
-
resize_to_fit:
|
136
|
+
resize_and_pad: This image will be resized and padded to %{dimensions}.
|
137
|
+
resize_to_fit: This image will be resized to fit %{dimensions}.
|
136
138
|
question_types:
|
137
139
|
files: Files
|
138
140
|
long_answer: Long answer
|
data/config/locales/es-MX.yml
CHANGED
@@ -1,3 +1,4 @@
|
|
1
|
+
---
|
1
2
|
es-MX:
|
2
3
|
activemodel:
|
3
4
|
attributes:
|
@@ -121,6 +122,9 @@ es-MX:
|
|
121
122
|
update:
|
122
123
|
invalid: Ha habido errores al guardar el cuestionario.
|
123
124
|
success: Formulario guardado correctamente.
|
125
|
+
admin_log:
|
126
|
+
questionnaire:
|
127
|
+
update: "%{user_name} actualizó el cuestionario %{resource_name}"
|
124
128
|
errors:
|
125
129
|
answer:
|
126
130
|
body: El campo no puede estar en blanco
|
@@ -128,10 +132,9 @@ es-MX:
|
|
128
132
|
extension_allowlist: 'Formatos de archivo aceptados:'
|
129
133
|
images:
|
130
134
|
dimensions: "%{width} x %{height} px"
|
131
|
-
dimensions_info: 'Esta imagen medirá:'
|
132
135
|
processors:
|
133
|
-
resize_and_pad:
|
134
|
-
resize_to_fit:
|
136
|
+
resize_and_pad: Esta imagen será redimensionada y ajustada a %{dimensions}.
|
137
|
+
resize_to_fit: Esta imagen será redimensionada para ajustarse a %{dimensions}.
|
135
138
|
question_types:
|
136
139
|
files: Archivos
|
137
140
|
long_answer: Respuesta larga
|
data/config/locales/es-PY.yml
CHANGED
@@ -1,3 +1,4 @@
|
|
1
|
+
---
|
1
2
|
es-PY:
|
2
3
|
activemodel:
|
3
4
|
attributes:
|
@@ -121,6 +122,9 @@ es-PY:
|
|
121
122
|
update:
|
122
123
|
invalid: Ha habido errores al guardar el cuestionario.
|
123
124
|
success: Formulario guardado correctamente.
|
125
|
+
admin_log:
|
126
|
+
questionnaire:
|
127
|
+
update: "%{user_name} actualizó el cuestionario %{resource_name}"
|
124
128
|
errors:
|
125
129
|
answer:
|
126
130
|
body: El campo no puede estar en blanco
|
@@ -128,10 +132,9 @@ es-PY:
|
|
128
132
|
extension_allowlist: 'Formatos de archivo aceptados:'
|
129
133
|
images:
|
130
134
|
dimensions: "%{width} x %{height} px"
|
131
|
-
dimensions_info: 'Esta imagen medirá:'
|
132
135
|
processors:
|
133
|
-
resize_and_pad:
|
134
|
-
resize_to_fit:
|
136
|
+
resize_and_pad: Esta imagen será redimensionada y ajustada a %{dimensions}.
|
137
|
+
resize_to_fit: Esta imagen será redimensionada para ajustarse a %{dimensions}.
|
135
138
|
question_types:
|
136
139
|
files: Archivos
|
137
140
|
long_answer: Respuesta larga
|
data/config/locales/es.yml
CHANGED
@@ -1,3 +1,4 @@
|
|
1
|
+
---
|
1
2
|
es:
|
2
3
|
activemodel:
|
3
4
|
attributes:
|
@@ -121,6 +122,9 @@ es:
|
|
121
122
|
update:
|
122
123
|
invalid: Se ha producido un error al guardar el formulario.
|
123
124
|
success: Formulario guardado correctamente.
|
125
|
+
admin_log:
|
126
|
+
questionnaire:
|
127
|
+
update: "%{user_name} actualizó el cuestionario %{resource_name}"
|
124
128
|
errors:
|
125
129
|
answer:
|
126
130
|
body: El campo no puede estar en blanco
|
@@ -128,10 +132,9 @@ es:
|
|
128
132
|
extension_allowlist: 'Formatos de archivo aceptados:'
|
129
133
|
images:
|
130
134
|
dimensions: "%{width} x %{height} px"
|
131
|
-
dimensions_info: 'Esta imagen medirá:'
|
132
135
|
processors:
|
133
|
-
resize_and_pad:
|
134
|
-
resize_to_fit:
|
136
|
+
resize_and_pad: Esta imagen será redimensionada y ajustada a %{dimensions}.
|
137
|
+
resize_to_fit: Esta imagen será redimensionada para ajustarse a %{dimensions}.
|
135
138
|
question_types:
|
136
139
|
files: Archivos
|
137
140
|
long_answer: Respuesta larga
|
data/config/locales/eu.yml
CHANGED
@@ -1,3 +1,4 @@
|
|
1
|
+
---
|
1
2
|
eu:
|
2
3
|
activemodel:
|
3
4
|
attributes:
|
@@ -118,10 +119,6 @@ eu:
|
|
118
119
|
extension_allowlist: 'Onartutako formatuak:'
|
119
120
|
images:
|
120
121
|
dimensions: "%{width} x %{height} px"
|
121
|
-
dimensions_info: 'Irudi honek neurtuko du:'
|
122
|
-
processors:
|
123
|
-
resize_and_pad: Birdimentsionatua eta honi egokitua
|
124
|
-
resize_to_fit: Birdimentsionatua egokitzeko
|
125
122
|
question_types:
|
126
123
|
files: Fitxategiak
|
127
124
|
long_answer: Erantzun luzea
|
data/config/locales/fi-plain.yml
CHANGED
@@ -1,3 +1,4 @@
|
|
1
|
+
---
|
1
2
|
fi-pl:
|
2
3
|
activemodel:
|
3
4
|
attributes:
|
@@ -121,6 +122,9 @@ fi-pl:
|
|
121
122
|
update:
|
122
123
|
invalid: Kyselylomakkeiden tallentamisessa on tapahtunut virheitä.
|
123
124
|
success: Lomake tallennettu onnistuneesti.
|
125
|
+
admin_log:
|
126
|
+
questionnaire:
|
127
|
+
update: "%{user_name} päivitti kyselyä %{resource_name}"
|
124
128
|
errors:
|
125
129
|
answer:
|
126
130
|
body: Runkoteksti ei voi olla tyhjä
|
@@ -128,10 +132,9 @@ fi-pl:
|
|
128
132
|
extension_allowlist: 'Sallitut tiedostopäätteet:'
|
129
133
|
images:
|
130
134
|
dimensions: "%{width} x %{height} pikseliä"
|
131
|
-
dimensions_info: 'Tämän kuvan koko tulee olemaan:'
|
132
135
|
processors:
|
133
|
-
resize_and_pad:
|
134
|
-
resize_to_fit:
|
136
|
+
resize_and_pad: Kuvan kokoa muutetaan ja rajataan arvoon %{dimensions}.
|
137
|
+
resize_to_fit: Tämä kuva muutetaan kokoon %{dimensions} sopivaksi.
|
135
138
|
question_types:
|
136
139
|
files: Tiedostot
|
137
140
|
long_answer: Pitkä vastaus
|
data/config/locales/fi.yml
CHANGED
@@ -1,3 +1,4 @@
|
|
1
|
+
---
|
1
2
|
fi:
|
2
3
|
activemodel:
|
3
4
|
attributes:
|
@@ -121,6 +122,9 @@ fi:
|
|
121
122
|
update:
|
122
123
|
invalid: Kyselylomakkeen tallentaminen epäonnistui.
|
123
124
|
success: Lomake tallennettu onnistuneesti.
|
125
|
+
admin_log:
|
126
|
+
questionnaire:
|
127
|
+
update: "%{user_name} päivitti kyselyä %{resource_name}"
|
124
128
|
errors:
|
125
129
|
answer:
|
126
130
|
body: Runkoteksti ei voi olla tyhjä
|
@@ -128,10 +132,9 @@ fi:
|
|
128
132
|
extension_allowlist: 'Sallitut tiedostopäätteet:'
|
129
133
|
images:
|
130
134
|
dimensions: "%{width} x %{height} pikseliä"
|
131
|
-
dimensions_info: 'Tämän kuvan koko tulee olemaan:'
|
132
135
|
processors:
|
133
|
-
resize_and_pad:
|
134
|
-
resize_to_fit:
|
136
|
+
resize_and_pad: Kuvan kokoa muutetaan ja rajataan arvoon %{dimensions}.
|
137
|
+
resize_to_fit: Tämä kuva muutetaan kokoon %{dimensions} sopivaksi.
|
135
138
|
question_types:
|
136
139
|
files: Tiedostot
|
137
140
|
long_answer: Pitkä vastaus
|