diff options
Diffstat (limited to 'app/models/milestone.rb')
| -rw-r--r-- | app/models/milestone.rb | 30 |
1 files changed, 27 insertions, 3 deletions
diff --git a/app/models/milestone.rb b/app/models/milestone.rb index a50831a2241..4fac9bec259 100644 --- a/app/models/milestone.rb +++ b/app/models/milestone.rb @@ -13,18 +13,26 @@ # class Milestone < ActiveRecord::Base - attr_accessible :title, :description, :due_date, :closed + attr_accessible :title, :description, :due_date, :closed, :author_id_of_changes + attr_accessor :author_id_of_changes belongs_to :project has_many :issues has_many :merge_requests + scope :active, where(closed: false) + scope :closed, where(closed: true) + validates :title, presence: true validates :project, presence: true validates :closed, inclusion: { in: [true, false] } - def self.active - where("due_date > ? OR due_date IS NULL", Date.today) + def expired? + if due_date + due_date < Date.today + else + false + end end def participants @@ -52,4 +60,20 @@ class Milestone < ActiveRecord::Base def expires_at "expires at #{due_date.stamp("Aug 21, 2011")}" if due_date end + + def can_be_closed? + open? && issues.opened.count.zero? + end + + def is_empty? + total_items_count.zero? + end + + def open? + !closed + end + + def author_id + author_id_of_changes + end end |
