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

66 lines
1.6 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
2013-08-21 05:34:02 -04:00
# created_at :datetime not null
# updated_at :datetime not null
2012-11-19 13:24:05 -05:00
# position :integer default(0)
# branch_name :string(255)
# description :text
# milestone_id :integer
2013-03-15 09:16:02 -04:00
# state :string(255)
2013-08-21 05:34:02 -04:00
# iid :integer
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
include InternalId
Merge Request on forked projects The good: - You can do a merge request for a forked commit and it will merge properly (i.e. it does work). - Push events take into account merge requests on forked projects - Tests around merge_actions now present, spinach, and other rspec tests - Satellites now clean themselves up rather then recreate The questionable: - Events only know about target projects - Project's merge requests only hold on to MR's where they are the target - All operations performed in the satellite The bad: - Duplication between project's repositories and satellites (e.g. commits_between) (for reference: http://feedback.gitlab.com/forums/176466-general/suggestions/3456722-merge-requests-between-projects-repos) Fixes: Make test repos/satellites only create when needed -Spinach/Rspec now only initialize test directory, and setup stubs (things that are relatively cheap) -project_with_code, source_project_with_code, and target_project_with_code now create/destroy their repos individually -fixed remote removal -How to merge renders properly -Update emails to show project/branches -Edit MR doesn't set target branch -Fix some failures on editing/creating merge requests, added a test -Added back a test around merge request observer -Clean up project_transfer_spec, Remove duplicate enable/disable observers -Ensure satellite lock files are cleaned up, Attempted to add some testing around these as well -Signifant speed ups for tests -Update formatting ordering in notes_on_merge_requests -Remove wiki schema update Fixes for search/search results -Search results was using by_project for a list of projects, updated this to use in_projects -updated search results to reference the correct (target) project -udpated search results to print both sides of the merge request Change-Id: I19407990a0950945cc95d62089cbcc6262dab1a8
2013-04-25 10:15:33 -04:00
belongs_to :project
validates :project, presence: true
scope :of_group, ->(group) { where(project_id: group.project_ids) }
scope :of_user_team, ->(team) { where(project_id: team.project_ids, assignee_id: team.member_ids) }
scope :opened, -> { with_state(:opened) }
scope :closed, -> { with_state(:closed) }
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) }
2013-06-17 06:29:50 -04:00
scope :open_for, ->(user) { opened.assigned_to(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) }
# Mentionable overrides.
def gfm_reference
"issue ##{iid}"
end
2011-10-08 17:36:38 -04:00
end