diff options
author | Andrew8xx8 <avk@8xx8.ru> | 2013-02-18 13:10:58 +0400 |
---|---|---|
committer | Andrew8xx8 <avk@8xx8.ru> | 2013-02-18 14:43:50 +0400 |
commit | 1644117a1ac45bd7d250e7bced929a00a3befe5e (patch) | |
tree | 8cc9ac92f9156bc4327ac1ec49cdc6b56b3dc49e /app/models/issue.rb | |
parent | 0b512af803d007852bcba40c75203e0e45dda177 (diff) | |
download | gitlab-ce-1644117a1ac45bd7d250e7bced929a00a3befe5e.tar.gz |
Issue uses StateMachine now
Diffstat (limited to 'app/models/issue.rb')
-rw-r--r-- | app/models/issue.rb | 24 |
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 |