Class: Decidim::Accountability::Admin::ImportComponentForm
- Inherits:
-
Form
- Object
- Form
- Decidim::Accountability::Admin::ImportComponentForm
- Includes:
- HasTaxonomyFormAttributes, TranslatableAttributes
- Defined in:
- app/forms/decidim/accountability/admin/import_component_form.rb
Overview
A form object to be used when admin users want to import results from another component into Accountability component.
Instance Method Summary collapse
- #filtered_items ⇒ Object
- #origin_component ⇒ Object
- #origin_components ⇒ Object
- #origin_components_collection ⇒ Object
- #project_already_copied?(original_project) ⇒ Boolean
- #proposal_already_copied?(original_proposal) ⇒ Boolean
- #proposal_states_collection ⇒ Object
Instance Method Details
#filtered_items ⇒ Object
40 41 42 43 44 45 46 47 48 |
# File 'app/forms/decidim/accountability/admin/import_component_form.rb', line 40 def filtered_items if origin_component.manifest_name == "budgets" filtered_budget_projects elsif origin_component.manifest_name == "proposals" filtered_proposals else raise "Invalid component" end end |
#origin_component ⇒ Object
18 19 20 |
# File 'app/forms/decidim/accountability/admin/import_component_form.rb', line 18 def origin_component @origin_component ||= origin_components.find_by(id: origin_component_id) end |
#origin_components ⇒ Object
22 23 24 |
# File 'app/forms/decidim/accountability/admin/import_component_form.rb', line 22 def origin_components @origin_components ||= current_participatory_space.components.where(manifest_name: %w(budgets proposals)) end |
#origin_components_collection ⇒ Object
26 27 28 29 30 |
# File 'app/forms/decidim/accountability/admin/import_component_form.rb', line 26 def origin_components_collection origin_components.map do |component| [component.name[I18n.locale.to_s], component.id] end end |
#project_already_copied?(original_project) ⇒ Boolean
50 51 52 53 54 |
# File 'app/forms/decidim/accountability/admin/import_component_form.rb', line 50 def project_already_copied?(original_project) original_project.linked_resources(:results, "included_projects").any? do |result| result.component == current_component end end |
#proposal_already_copied?(original_proposal) ⇒ Boolean
56 57 58 59 60 |
# File 'app/forms/decidim/accountability/admin/import_component_form.rb', line 56 def proposal_already_copied?(original_proposal) original_proposal.linked_resources(:results, "included_proposals").any? do |result| result.component == current_component end end |
#proposal_states_collection ⇒ Object
32 33 34 35 36 |
# File 'app/forms/decidim/accountability/admin/import_component_form.rb', line 32 def proposal_states_collection Decidim::Proposals::ProposalState.where(component: origin_component).map do |state| [translated_attribute(state.title), state.id] end end |