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
         
     |