X-Git-Url: https://projects.mako.cc/source/selectricity/blobdiff_plain/2ba40f97b78f529984ff26c7c7d61c91d213e7b0..2fed9b6ceaf0953daf0f085f78520263ab0fa804:/app/models/candidate.rb diff --git a/app/models/candidate.rb b/app/models/candidate.rb index 7af978a..6a7dc6c 100644 --- a/app/models/candidate.rb +++ b/app/models/candidate.rb @@ -1,6 +1,27 @@ +# 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_uniqueness_of :name + has_one :picture + validates_presence_of :name + + # validate uniqueness of a name *within a given election* def <=>(other) self.name <=> other.name @@ -10,25 +31,5 @@ class Candidate < ActiveRecord::Base name end - def picture=(picture_field) - if picture_field - unless picture_field.content_type.match(/^image/) - return false - end - self.picture_filename = base_part_of(picture_field.original_filename) - self.picture_type = picture_field.content_type.chomp - self.picture_data = picture_field.read - end - end - - def base_part_of(filename) - name = File.basename(filename) - name.gsub(/[^\w._-]/, '') - end - - def picture? - !self.picture_filename.nil? - end - end