decidim-forms 0.26.10 → 0.27.0.rc1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (91) hide show
  1. checksums.yaml +4 -4
  2. data/app/commands/decidim/forms/admin/update_questionnaire.rb +13 -8
  3. data/app/commands/decidim/forms/answer_questionnaire.rb +1 -1
  4. data/app/controllers/decidim/forms/admin/concerns/has_questionnaire.rb +3 -3
  5. data/app/forms/decidim/forms/admin/display_condition_form.rb +3 -3
  6. data/app/models/decidim/forms/answer.rb +2 -2
  7. data/app/models/decidim/forms/display_condition.rb +1 -1
  8. data/app/models/decidim/forms/questionnaire.rb +7 -0
  9. data/app/packs/src/decidim/forms/admin/forms.js +0 -3
  10. data/app/presenters/decidim/forms/admin/questionnaire_answer_presenter.rb +13 -8
  11. data/app/presenters/decidim/forms/admin/questionnaire_participant_presenter.rb +5 -3
  12. data/app/presenters/decidim/forms/admin_log/questionnaire_presenter.rb +35 -0
  13. data/app/queries/decidim/forms/questionnaire_participant.rb +1 -1
  14. data/app/queries/decidim/forms/questionnaire_participants.rb +1 -1
  15. data/app/queries/decidim/forms/questionnaire_user_answers.rb +1 -1
  16. data/app/views/decidim/forms/admin/questionnaires/_form.html.erb +1 -1
  17. data/app/views/decidim/forms/admin/questionnaires/edit.html.erb +0 -2
  18. data/app/views/decidim/forms/questionnaires/_answer.html.erb +2 -2
  19. data/app/views/decidim/forms/questionnaires/show.html.erb +5 -3
  20. data/config/locales/am-ET.yml +1 -0
  21. data/config/locales/ar.yml +1 -0
  22. data/config/locales/bg.yml +1 -0
  23. data/config/locales/ca.yml +7 -6
  24. data/config/locales/cs.yml +6 -5
  25. data/config/locales/da.yml +1 -0
  26. data/config/locales/de.yml +2 -7
  27. data/config/locales/el.yml +1 -77
  28. data/config/locales/en.yml +5 -5
  29. data/config/locales/eo.yml +1 -0
  30. data/config/locales/es-MX.yml +6 -5
  31. data/config/locales/es-PY.yml +6 -5
  32. data/config/locales/es.yml +7 -6
  33. data/config/locales/et.yml +1 -0
  34. data/config/locales/eu.yml +27 -45
  35. data/config/locales/fi-plain.yml +6 -5
  36. data/config/locales/fi.yml +6 -5
  37. data/config/locales/fr-CA.yml +3 -5
  38. data/config/locales/fr.yml +3 -5
  39. data/config/locales/ga-IE.yml +1 -0
  40. data/config/locales/gl.yml +5 -0
  41. data/config/locales/hr.yml +1 -0
  42. data/config/locales/hu.yml +4 -1
  43. data/config/locales/id-ID.yml +1 -0
  44. data/config/locales/is-IS.yml +2 -1
  45. data/config/locales/it.yml +1 -4
  46. data/config/locales/ja.yml +6 -5
  47. data/config/locales/ko.yml +1 -0
  48. data/config/locales/lb.yml +1 -4
  49. data/config/locales/lt.yml +1 -190
  50. data/config/locales/lv.yml +1 -4
  51. data/config/locales/mt.yml +1 -0
  52. data/config/locales/nl.yml +1 -4
  53. data/config/locales/no.yml +1 -4
  54. data/config/locales/om-ET.yml +1 -0
  55. data/config/locales/pl.yml +5 -21
  56. data/config/locales/pt-BR.yml +2 -18
  57. data/config/locales/pt.yml +1 -4
  58. data/config/locales/ro-RO.yml +1 -6
  59. data/config/locales/ru.yml +1 -0
  60. data/config/locales/si-LK.yml +1 -0
  61. data/config/locales/sk.yml +1 -0
  62. data/config/locales/sl.yml +1 -0
  63. data/config/locales/so-SO.yml +1 -0
  64. data/config/locales/sr-CS.yml +1 -0
  65. data/config/locales/sv.yml +1 -4
  66. data/config/locales/sw-KE.yml +1 -0
  67. data/config/locales/ti-ER.yml +1 -0
  68. data/config/locales/tr-TR.yml +1 -4
  69. data/config/locales/uk.yml +1 -0
  70. data/config/locales/val-ES.yml +1 -0
  71. data/config/locales/vi.yml +1 -0
  72. data/config/locales/zh-CN.yml +1 -4
  73. data/config/locales/zh-TW.yml +1 -190
  74. data/lib/decidim/exporters/form_pdf.rb +2 -2
  75. data/lib/decidim/forms/{data_portability_user_answers_serializer.rb → download_your_data_user_answers_serializer.rb} +2 -2
  76. data/lib/decidim/forms/test/factories.rb +22 -13
  77. data/lib/decidim/forms/test/shared_examples/manage_questionnaire_answers.rb +2 -25
  78. data/lib/decidim/forms/test/shared_examples/manage_questionnaires/update_questions.rb +2 -2
  79. data/lib/decidim/forms/user_answers_serializer.rb +3 -3
  80. data/lib/decidim/forms/version.rb +1 -1
  81. data/lib/decidim/forms.rb +1 -1
  82. metadata +14 -22
  83. data/config/environment.rb +0 -3
  84. data/config/locales/fa-IR.yml +0 -1
  85. data/config/locales/gn-PY.yml +0 -1
  86. data/config/locales/ka-GE.yml +0 -1
  87. data/config/locales/kaa.yml +0 -7
  88. data/config/locales/lo-LA.yml +0 -1
  89. data/config/locales/oc-FR.yml +0 -1
  90. data/config/locales/sq-AL.yml +0 -1
  91. data/config/locales/th-TH.yml +0 -1
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: c435405600fe1cf3b00311da4834ac4ff2a83436beaf8c215cbd71bacadf0b02
4
- data.tar.gz: 40bb6932e182d144fec4d4eda89ec544a29069ab62860f3ac9a26c6a080ec071
3
+ metadata.gz: b63c51b898c731a6ac659b9160f4b5bf5d2404cea0aec58cb5fdffff1a29a9b0
4
+ data.tar.gz: e4a6cf68a62b0188511ba30c3fceda43c30a93bca8ab4a917edf608b8c531e1a
5
5
  SHA512:
