23 lines
409 B
Ruby
23 lines
409 B
Ruby
|
module Fundraising
|
||
|
class Campaign < ApplicationRecord
|
||
|
has_many :donations
|
||
|
|
||
|
def progress_percent
|
||
|
[(progress.to_f / goal) * 100, 100].min
|
||
|
end
|
||
|
|
||
|
def remaining
|
||
|
goal - progress
|
||
|
end
|
||
|
|
||
|
def complete?
|
||
|
progress >= goal
|
||
|
end
|
||
|
|
||
|
def self.current
|
||
|
self.where(active: true).first or
|
||
|
raise ActiveRecord::RecordNotFound.new("no current campaign")
|
||
|
end
|
||
|
end
|
||
|
end
|