summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTomasz Maczukin <tomasz@maczukin.pl>2015-11-18 22:11:15 +0100
committerTomasz Maczukin <tomasz@maczukin.pl>2015-11-18 22:11:15 +0100
commit6f41e3d9caa28b2a654fb775202be632673f2299 (patch)
treebce88bd004c5c0443920d0a23c83f100e7316f21
parente40c13ae48e53432d76440e2037febb01edbbef4 (diff)
downloadgitlab-ce-6f41e3d9caa28b2a654fb775202be632673f2299.tar.gz
Change forks method to has_many relation
-rw-r--r--app/models/project.rb11
-rw-r--r--app/services/projects/update_service.rb3
2 files changed, 6 insertions, 8 deletions
diff --git a/app/models/project.rb b/app/models/project.rb
index f287e59b6df..2562c441abe 100644
--- a/app/models/project.rb
+++ b/app/models/project.rb
@@ -97,9 +97,12 @@ class Project < ActiveRecord::Base
has_one :gitlab_issue_tracker_service, dependent: :destroy
has_one :external_wiki_service, dependent: :destroy
- has_one :forked_project_link, dependent: :destroy, foreign_key: "forked_to_project_id"
+ has_one :forked_project_link, dependent: :destroy, foreign_key: "forked_to_project_id"
+ has_one :forked_from_project, through: :forked_project_link
+
+ has_many :forked_project_links, foreign_key: "forked_from_project_id"
+ has_many :forks, through: :forked_project_links, source: :forked_to_project
- has_one :forked_from_project, through: :forked_project_link
# Merge Requests for target project should be removed with it
has_many :merge_requests, dependent: :destroy, foreign_key: 'target_project_id'
# Merge requests from source project should be kept when source project was removed
@@ -734,10 +737,6 @@ class Project < ActiveRecord::Base
forks.count
end
- def forks
- ForkedProjectLink.where(forked_from_project_id: self.id)
- end
-
def find_label(name)
labels.find_by(name: name)
end
diff --git a/app/services/projects/update_service.rb b/app/services/projects/update_service.rb
index 0d2665f298d..67e3429c0bd 100644
--- a/app/services/projects/update_service.rb
+++ b/app/services/projects/update_service.rb
@@ -44,8 +44,7 @@ module Projects
end
def update_forks_visibility_level(new_level)
- project.forks.each do |forked_link|
- forked_project = forked_link.forked_to_project
+ project.forks.each do |forked_project|
fork_level = forked_project.visibility_level
if fork_level > new_level.to_i