6
- metadata.gz: 115beaf2e97ae428f6efa5d235d24b713483b7ac1e4afc4095603d3865ec0b2703e8c2f5e9817f4ac8c529c04dd2a04cace2a93ba8cbf19122122e1732ca9ae0
7
- data.tar.gz: f12edcefe28f0440e5e2fdf90a582cb83f368856ca65b336d8fb8c02e126cad891e3fdda4ae411fcec6289f4a2526288223ea12422e39488394362bd4f7ca99b
6
+ metadata.gz: 305a8eb86bf0c9d3afa0b861174ff41c79519b4f5aadd84975cccfdc9c2fd2fa2c12d1a14159a9b0da674d81233900802d271b38d078956ebd8bdd119287cbb4
7
+ data.tar.gz: ed601e91289f962ac5f647b205dafd86c61429e63b3401d210ccd0c345308bfcfc4f7ab5da761056b7335e66d0b2fe95c62ef4189a0dbf5e38b79d8e446ebab2
@@ -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 < Rectify::Command
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::Forms::Questionnaire.transaction do
25
- if @questionnaire.questions_editable?
26
- update_questionnaire_questions
27
- delete_answers unless @questionnaire.published?
28
- end
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
- update_questionnaire
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 < Rectify::Command
6
+ class AnswerQuestionnaire < Decidim::Command
7
7
  include ::Decidim::MultipleAttachmentsMethods
8
8
 
9
9
  # Initializes a AnswerQuestionnaire Command.
@@ -20,9 +20,9 @@ module Decidim
20
20
  helper_method :questionnaire_for, :questionnaire, :blank_question, :blank_answer_option, :blank_matrix_row,
21
21
  :blank_display_condition, :question_types, :display_condition_types, :update_url, :public_url, :answer_options_url, :edit_questionnaire_title
22
22
 
23
- if defined?(Decidim::Templates::Admin::Concerns::Templatable)
23
+ if defined? Decidim::Templates::Admin
24
24
  include Decidim::Templates::Admin::Concerns::Templatable
25
- helper Decidim::Templates::Admin::TemplatesHelper
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: @decidim_question_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: @decidim_condition_question_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: @decidim_answer_option_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::DataPortability
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::DataPortabilityUserAnswersSerializer
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.reject(&:blank?).any? { |value| answer_form_matches?(answer_form, value) }
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,7 +11,6 @@ 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"
15
14
 
