gitlab-org--gitlab-foss/app/models/issue.rb

51 lines
1.2 KiB
Ruby
Raw Normal View History

2012-11-19 13:24:05 -05:00
# == Schema Information
#
# Table name: issues
#
# id :integer not null, primary key
# title :string(255)
# assignee_id :integer
# author_id :integer
# project_id :integer
# created_at :datetime not null
# updated_at :datetime not null
# position :integer default(0)
# branch_name :string(255)
# description :text
# milestone_id :integer
2013-03-15 09:16:02 -04:00
# state :string(255)
2012-11-19 13:24:05 -05:00
#
2011-10-08 17:36:38 -04:00
class Issue < ActiveRecord::Base
2013-01-03 02:06:07 -05:00
include Issuable
2013-02-18 04:10:58 -05:00
attr_accessible :title, :assignee_id, :position, :description,
:milestone_id, :label_list, :author_id_of_changes,
:state_event
acts_as_taggable_on :labels
2013-04-02 18:28:12 -04:00
scope :cared, ->(user) { where(assignee_id: user) }
scope :authored, ->(user) { where(author_id: user) }
scope :open_for, ->(user) { opened.assigned(user) }
2013-02-18 08:22:18 -05:00
state_machine :state, initial: :opened do
2013-02-18 04:10:58 -05:00
event :close do
transition [:reopened, :opened] => :closed
end
event :reopen do
2013-02-18 08:22:18 -05:00
transition closed: :reopened
2013-02-18 04:10:58 -05:00
end
state :opened
state :reopened
state :closed
end
# Both open and reopened issues should be listed as opened
scope :opened, -> { with_state(:opened, :reopened) }
2011-10-08 17:36:38 -04:00
end