Before this change the count of volunteers in a team was not in sync with the filters applied.  After the change:  BTW I feel that we will end up refactoring the relation at some point in the future. Reviewed-on: #46 Co-authored-by: Tocho Tochev <tocho@tochev.net> Co-committed-by: Tocho Tochev <tocho@tochev.net>
24 lines
631 B
Ruby
24 lines
631 B
Ruby
class VolunteerTeam < ActiveRecord::Base
|
|
belongs_to :conference
|
|
has_many :volunteers, inverse_of: :volunteer_team
|
|
has_and_belongs_to_many :supporters, class_name: "Volunteer", inverse_of: :additional_volunteer_teams
|
|
|
|
validates :name, presence: true
|
|
validates :color, presence: true, format: {with: /\A#?[a-f0-9]{6}\z/i}
|
|
validates :description, presence: true
|
|
|
|
translates :name, :description
|
|
|
|
def include?(volunteer)
|
|
volunteers.include? volunteer
|
|
end
|
|
|
|
def color=(hex_triplet)
|
|
write_attribute :color, hex_triplet.gsub(/\A#/, "") if hex_triplet
|
|
end
|
|
|
|
def color
|
|
"##{read_attribute :color}"
|
|
end
|
|
end
|