Class: Decidim::ParticipatoryDocuments::DocumentSuggestionsController

Inherits:
ApplicationController
  • Object
show all
Includes:
FormFactory, Paginable
Defined in:
app/controllers/decidim/participatory_documents/document_suggestions_controller.rb

Instance Method Summary collapse

Instance Method Details

#createObject



18
19
20
21
22
23
24
25
26
27
28
29
30
31
# File 'app/controllers/decidim/participatory_documents/document_suggestions_controller.rb', line 18

def create
  enforce_permission_to :create, :suggestion

  @form = form(Decidim::ParticipatoryDocuments::SuggestionForm).from_params(params)

  CreateSuggestion.call(@form, section) do
    on(:ok) do |_suggestion|
      redirect_to(document_suggestions_path(document)) && return
    end
    on(:invalid) do |error|
      render template: "decidim/participatory_documents/document_suggestions/index", locals: { error_message: error }, format: [:html], status: :bad_request
    end
  end
end

#exportObject



33
34
35
36
37
38
39
40
41
# File 'app/controllers/decidim/participatory_documents/document_suggestions_controller.rb', line 33

def export
  enforce_permission_to :create, :suggestion

  return render json: { message: t(".empty") }, status: :unprocessable_entity unless all_suggestions.any?

  ExportMySuggestionsJob.perform_later(current_user, document, "Excel")

  render json: { message: t(".success", count: all_suggestions&.count, email: current_user&.email) }
end

#indexObject



12
13
14
15
16
# File 'app/controllers/decidim/participatory_documents/document_suggestions_controller.rb', line 12

def index
  enforce_permission_to :create, :suggestion

  @form = form(Decidim::ParticipatoryDocuments::SuggestionForm).instance
end