@@ -24,7 +24,7 @@ class Task < RoleRecord
2424 accepts_nested_attributes_for :comments , :allow_destroy => false ,
2525 :reject_if => lambda { |comment | %w[ is_private body hours human_hours uploads_attributes google_docs_attributes ] . all? { |k | comment [ k ] . blank? } }
2626
27- attr_accessible :name , :assigned_id , :status , :due_on , :comments_attributes , :user , :task_list_id
27+ attr_accessible :name , :assigned_id , :status , :due_on , :comments_attributes , :user , :task_list_id , :urgent
2828
2929 validates_presence_of :user
3030 validates_presence_of :task_list
@@ -49,14 +49,15 @@ class Task < RoleRecord
4949 before_save :save_completed_at
5050 before_validation :remember_comment_created , :on => :update
5151 before_save :update_google_calendar_event , :if => lambda { |t | t . assigned . try ( :user ) || !t . google_calendar_url_token . blank? }
52+ before_validation :nilize_due_on_for_urgent_tasks
5253
5354 def assigned
5455 @assigned ||= assigned_id ? Person . with_deleted . find_by_id ( assigned_id ) : nil
5556 end
5657
5758 def track_changes?
5859 ( new_record? and not status_new? ) or
59- ( updating_user and ( status_changed? or assigned_id_changed? or due_on_changed? ) )
60+ ( updating_user and ( status_changed? or assigned_id_changed? or due_on_changed? or urgent_changed? ) )
6061 end
6162
6263 def archived?
@@ -299,7 +300,7 @@ def set_comments_author # before_save
299300 end
300301
301302 def remember_comment_created # before_update
302- @comment_created = comments . any? ( &:new_record? ) || assigned_id_changed? || status_changed? || due_on_changed?
303+ @comment_created = comments . any? ( &:new_record? ) || assigned_id_changed? || status_changed? || due_on_changed? || urgent_changed?
303304 true
304305 end
305306
@@ -331,6 +332,11 @@ def save_changes_to_comment # before_save
331332 comment . previous_due_on = self . due_on_was if due_on_changed?
332333 end
333334
335+ if urgent_changed? or self . new_record?
336+ comment . urgent = self . urgent
337+ comment . previous_urgent = self . urgent_was if urgent_changed?
338+ end
339+
334340 @saved_changes_to_comment = true
335341 true
336342 end
@@ -465,4 +471,8 @@ def delete_old_events_if_required
465471 self . google_calendar_url_token = nil
466472 end
467473 end
474+
475+ def nilize_due_on_for_urgent_tasks
476+ self . due_on = nil if self . urgent?
477+ end
468478end
0 commit comments