Class: Decidim::Initiatives::InitiativesController
- Inherits:
-
ApplicationController
- Object
- DecidimController
- ApplicationController
- ApplicationController
- Decidim::Initiatives::InitiativesController
- Includes:
- FilterResource, FormFactory, Decidim::IconHelper, InitiativeSlug, NeedsInitiative, Orderable, SingleInitiativeType, TypeSelectorOptions, Paginable, ParticipatorySpaceContext
- Defined in:
- decidim-initiatives/app/controllers/decidim/initiatives/initiatives_controller.rb
Overview
This controller contains the logic regarding participants initiatives
Constant Summary
Constants included from Paginable
Instance Method Summary collapse
-
#edit ⇒ Object
GET /initiatives/:slug/edit.
-
#index ⇒ Object
GET /initiatives.
- #print ⇒ Object
-
#send_to_technical_validation ⇒ Object
GET /initiatives/:id/send_to_technical_validation.
-
#show ⇒ Object
GET /initiatives/:id.
-
#update ⇒ Object
PUT /initiatives/:id.
Methods included from Decidim::IconHelper
#component_icon, #manifest_icon, #resource_icon, #resource_type_icon, #resource_type_icon_key, #text_with_resource_icon
Methods included from LayoutHelper
#_icon_classes, #apple_favicon, #application_path, #current_url, #current_user_unread_data, #extended_navigation_bar, #external_icon, #favicon, #icon, #legacy_favicon, #role
Methods included from TooltipHelper
Methods included from ModalHelper
#decidim_drawer, #decidim_modal
Methods included from OrganizationHelper
#current_organization_name, #organization_colors, #organization_description_label, #organization_name
Methods included from TranslatableAttributes
Methods included from TranslationsHelper
empty_translatable, ensure_translatable, multi_translation, translated_in_current_locale?
Methods included from InitiativeSlug
Methods inherited from ApplicationController
#permission_class_chain, #permission_scope, #permissions_context
Methods included from RegistersPermissions
Methods inherited from ApplicationController
Methods included from UserBlockedChecker
#check_user_block_status, #check_user_not_blocked
Methods included from NeedsSnippets
Methods included from Headers::HttpCachingDisabler
Methods included from HasStoredPath
#skip_store_location?, #store_current_location
Methods included from NeedsOrganization
enhance_controller, extended, included
Instance Method Details
#edit ⇒ Object
GET /initiatives/:slug/edit
77 78 79 80 81 82 83 84 85 86 |
# File 'decidim-initiatives/app/controllers/decidim/initiatives/initiatives_controller.rb', line 77 def edit :edit, :initiative, initiative: current_initiative = form(AttachmentForm).from_model(current_initiative..first) @form = form(Decidim::Initiatives::InitiativeForm) .from_model( current_initiative, initiative: current_initiative ) @form. = end |
#index ⇒ Object
GET /initiatives
38 39 40 41 42 43 44 45 46 47 48 49 50 51 |
# File 'decidim-initiatives/app/controllers/decidim/initiatives/initiatives_controller.rb', line 38 def index :list, :initiative return unless search.result.blank? && params.dig("filter", "with_any_state") != %w(closed) @closed_initiatives ||= search_with(filter_params.merge(with_any_state: %w(closed))) if @closed_initiatives.result.present? params[:filter] ||= {} params[:filter][:with_any_state] = %w(closed) @forced_closed_initiatives = true @search = @closed_initiatives end end |
#print ⇒ Object
110 111 112 113 114 |
# File 'decidim-initiatives/app/controllers/decidim/initiatives/initiatives_controller.rb', line 110 def print :print, :initiative, initiative: current_initiative output = Decidim::Initiatives::ApplicationFormPDF.new(current_initiative).render send_data(output, filename: "initiative_submit_#{current_initiative.id}.pdf", type: "application/pdf") end |
#send_to_technical_validation ⇒ Object
GET /initiatives/:id/send_to_technical_validation
61 62 63 64 65 66 67 68 69 70 71 72 73 74 |
# File 'decidim-initiatives/app/controllers/decidim/initiatives/initiatives_controller.rb', line 61 def send_to_technical_validation :send_to_technical_validation, :initiative, initiative: current_initiative SendInitiativeToTechnicalValidation.call(current_initiative, current_user) do on(:ok) do redirect_to EngineRouter.main_proxy(current_initiative).initiatives_path(initiative_slug: nil), flash: { notice: I18n.t( "success", scope: "decidim.initiatives.admin.initiatives.edit" ) } end end end |
#show ⇒ Object
GET /initiatives/:id
54 55 56 57 58 |
# File 'decidim-initiatives/app/controllers/decidim/initiatives/initiatives_controller.rb', line 54 def show :read, :initiative, initiative: current_initiative render layout: "decidim/initiative_head" end |
#update ⇒ Object
PUT /initiatives/:id
89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 |
# File 'decidim-initiatives/app/controllers/decidim/initiatives/initiatives_controller.rb', line 89 def update :update, :initiative, initiative: current_initiative params[:id] = params[:slug] params[:type_id] = current_initiative.type&.id @form = form(Decidim::Initiatives::InitiativeForm) .from_params(params, initiative_type: current_initiative.type, initiative: current_initiative) UpdateInitiative.call(current_initiative, @form) do on(:ok) do |initiative| flash[:notice] = I18n.t("success", scope: "decidim.initiatives.update") redirect_to initiative_path(initiative) end on(:invalid) do flash.now[:alert] = I18n.t("error", scope: "decidim.initiatives.update") render :edit, layout: "decidim/initiative" end end end |