Files
nairobi/app/models/poll/ballot_sheet.rb
Javi Martín 27ed26d6f2 Remove unnecessary class names in relations
Just like we do in the Budget module, and in some places in the Poll and
Legislation modules, we don't need to specify the class name when the
name of the relation matches the name of a class in the same module.
2019-10-25 19:03:14 +02:00

42 lines
1.0 KiB
Ruby

class Poll::BallotSheet < ApplicationRecord
belongs_to :poll
belongs_to :officer_assignment
has_many :ballots
validates :data, presence: true
validates :poll_id, presence: true
validates :officer_assignment_id, presence: true
def author
officer_assignment.officer.name
end
def verify_ballots
parsed_ballots.each_with_index do |investment_ids, index|
ballot = create_ballots(investment_ids, index)
ballot.verify
end
end
def parsed_ballots
data.split(/[;\n]/)
end
private
def create_ballots(investment_ids, index)
poll_ballot = Poll::Ballot.where(ballot_sheet: self,
data: investment_ids,
external_id: index).first_or_create!
create_ballot(poll_ballot)
poll_ballot
end
def create_ballot(poll_ballot)
Budget::Ballot.where(physical: true,
user: nil,
poll_ballot: poll_ballot,
budget: poll.budget).first_or_create!
end
end