Module: Decidim::Proposals::Admin::ProposalsHelper

Includes:
TranslatableAttributes
Defined in:
decidim-proposals/app/helpers/decidim/proposals/admin/proposals_helper.rb

Overview

This class contains helpers needed to format Meetings in order to use them in select forms for Proposals.

Instance Method Summary collapse

Methods included from TranslatableAttributes

#attachment?, #default_locale?

Instance Method Details

#available_statesObject



12
13
14
15
16
17
18
19
# File 'decidim-proposals/app/helpers/decidim/proposals/admin/proposals_helper.rb', line 12

def available_states
  [
    Decidim::Proposals::ProposalState.where(component: current_component).new(
      token: "not_answered",
      title: t("decidim.proposals.answers.not_answered")
    )
  ] + Decidim::Proposals::ProposalState.where(component: current_component).all
end

#coauthor_presenters_for(proposal) ⇒ Object



29
30
31
32
33
34
35
36
37
# File 'decidim-proposals/app/helpers/decidim/proposals/admin/proposals_helper.rb', line 29

def coauthor_presenters_for(proposal)
  proposal.authors.map do |identity|
    if identity.is_a?(Decidim::Organization)
      Decidim::Proposals::OfficialAuthorPresenter.new
    else
      present(identity)
    end
  end
end

#endorsers_presenters_for(proposal) ⇒ Object



39
40
41
# File 'decidim-proposals/app/helpers/decidim/proposals/admin/proposals_helper.rb', line 39

def endorsers_presenters_for(proposal)
  proposal.endorsements.for_listing.map { |identity| present(identity.author) }
end


50
51
52
53
54
55
56
57
58
59
60
61
62
63
# File 'decidim-proposals/app/helpers/decidim/proposals/admin/proposals_helper.rb', line 50

def icon_with_link_to_proposal(proposal)
  icon, tooltip = if allowed_to?(:create, :proposal_answer, proposal:) && !proposal.emendation?
                    [
                      "question-answer-line",
                      t(:answer_proposal, scope: "decidim.proposals.actions")
                    ]
                  else
                    [
                      "information-line",
                      t(:show, scope: "decidim.proposals.actions")
                    ]
                  end
  icon_link_to(icon, proposal_path(proposal), tooltip, class: "icon--small action-icon--show-proposal")
end

#meetings_as_authors_selectedObject

Public: A formatted collection of Meetings to be used in forms.



23
24
25
26
27
# File 'decidim-proposals/app/helpers/decidim/proposals/admin/proposals_helper.rb', line 23

def meetings_as_authors_selected
  return unless @proposal.present? && @proposal.official_meeting?

  @meetings_as_authors_selected ||= @proposal.authors.pluck(:id)
end

#proposal_complete_state(proposal) ⇒ Object



43
44
45
46
47
48
# File 'decidim-proposals/app/helpers/decidim/proposals/admin/proposals_helper.rb', line 43

def proposal_complete_state(proposal)
  return humanize_proposal_state(:withdrawn).html_safe if proposal.withdrawn?
  return humanize_proposal_state("not_answered").html_safe if proposal.proposal_state.nil?

  translated_attribute(proposal&.proposal_state&.title)
end