16
15
  export default function createEditableForm() {
17
16
  const wrapperSelector = ".questionnaire-questions";
@@ -393,8 +392,6 @@ export default function createEditableForm() {
393
392
 
394
393
  autoLabelByPosition.run();
395
394
  autoButtonsByPosition.run();
396
-
397
- initLanguageChangeSelect($field.find("select.language-change").toArray());
398
395
  },
399
396
  onRemoveField: ($field) => {
400
397
  autoLabelByPosition.run();
@@ -6,10 +6,18 @@ module Decidim
6
6
  #
7
7
  # Presenter for questionnaire answer
8
8
  #
9
- class QuestionnaireAnswerPresenter < Rectify::Presenter
9
+ class QuestionnaireAnswerPresenter < SimpleDelegator
10
+ delegate :content_tag, :safe_join, to: :view_context
11
+
10
12
  include Decidim::TranslatableAttributes
11
13
 
12
- attribute :answer, Decidim::Forms::Answer
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)
@@ -46,14 +54,11 @@ module Decidim
46
54
  # rubocop:disable Style/StringConcatenation
47
55
  # Interpolating strings that are `html_safe` is problematic with Rails.
48
56
  content_tag :li do
49
- link_to(attachment.url, target: "_blank", rel: "noopener noreferrer") do
50
- content_tag(:span) do
51
- translated_attribute(attachment.title).presence ||
52
- I18n.t("download_attachment", scope: "decidim.forms.questionnaire_answer_presenter")
53
- end + " " + content_tag(:small) do
57
+ link_to(translated_attribute(attachment.title), attachment.url) +
58
+ " " +
59
+ content_tag(:small) do
54
60
  "#{attachment.file_type} #{number_to_human_size(attachment.file_size)}"
55
61
  end
56
- end
57
62
  end
58
63
  # rubocop:enable Style/StringConcatenation
59
64
  end
@@ -6,8 +6,10 @@ module Decidim
6
6
  #
7
7
  # Presenter for questionnaire response
8
8
  #
9
- class QuestionnaireParticipantPresenter < Rectify::Presenter
10
- attribute :participant, Decidim::Forms::Answer
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 < Rectify::Query
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 < Rectify::Query
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 < Rectify::Query
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
@@ -31,7 +31,7 @@
31
31
  <%= form.translated :editor, :description, toolbar: :full, lines: 30, label: t("models.components.description", scope: "decidim.forms.admin") %>
32
32
  </div>
33
33
  <div class="row column">
34
- <%= form.translated :editor, :tos, toolbar: :content, lines: 10, label: t("models.components.tos", scope: "decidim.forms.admin") %>
34
+ <%= form.translated :editor, :tos, toolbar: :full, lines: 10, label: t("models.components.tos", scope: "decidim.forms.admin") %>
35
35
  </div>
36
36
  </div>
37
37
  </div>
@@ -1,5 +1,3 @@
1
- <% add_decidim_page_title(t("decidim.forms.admin.questionnaires.edit.title")) %>
2
-
3
1
  <% if templates_defined? && choose_template? %>
4
2
  <%= render partial: "decidim/templates/admin/questionnaire_templates/choose", locals: { target: questionnaire, form_title: t("decidim.forms.admin.questionnaires.edit.title") } %>
5
3
  <% else %>
@@ -7,7 +7,7 @@
7
7
  <%= label_tag field_id, translated_attribute(answer.question.body), class: "questionnaire-title_and_description" %>
8
8
  <% if translated_attribute(answer.question.description).present? %>
9
9
  <div class="help-title_and_description ">
10
- <%= decidim_sanitize_editor_admin translated_attribute(answer.question.description) %>
10
+ <%= decidim_sanitize_editor translated_attribute(answer.question.description) %>
11
11
  </div>
12
12
  <% end %>
13
13
  <%= render partial: "decidim/forms/questionnaires/answers/#{answer.question.question_type}", locals: { answer: answer, answer_form: answer_form, answer_idx: answer_idx, field_id: field_id, disabled: disabled } %>
@@ -22,7 +22,7 @@
22
22
 
23
23
  <% if translated_attribute(answer.question.description).present? %>
24
24
  <div class="help-text">
25
- <%= decidim_sanitize_editor_admin translated_attribute(answer.question.description) %>
25
+ <%= decidim_sanitize_editor translated_attribute(answer.question.description) %>
26
26
  </div>
27
27
  <% end %>
28
28
 
@@ -5,13 +5,13 @@
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" if current_component.manifest_name == "surveys" %>
8
+ <%= render partial: "decidim/shared/component_announcement" %>
9
9
 
10
10
  <div class="row columns">
11
11
  <h2 class="section-heading"><%= translated_attribute questionnaire.title %></h2>
12
12
  <div class="row">
13
13
  <div class="columns large-<%= columns %> medium-centered lead">
14
- <%= decidim_sanitize_editor_admin translated_attribute questionnaire.description %>
14
+ <%= decidim_sanitize_editor translated_attribute questionnaire.description %>
15
15
  </div>
16
16
  </div>
17
17
  </div>
@@ -151,4 +151,6 @@
151
151
  </div>
152
152
  </div>
153
153
 
154
- <%= javascript_pack_tag "decidim_forms" %>
154
+ <% content_for :js_content do %>
155
+ <%= javascript_pack_tag "decidim_forms" %>
156
+ <% end %>
@@ -1 +1,2 @@
1
+ ---
1
2
  am:
@@ -1,3 +1,4 @@
1
+ ---
1
2
  ar:
2
3
  activemodel:
3
4
  attributes:
@@ -1,3 +1,4 @@
1
+ ---
1
2
  bg:
2
3
  activemodel:
3
4
  attributes:
@@ -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: Redimensionat i ajustat a
134
- resize_to_fit: Redimensionada per ajustar-la
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
@@ -142,8 +145,6 @@ ca:
142
145
  single_option: Opció única
143
146
  sorting: Ordenació
144
147
  title_and_description: Títol i descripció
145
- questionnaire_answer_presenter:
146
- download_attachment: Descarregar l'arxiu adjunt
147
148
  questionnaires:
148
149
  answer:
149
150
  invalid: S'han produït un error en respondre el formulari.
@@ -174,7 +175,7 @@ ca:
174
175
  tos_agreement: En participar acceptes els Termes i condicions d'ús
175
176
  step_navigation:
176
177
  show:
177
- are_you_sure: Aquesta acció no es pot desfer i no podràs editar les teves respostes. Segur?
178
+ are_you_sure: Aquesta acció no es pot desfer i no podràs editar les teves respostes. Estàs segura?
178
179
  back: Enrere
179
180
  continue: Continuar
180
181
  submit: Enviar respostes
@@ -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: Zmenšeno a odsazeno k
134
- resize_to_fit: Upravena velikost na vyplnění
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ěď
@@ -142,8 +145,6 @@ cs:
142
145
  single_option: Jedna možnost
143
146
  sorting: Třídění
144
147
  title_and_description: Název a popis
145
- questionnaire_answer_presenter:
146
- download_attachment: Stáhnout přílohu
147
148
  questionnaires:
148
149
  answer:
149
150
  invalid: Při odpovědi na dotazník došlo k chybám.
@@ -1 +1,2 @@
1
+ ---
1
2
  da:
@@ -1,3 +1,4 @@
1
+ ---
1
2
  de:
2
3
  activemodel:
3
4
  attributes:
@@ -128,10 +129,6 @@ de:
128
129
  extension_allowlist: 'Gültige Formate:'
129
130
  images:
130
131
  dimensions: "%{width} x %{height} px"
131
- dimensions_info: 'Das Bild wird:'
132
- processors:
133
- resize_and_pad: in der Größe angepasst und gepolstert zu
134
- resize_to_fit: in der Größe verändert, damit es passt
135
132
  question_types:
136
133
  files: Dateien
137
134
  long_answer: Lange Antwort
@@ -142,8 +139,6 @@ de:
142
139
  single_option: Einzelne Option
143
140
  sorting: Sortierung
144
141
  title_and_description: Titel und Beschreibung
145
- questionnaire_answer_presenter:
146
- download_attachment: Anhang herunterladen
147
142
  questionnaires:
148
143
  answer:
149
144
  invalid: Bei der Beantwortung des Fragebogens sind Fehler aufgetreten.
@@ -174,7 +169,7 @@ de:
174
169
  tos_agreement: Mit der Teilnahme stimmen Sie den Nutzungsbedingungen zu
175
170
  step_navigation:
176
171
  show:
177
- are_you_sure: Diese Aktion kann nicht rückgängig gemacht werden und Sie können Ihre Antworten nicht bearbeiten. Sind Sie sich sicher?
172
+ are_you_sure: Diese Aktion kann nicht rückgängig gemacht werden und Sie können Ihre Antworten nicht bearbeiten. Bist du sicher?
178
173
  back: Zurück
179
174
  continue: Weiter
180
175
  submit: einreichen