mirror of
https://github.com/wahyd4/gitlabhq.git
synced 2026-08-15 15:46:08 +10:00
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
61 lines
1.6 KiB
Ruby
61 lines
1.6 KiB
Ruby
# == 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
|
|
# updated_at :datetime
|
|
# position :integer default(0)
|
|
# branch_name :string(255)
|
|
# description :text
|
|
# milestone_id :integer
|
|
# state :string(255)
|
|
#
|
|
|
|
class Issue < ActiveRecord::Base
|
|
|
|
include Issuable
|
|
|
|
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) }
|
|
scope :by_project, ->(project_id) {where(project_id:project_id)}
|
|
|
|
attr_accessible :title, :assignee_id, :position, :description,
|
|
:milestone_id, :label_list, :author_id_of_changes,
|
|
:state_event
|
|
|
|
acts_as_taggable_on :labels
|
|
|
|
scope :cared, ->(user) { where(assignee_id: user) }
|
|
scope :authored, ->(user) { where(author_id: user) }
|
|
scope :open_for, ->(user) { opened.assigned_to(user) }
|
|
|
|
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
|
|
|
|
# Both open and reopened issues should be listed as opened
|
|
scope :opened, -> { with_state(:opened, :reopened) }
|
|
end
|