Module: Decidim::Initiatives::InitiativeHelper
- Includes:
- SanitizeHelper
- Included in:
- CreateInitiativeController
- Defined in:
- app/helpers/decidim/initiatives/initiative_helper.rb
Overview
Helper method related to initiative object and its internal state.
Instance Method Summary collapse
-
#humanize_admin_state(state) ⇒ Object
Public: The state of an initiative from an administration perspective in a way that a human can understand.
-
#humanize_state(initiative) ⇒ Object
Public: The state of an initiative in a way a human can understand.
- #popularity_class(initiative) ⇒ Object
- #popularity_level1?(initiative) ⇒ Boolean
- #popularity_level2?(initiative) ⇒ Boolean
- #popularity_level3?(initiative) ⇒ Boolean
- #popularity_level4?(initiative) ⇒ Boolean
- #popularity_level5?(initiative) ⇒ Boolean
- #popularity_tag(initiative) ⇒ Object
-
#state_badge_css_class(initiative) ⇒ Object
Public: The css class applied based on the initiative state to the initiative badge.
Instance Method Details
#humanize_admin_state(state) ⇒ Object
Public: The state of an initiative from an administration perspective in a way that a human can understand.
state - String
Returns a String
37 38 39 |
# File 'app/helpers/decidim/initiatives/initiative_helper.rb', line 37 def humanize_admin_state(state) I18n.t(state, scope: "decidim.initiatives.admin_states", default: :created) end |
#humanize_state(initiative) ⇒ Object
Public: The state of an initiative in a way a human can understand.
initiative - Decidim::Initiative.
Returns a String.
25 26 27 28 29 |
# File 'app/helpers/decidim/initiatives/initiative_helper.rb', line 25 def humanize_state(initiative) I18n.t(initiative.accepted? ? "accepted" : "expired", scope: "decidim.initiatives.states", default: :expired) end |
#popularity_class(initiative) ⇒ Object
54 55 56 57 58 59 60 61 |
# File 'app/helpers/decidim/initiatives/initiative_helper.rb', line 54 def popularity_class(initiative) return "popularity--level1" if popularity_level1?(initiative) return "popularity--level2" if popularity_level2?(initiative) return "popularity--level3" if popularity_level3?(initiative) return "popularity--level4" if popularity_level4?(initiative) return "popularity--level5" if popularity_level5?(initiative) "" end |
#popularity_level1?(initiative) ⇒ Boolean
63 64 65 |
# File 'app/helpers/decidim/initiatives/initiative_helper.rb', line 63 def popularity_level1?(initiative) initiative.percentage.positive? && initiative.percentage < 40 end |
#popularity_level2?(initiative) ⇒ Boolean
67 68 69 |
# File 'app/helpers/decidim/initiatives/initiative_helper.rb', line 67 def popularity_level2?(initiative) initiative.percentage >= 40 && initiative.percentage < 60 end |
#popularity_level3?(initiative) ⇒ Boolean
71 72 73 |
# File 'app/helpers/decidim/initiatives/initiative_helper.rb', line 71 def popularity_level3?(initiative) initiative.percentage >= 60 && initiative.percentage < 80 end |
#popularity_level4?(initiative) ⇒ Boolean
75 76 77 |
# File 'app/helpers/decidim/initiatives/initiative_helper.rb', line 75 def popularity_level4?(initiative) initiative.percentage >= 80 && initiative.percentage < 100 end |
#popularity_level5?(initiative) ⇒ Boolean
79 80 81 |
# File 'app/helpers/decidim/initiatives/initiative_helper.rb', line 79 def popularity_level5?(initiative) initiative.percentage >= 100 end |
#popularity_tag(initiative) ⇒ Object
41 42 43 44 45 46 47 48 49 50 51 52 |
# File 'app/helpers/decidim/initiatives/initiative_helper.rb', line 41 def popularity_tag(initiative) content_tag(:div, class: "extra__popularity popularity #{popularity_class(initiative)}".strip) do 5.times do concat(content_tag(:span, class: "popularity__item") {}) end concat(content_tag(:span, class: "popularity__desc") do I18n.t("decidim.initiatives.initiatives.vote_cabin.supports_required", total_supports: initiative.scoped_type.supports_required) end) end end |
#state_badge_css_class(initiative) ⇒ Object
Public: The css class applied based on the initiative state to
the initiative badge.
initiative - Decidim::Initiative
Returns a String.
15 16 17 18 |
# File 'app/helpers/decidim/initiatives/initiative_helper.rb', line 15 def state_badge_css_class(initiative) return "success" if initiative.accepted? "warning" end |