summaryrefslogtreecommitdiff
path: root/app/models/issue.rb
diff options
context:
space:
mode:
authorAndrew8xx8 <avk@8xx8.ru>2013-02-18 13:10:58 +0400
committerAndrew8xx8 <avk@8xx8.ru>2013-02-18 14:43:50 +0400
commit1644117a1ac45bd7d250e7bced929a00a3befe5e (patch)
tree8cc9ac92f9156bc4327ac1ec49cdc6b56b3dc49e /app/models/issue.rb
parent0b512af803d007852bcba40c75203e0e45dda177 (diff)
downloadgitlab-ce-1644117a1ac45bd7d250e7bced929a00a3befe5e.tar.gz
Issue uses StateMachine now
Diffstat (limited to 'app/models/issue.rb')
-rw-r--r--app/models/issue.rb24
1 files changed, 21 insertions, 3 deletions
diff --git a/app/models/issue.rb b/app/models/issue.rb
index 07c0401143c..6c0f4da46d4 100644
--- a/app/models/issue.rb
+++ b/app/models/issue.rb
@@ -9,7 +9,7 @@
# project_id :integer
# created_at :datetime not null
# updated_at :datetime not null
-# closed :boolean default(FALSE), not null
+# state :string default(FALSE), not null
# position :integer default(0)
# branch_name :string(255)
# description :text
@@ -19,11 +19,29 @@
class Issue < ActiveRecord::Base
include Issuable
- attr_accessible :title, :assignee_id, :closed, :position, :description,
- :milestone_id, :label_list, :author_id_of_changes
+ attr_accessible :title, :assignee_id, :position, :description,
+ :milestone_id, :label_list, :author_id_of_changes,
+ :state_event
acts_as_taggable_on :labels
+ state_machine :state, :initial => :opened do
+ event :close do
+ transition [:reopened, :opened] => :closed
+ end
+
+ event :reopen do
+ transition :closed => :reopened
+ end
+
+ state :opened
+
+ state :reopened
+
+ state :closed
+ end
+
+
def self.open_for(user)
opened.assigned(user)
end