X-Git-Url: https://projects.mako.cc/source/selectricity-live/blobdiff_plain/c5fda1e5174238779afd496014379d6446d1e3c1..6a935d078f20d2b1b0d60f0a30c41a642d40758a:/app/models/candidate.rb diff --git a/app/models/candidate.rb b/app/models/candidate.rb index dfc8b1f..a7d8a50 100644 --- a/app/models/candidate.rb +++ b/app/models/candidate.rb @@ -1,12 +1,55 @@ +# Selectricity: Voting Machinery for the Masses +# Copyright (C) 2007, 2008 Benjamin Mako Hill +# Copyright (C) 2007 Massachusetts Institute of Technology +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU Affero General Public License as +# published by the Free Software Foundation, either version 3 of the +# License, or (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, but +# WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# Affero General Public License for more details. +# +# You should have received a copy of the GNU Affero General Public +# License along with this program. If not, see +# . + class Candidate < ActiveRecord::Base belongs_to :election + validates_presence_of :name + + # i have to call this picture_assoc because picture= does not overload + # the normal association method made by has_one + has_one :picture_obj, :class_name => "Picture" + + # validate uniqueness of a name *within a given election* def <=>(other) - self.name <=> other.name + self.name <=> other.name end def to_s name end + def picture + picture_obj + end + + def picture=(field) + if field and field.length > 0 + self.picture_obj = Picture.new.set_from_field(field) + return picture_obj.save + else + return false + end + end + + def picture? + !self.picture_obj.nil? + end + end +