Class: Decidim::Proposals::ProposalMetadataCell

Inherits:
CardMetadataCell
  • Object
show all
Includes:
ApplicationHelper
Defined in:
app/cells/decidim/proposals/proposal_metadata_cell.rb

Overview

This cell renders metadata for an instance of a Proposal

Instance Method Summary collapse

Methods included from ApplicationHelper

#activity_filter_values, #collaborative_draft_state_badge_css_class, #component_name, #filter_origin_values, #filter_proposals_state_values, #filter_sections, #filter_type_values, #humanize_collaborative_draft_state, #humanize_proposal_state, #minimum_votes_per_user_enabled?, #not_from_collaborative_draft, #not_from_participatory_text, #proposal_limit, #proposal_limit_enabled?, #proposal_state_css_class, #proposal_state_css_style, #render_proposal_body, #safe_content?, #safe_content_admin?, #show_voting_rules?, #text_editor_for_proposal_body, #votes_given

Methods included from ControlVersionHelper

#item_name

Methods included from CollaborativeDraftHelper

#accept_request_button_label, #collaborative_drafts_filter_sections, #collaborative_drafts_state_class, #filter_collaborative_drafts_state_values, #humanize_collaborative_draft_state, #reject_request_button_label

Methods included from MapHelper

#has_position?, #proposal_data_for_map, #proposal_preview_data_for_map, #proposals_data_for_map

Methods included from ProposalVotesHelper

#can_accumulate_votes_beyond_threshold?, #current_user_can_vote?, #remaining_votes_count_for, #threshold_per_proposal, #threshold_per_proposal_enabled?, #vote_limit, #vote_limit_enabled?, #votes_blocked?, #votes_enabled?

Constructor Details

#initializeProposalMetadataCell

Returns a new instance of ProposalMetadataCell.



11
12
13
14
15
# File 'app/cells/decidim/proposals/proposal_metadata_cell.rb', line 11

def initialize(*)
  super

  @items.prepend(*proposal_items)
end

Instance Method Details

#state_classObject



29
30
31
32
33
34
35
36
37
38
39
40
41
42
# File 'app/cells/decidim/proposals/proposal_metadata_cell.rb', line 29

def state_class
  return "alert" if model.withdrawn?

  case state
  when "accepted"
    "success"
  when "rejected"
    "alert"
  when "evaluating"
    "warning"
  else
    "muted"
  end
end

#state_itemObject



17
18
19
20
21
22
23
24
25
26
27
# File 'app/cells/decidim/proposals/proposal_metadata_cell.rb', line 17

def state_item
  return if state.blank? || @options.fetch(:skip_state, false)

  if model.withdrawn?
    { text: (:span, humanize_proposal_state(:withdrawn), class: "label alert") }
  elsif model.emendation?
    { text: (:span, humanize_proposal_state(state), class: "label #{state_class}") }
  else
    { text: (:span, translated_attribute(model.proposal_state&.title), class: "label", style: model.proposal_state.css_style) }
  end
end