diff --git a/app/models/project.rb b/app/models/project.rb index 48fa2f66170a4f093c83ee6beec678ef8bff036f..39f0d71b337e8be74d08ddcf368ec7fd400832e7 100644 --- a/app/models/project.rb +++ b/app/models/project.rb @@ -55,11 +55,15 @@ class Project < ActiveRecord::Base has_one :forked_project_link, dependent: :destroy, foreign_key: "forked_to_project_id" has_one :forked_from_project, through: :forked_project_link - has_many :services, dependent: :destroy - has_many :events, dependent: :destroy + # Merge Requests for target project should be removed with it has_many :merge_requests, dependent: :destroy, foreign_key: "target_project_id" - has_many :fork_merge_requests,dependent: :destroy, foreign_key: "source_project_id", class_name: MergeRequest + + # Merge requests from source project should be kept when source project was removed + has_many :fork_merge_requests, foreign_key: "source_project_id", class_name: MergeRequest + has_many :issues, -> { order "state DESC, created_at DESC" }, dependent: :destroy + has_many :services, dependent: :destroy + has_many :events, dependent: :destroy has_many :milestones, dependent: :destroy has_many :notes, dependent: :destroy has_many :snippets, dependent: :destroy, class_name: "ProjectSnippet"