+
+ # TODO now that this code is in here, we should go ahead and remove
+ # date checking from other places in the code
+ def after_find
+ if self.active < 2 and self.enddate < Time.now
+ self.active = 2
+ self.save
+ end
+ end
+
+ def just_before_midnight(datetime)
+ if datetime.instance_of? DateTime
+ off = datetime.offset
+ else
+ off = Rational(datetime.utc_offset, 60*60*24)
+ end
+ return DateTime.new(datetime.year, datetime.month, datetime.day,
+ 23, 59, 59, off)
+ end
+
+ private
+ def enforce_constraints
+ # elections end just before midnight
+ self.enddate = just_before_midnight(self.enddate)
+ # kiosks can't be authenticated
+ self.authenticated = false if kiosk?
+ return true
+ end
+
+end