app/models/task.rb in bookyt_projects-0.2.3 vs app/models/task.rb in bookyt_projects-0.3.0

- old
+ new

@@ -1,8 +1,32 @@ class Task < ActiveRecord::Base belongs_to :project belongs_to :person + attr_accessor :minutes, :hours + + validates :project, :presence => true + validates :person, :presence => true + validates :when, :presence => true + validates :from, :presence => true, :unless => :hours_minutes + validates :to, :presence => true, :unless => :hours_minutes + validates_numericality_of :hours, :only_integer => true, :unless => :from + validates_numericality_of :minutes, :only_integer => true, :unless => :from + + before_save :calculate_hours, :if => :hours_minutes + + def hours_minutes + minutes || hours + end + + def calculate_hours + self.from = DateTime.now + self.to = self.from + hours.to_i.hours + minutes.to_i.minutes + end + + # The duration of the task in minutes def duration - "2h" + minutes = (to.to_f - from.to_f).to_i / 60 + + minutes < 0 ? 1.day.to_i + minutes : minutes end end