diff options
author | Marius Mathiesen <marius.mathiesen@gmail.com> | 2009-05-19 13:07:03 +0200 |
---|---|---|
committer | Marius Mathiesen <marius.mathiesen@gmail.com> | 2009-05-19 14:15:44 +0200 |
commit | bfe0ec74ef90200849f142b2aef61270183eec12 (patch) | |
tree | 456ef0f887c8b63a93d0686690b6d64450c437e4 /app/models/merge_request.rb | |
parent | 70889ced393f76bf94e5c5416fa4b8c8cf236000 (diff) | |
download | gitorious-mainline-outdated-bfe0ec74ef90200849f142b2aef61270183eec12.zip gitorious-mainline-outdated-bfe0ec74ef90200849f142b2aef61270183eec12.tar.gz gitorious-mainline-outdated-bfe0ec74ef90200849f142b2aef61270183eec12.tar.bz2 |
Adding support for re-opening merge requests.
This is an explicit action, wrapped inside a
separate method in MergeRequest which passes along
the user who wants to re-open.
- Also added a new Action and rendering of the events
Diffstat (limited to 'app/models/merge_request.rb')
-rw-r--r-- | app/models/merge_request.rb | 14 |
1 files changed, 14 insertions, 0 deletions
diff --git a/app/models/merge_request.rb b/app/models/merge_request.rb index dab8dad..bc6a16b 100644 --- a/app/models/merge_request.rb +++ b/app/models/merge_request.rb @@ -68,6 +68,10 @@ class MergeRequest < ActiveRecord::Base event :merge do transition [:open, :verifying] => :merged end + + event :reopen do + transition [:merged, :rejected] => :open + end end named_scope :open, :conditions => ['status in (?)', [STATUS_OPEN, STATUS_VERIFYING]] @@ -75,6 +79,16 @@ class MergeRequest < ActiveRecord::Base named_scope :merged, :conditions => ["status = ?", [STATUS_MERGED]] named_scope :rejected, :conditions => ["status = ?", [STATUS_REJECTED]] + def reopen_with_user(a_user) + if can_be_reopened_by?(a_user) + return reopen + end + end + + def can_be_reopened_by?(a_user) + return can_reopen? && resolvable_by?(a_user) + end + def self.human_name I18n.t("activerecord.models.merge_request") end |