Module: Decidim::Sortitions::SortitionsHelper

Includes:
Decidim::SanitizeHelper, TranslationsHelper
Included in:
SortitionMetadataCell
Defined in:
decidim-sortitions/app/helpers/decidim/sortitions/sortitions_helper.rb

Instance Method Summary collapse

Methods included from TranslationsHelper

empty_translatable, ensure_translatable, multi_translation, translated_in_current_locale?

Methods included from TranslatableAttributes

#attachment?, #default_locale?

Methods included from Decidim::SanitizeHelper

#decidim_escape_translated, #decidim_html_escape, #decidim_rich_text, #decidim_sanitize, #decidim_sanitize_admin, #decidim_sanitize_editor, #decidim_sanitize_editor_admin, #decidim_sanitize_newsletter, #decidim_sanitize_translated, #decidim_url_escape, included

Instance Method Details

#component_nameObject



13
14
15
# File 'decidim-sortitions/app/helpers/decidim/sortitions/sortitions_helper.rb', line 13

def component_name
  (defined?(current_component) && translated_attribute(current_component&.name).presence) || t("decidim.components.sortitions.name")
end

#filter_sections_sortitionsObject



41
42
43
44
45
46
47
48
49
50
# File 'decidim-sortitions/app/helpers/decidim/sortitions/sortitions_helper.rb', line 41

def filter_sections_sortitions
  sections = [{ method: :with_any_state, collection: filter_state_values, label: t("decidim.sortitions.sortitions.filters.state"), id: "state" }]
  current_component.available_taxonomy_filters.each do |taxonomy_filter|
    sections.append(method: "with_any_taxonomies[#{taxonomy_filter.root_taxonomy_id}]",
                    collection: filter_taxonomy_values_for(taxonomy_filter),
                    label: decidim_sanitize_translated(taxonomy_filter.name),
                    id: "taxonomy-#{taxonomy_filter.root_taxonomy_id}")
  end
  sections.reject { |item| item[:collection].blank? }
end

#filter_state_valuesObject



52
53
54
55
56
57
58
# File 'decidim-sortitions/app/helpers/decidim/sortitions/sortitions_helper.rb', line 52

def filter_state_values
  [
    ["all", t("all", scope: "decidim.sortitions.sortitions.filters")],
    ["active", t("active", scope: "decidim.sortitions.sortitions.filters")],
    ["cancelled", t("cancelled", scope: "decidim.sortitions.sortitions.filters")]
  ]
end

#proposal_path(proposal) ⇒ Object



9
10
11
# File 'decidim-sortitions/app/helpers/decidim/sortitions/sortitions_helper.rb', line 9

def proposal_path(proposal)
  EngineRouter.main_proxy(proposal.component).proposal_path(proposal)
end

#sortition_proposal_candidate_ids(sortition) ⇒ Object

Show list of candidate proposals for a sortition. Selected sortition ids will appear with bold font.



29
30
31
32
33
34
35
36
37
38
39
# File 'decidim-sortitions/app/helpers/decidim/sortitions/sortitions_helper.rb', line 29

def sortition_proposal_candidate_ids(sortition)
  result = sortition.candidate_proposals.map do |proposal_id|
    if sortition.selected_proposals.include? proposal_id
      "<b>#{proposal_id}</b>"
    else
      proposal_id.to_s
    end
  end

  result.join(" - ").html_safe
end

#sortition_taxonomy_labels(sortition) ⇒ Object

Generates the sortition taxonomy labels



18
19
20
21
22
23
24
25
26
# File 'decidim-sortitions/app/helpers/decidim/sortitions/sortitions_helper.rb', line 18

def sortition_taxonomy_labels(sortition)
  if sortition.taxonomies.present?
    return I18n.t("show.taxonomies",
                  scope: "decidim.sortitions.sortitions",
                  taxonomies: sortition.taxonomies.map { |taxonomy| decidim_sanitize_translated(taxonomy.name) }.join(", "))
  end

  I18n.t("show.any_taxonomy", scope: "decidim.sortitions.sortitions")
end