+# Selectricity: Voting Machinery for the Masses
+# Copyright (C) 2007, 2008 Benjamin Mako Hill <mako@atdot.cc>
+# Copyright (C) 2007 Massachusetts Institute of Technology
+#
+# This program is free software. Please see the COPYING file for
+# details.
+
class Election < ActiveRecord::Base
has_many :candidates
has_many :voters
reasons << "You must have at least two candidates."
end
- if self.voters.length <= 1
+ if self.voters.length <= 1 and self.authenticated?
reasons << "You must have at least two voters."
end
end
def quickvote?
- self.class == 'QuickVote'
+ self.class == QuickVote
end
def active?
active == 2
end
+ def authenticated?
+ authenticated
+ end
+
+ def kiosk?
+ kiosk
+ end
+
def shortdesc
shortdesc = description.split(/\n/)[0]
end
#Calculate results if not in memcache
def results
# Assignment is intentional
- if defined? Cache and c = Cache.get("election_results:#{id}:#{self.votes.length}")
+ if Cache and c = Cache.get("election_results:#{id}:#{self.votes.length}")
@plurality_result = c['plurality']
@approval_result = c['approval']
@condorcet_result = c['condorcet']
@ssd_result = c['ssd']
@borda_result = c['borda']
return c
- elsif defined? Cache
+ elsif Cache
# memcache is available, but missed.
results = self.results!
Cache.set("election_results:#{id}:#{self.votes.length}", results)