diff options
author | Dmitriy Zaporozhets <dmitriy.zaporozhets@gmail.com> | 2012-04-09 00:28:58 +0300 |
---|---|---|
committer | Dmitriy Zaporozhets <dmitriy.zaporozhets@gmail.com> | 2012-04-09 00:28:58 +0300 |
commit | 23d950855d6d2524d00b1f0618c008e2529f06a4 (patch) | |
tree | adbf9d77a4ec9e437d285266de6892e0f17b960b /app/models/milestone.rb | |
parent | 667edcdd7534206761fc9524e6eaa17f1c27b815 (diff) | |
download | gitlab-ce-23d950855d6d2524d00b1f0618c008e2529f06a4.tar.gz |
Milestone basic scaffold
Diffstat (limited to 'app/models/milestone.rb')
-rw-r--r-- | app/models/milestone.rb | 29 |
1 files changed, 29 insertions, 0 deletions
diff --git a/app/models/milestone.rb b/app/models/milestone.rb new file mode 100644 index 00000000000..20bc2486e2f --- /dev/null +++ b/app/models/milestone.rb @@ -0,0 +1,29 @@ +class Milestone < ActiveRecord::Base + belongs_to :project + has_many :issues + + validates_presence_of :project_id + validates_presence_of :title + + def self.active + where("due_date > ? ", Date.today) + end + + def percent_complete + @percent_complete ||= begin + total_i = self.issues.count + closed_i = self.issues.closed.count + if total_i > 0 + (closed_i * 100) / total_i + else + 100 + end + rescue => ex + 0 + end + end + + def expires_at + "expires at #{due_date.stamp("Aug 21, 2011")}" if due_date + end +end |