diff options
Diffstat (limited to 'app/models/concerns/milestoneish.rb')
-rw-r--r-- | app/models/concerns/milestoneish.rb | 29 |
1 files changed, 29 insertions, 0 deletions
diff --git a/app/models/concerns/milestoneish.rb b/app/models/concerns/milestoneish.rb new file mode 100644 index 00000000000..5b8e3f654ea --- /dev/null +++ b/app/models/concerns/milestoneish.rb @@ -0,0 +1,29 @@ +module Milestoneish + def closed_items_count(user = nil) + issues_visible_to_user(user).closed.size + merge_requests.closed_and_merged.size + end + + def total_items_count(user = nil) + issues_visible_to_user(user).size + merge_requests.size + end + + def complete?(user = nil) + total_items_count(user) == closed_items_count(user) + end + + def percent_complete(user = nil) + ((closed_items_count(user) * 100) / total_items_count(user)).abs + rescue ZeroDivisionError + 0 + end + + def remaining_days + return 0 if !due_date || expired? + + (due_date - Date.today).to_i + end + + def issues_visible_to_user(user = nil) + issues.visible_to_user(user) + end +end |