Files
grecia/app/models/poll/ballot_sheet.rb
Javi Martín 234a5108a4 Use strings for class_name
As mentioned in the Rails console:

DEPRECATION WARNING: Passing a class to the `class_name` is deprecated
and will raise an ArgumentError in Rails 5.2. It eagerloads more classes
than necessary and potentially creates circular dependencies. Please
pass the class name as a string.
2019-05-28 14:26:18 +02:00

43 lines
1.1 KiB
Ruby

class Poll::BallotSheet < ApplicationRecord
belongs_to :poll
belongs_to :officer_assignment
has_many :ballots, class_name: "Poll::Ballot"
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