Sha256: 6f5298a5d9a56a7be922a4e893d88f7f648bca4659b2871cedbd781d33397709

Contents?: true

Size: 1.65 KB

Versions: 1

Compression:

Stored size: 1.65 KB

Contents

# frozen_string_literal: true

module Decidim
  module ReportingProposals
    module Admin
      # Exposes the proposal resource so users can view and create them.
      module ProposalAnswerTemplatesControllerOverride
        extend ActiveSupport::Concern

        included do
          def avaliablity_options
            @avaliablity_options = []

            Decidim::Component.includes(:participatory_space).where(manifest_name: accepted_components)
                              .select { |a| a.participatory_space.decidim_organization_id == current_organization.id }.each do |component|
              @avaliablity_options.push [formatted_name(component), component.id]
            end

            @avaliablity_options.sort_by!(&:first)
            @avaliablity_options.prepend [t("global_scope", scope: "decidim.templates.admin.proposal_answer_templates.index"), 0]
          end

          # This is overriden because a bug in decidim templates that prevents valuators to use templates
          # This can be removed after https://github.com/decidim/decidim/pull/12765 is merge & backported
          def fetch
            enforce_permission_to(:read, :template, template:, proposal:)

            response_object = {
              state: template.field_values["internal_state"],
              template: populate_template_interpolations(proposal)
            }

            respond_to do |format|
              format.json do
                render json: response_object.to_json
              end
            end
          end

          private

          def accepted_components
            [:proposals, :reporting_proposals]
          end
        end
      end
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
decidim-reporting_proposals-0.6.0 app/controllers/concerns/decidim/reporting_proposals/admin/proposal_answer_templates_controller_override.rb