has_many :candidates
has_many :voters
has_many :votes
+ belongs_to :user
validates_presence_of :name, :description
require 'date'
def startdate
- read_attribute( :startdate ) || DateTime.now
+ read_attribute( :startdate ) || Time.now
end
-
+
def enddate
- read_attribute( :enddate ) || DateTime.now + 14
+ date = read_attribute( :enddate ) || Time.now + 14
+ date - 1.second
+ end
+
+ def enddate=(date)
+ date += 1.day
+ date = Time.gm(*date)
+ super(date)
+ end
+
+ def votes
+ votes = Array.new
+ self.voters.each do |voter|
+ votes << voter.vote
+ end
+ return votes
end
def destroy
end
super
end
+
+ def start_blockers
+ reasons = []
+
+ if self.candidates.length <= 1
+ reasons << "You must have at least two candidates."
+ end
+
+ if self.voters.length <= 1
+ reasons << "You must have at least two voters."
+ end
+
+ reasons
+ end
+
+ def activate!
+ self.active = 1
+ self.save!
+ end
+ def quickvote?
+ self.class == 'QuickVote'
+ end
+
+ def active?
+ active == 1
+ end
+
+ def done?
+ active == 2
+ end
+
+ def shortdesc
+ shortdesc = description.split(/\n/)[0]
+ end
+
+ def longdesc
+ longdesc = description.split(/\n/)[1..-1].join("")
+ longdesc.length > 0 ? longdesc : nil
+ end
end