Class: Decidim::Elections::Admin::VotePeriodForm

Inherits:
ActionForm show all
Defined in:
decidim-elections/app/forms/decidim/elections/admin/vote_period_form.rb

Overview

This class holds a form to start and end the voting period.

Constant Summary

Constants included from AttributeObject::TypeMap

AttributeObject::TypeMap::Boolean, AttributeObject::TypeMap::Decimal

Instance Attribute Summary

Attributes inherited from AttributeObject::Form

#context

Instance Method Summary collapse

Methods inherited from ActionForm

#bulletin_board, #current_step, #election, #main_button?, #pending_action, #refresh

Methods inherited from AttributeObject::Form

ensure_hash, from_model, from_params, hash_from, infer_model_name, #map_model, mimic, mimicked_model_name, model_name, #persisted?, #to_key, #to_model, #to_param, #valid?, #with_context

Methods included from AttributeObject::Model

#[], #[]=, #attributes, #attributes_with_values, #initialize, #to_h

Instance Method Details

#messagesObject



29
30
31
32
33
# File 'decidim-elections/app/forms/decidim/elections/admin/vote_period_form.rb', line 29

def messages
  @messages ||= validations.to_h do |message, t_args, _valid|
    [message, I18n.t("steps.#{current_step}.requirements.#{message}", **t_args, scope: "decidim.elections.admin")]
  end
end

#validationsObject



14
15
16
17
18
19
20
21
22
23
24
25
26
27
# File 'decidim-elections/app/forms/decidim/elections/admin/vote_period_form.rb', line 14

def validations
  @validations ||= if current_step == "key_ceremony_ended"
                     [
                       [:time_before,
                        { start_time: I18n.l(election.start_time, format: :long),
                          hours: Decidim::Elections.start_vote_maximum_hours_before_start },
                        election.maximum_hours_before_start?]
                     ].freeze
                   else
                     [
                       [:time_after, { end_time: I18n.l(election.end_time, format: :long) }, election.finished?]
                     ].freeze
                   end
end