The "by_author" scope in Poll::Recount is no longer used anywhere in the
code. It was introduced in commit 6c297ae789 ("Add Poll Recount model,
factory and spec") but has never been referenced since.
37 lines
1.0 KiB
Ruby
37 lines
1.0 KiB
Ruby
class Poll::Recount < ApplicationRecord
|
|
VALID_ORIGINS = %w[web booth letter].freeze
|
|
|
|
belongs_to :author, -> { with_hidden }, class_name: "User", inverse_of: :poll_recounts
|
|
belongs_to :booth_assignment
|
|
belongs_to :officer_assignment
|
|
|
|
validates :author, presence: true
|
|
validates :origin, inclusion: { in: ->(*) { VALID_ORIGINS }}
|
|
|
|
scope :web, -> { where(origin: "web") }
|
|
scope :booth, -> { where(origin: "booth") }
|
|
scope :letter, -> { where(origin: "letter") }
|
|
|
|
before_save :update_logs
|
|
|
|
def update_logs
|
|
amounts_changed = false
|
|
|
|
[:white, :null, :total].each do |amount|
|
|
unless send("will_save_change_to_#{amount}_amount?") && send("#{amount}_amount_in_database").present?
|
|
next
|
|
end
|
|
|
|
self["#{amount}_amount_log"] += ":#{send("#{amount}_amount_in_database")}"
|
|
amounts_changed = true
|
|
end
|
|
|
|
update_officer_author if amounts_changed
|
|
end
|
|
|
|
def update_officer_author
|
|
self.officer_assignment_id_log += ":#{officer_assignment_id_in_database}"
|
|
self.author_id_log += ":#{author_id_in_database}"
|
|
end
|
|
end
|