From c85c681505b3d52f8ffa6729ebbbf2846e73cf30 Mon Sep 17 00:00:00 2001 From: Berna Castro Date: Thu, 15 Dec 2016 13:09:07 +0100 Subject: Add the group path to the issue ID if applicable --- app/models/project.rb | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) (limited to 'app/models/project.rb') diff --git a/app/models/project.rb b/app/models/project.rb index 59faf35e051..b6ec54af3f3 100644 --- a/app/models/project.rb +++ b/app/models/project.rb @@ -591,10 +591,18 @@ class Project < ActiveRecord::Base end end - def to_reference(from_project = nil, full: false) - if full || cross_namespace_reference?(from_project) - path_with_namespace - elsif cross_project_reference?(from_project) + def to_reference(from_project = nil, from_group = nil) + if from_group.nil? + if cross_namespace_reference?(from_project) + path_with_namespace + elsif cross_project_reference?(from_project) + path + elsif self == from_project + nil + else + path_with_namespace + end + else path end end -- cgit v1.2.1 From ac66268443b05029cbc45cc358f62b764f1ff165 Mon Sep 17 00:00:00 2001 From: Berna Castro Date: Thu, 15 Dec 2016 15:51:50 +0100 Subject: Refactor Project#to_reference and make full_path a keyword argument Refactor overall code and fix failing specs Fix Project#to_reference Fix wrong spaces and update changelog Refactor #to_reference for Project & Issue Fix and improves Project#to_reference --- app/models/project.rb | 46 ++++++++++++++++++++++++---------------------- 1 file changed, 24 insertions(+), 22 deletions(-) (limited to 'app/models/project.rb') diff --git a/app/models/project.rb b/app/models/project.rb index b6ec54af3f3..52df648ede6 100644 --- a/app/models/project.rb +++ b/app/models/project.rb @@ -591,20 +591,10 @@ class Project < ActiveRecord::Base end end - def to_reference(from_project = nil, from_group = nil) - if from_group.nil? - if cross_namespace_reference?(from_project) - path_with_namespace - elsif cross_project_reference?(from_project) - path - elsif self == from_project - nil - else - path_with_namespace - end - else - path - end + def to_reference(from = nil, full_path: false) + return path_with_namespace if full_path + + path_from(from) end def to_human_reference(from_project = nil) @@ -1299,21 +1289,33 @@ class Project < ActiveRecord::Base private + def path_from(from) + if cross_namespace_reference?(from) + path_with_namespace + elsif cross_project_reference?(from) + path + end + end + + def cross_namespace_reference?(from) + if from.is_a?(Project) + from && namespace != from.namespace + else + from && namespace != from + end + end + # Check if a reference is being done cross-project - # - # from_project - Refering Project object - def cross_project_reference?(from_project) - from_project && self != from_project + def cross_project_reference?(from) + return true if from.is_a?(Namespace) + + from && self != from end def pushes_since_gc_redis_key "projects/#{id}/pushes_since_gc" end - def cross_namespace_reference?(from_project) - from_project && namespace != from_project.namespace - end - def default_branch_protected? current_application_settings.default_branch_protection == Gitlab::Access::PROTECTION_FULL || current_application_settings.default_branch_protection == Gitlab::Access::PROTECTION_DEV_CAN_MERGE -- cgit v1.2.1 From aeb9db6753cfdd56f82d80c0e2c01f63d65b705d Mon Sep 17 00:00:00 2001 From: Oswaldo Ferreira Date: Tue, 10 Jan 2017 21:52:25 -0200 Subject: Present group and dashboard MR list without grouping by project --- app/models/project.rb | 27 +++++++++++---------------- 1 file changed, 11 insertions(+), 16 deletions(-) (limited to 'app/models/project.rb') diff --git a/app/models/project.rb b/app/models/project.rb index 52df648ede6..23b98916b2e 100644 --- a/app/models/project.rb +++ b/app/models/project.rb @@ -591,10 +591,12 @@ class Project < ActiveRecord::Base end end - def to_reference(from = nil, full_path: false) - return path_with_namespace if full_path - - path_from(from) + def to_reference(from = nil, full: false) + if full || cross_namespace_reference?(from) + path_with_namespace + elsif cross_project_reference?(from) + path + end end def to_human_reference(from_project = nil) @@ -1289,19 +1291,12 @@ class Project < ActiveRecord::Base private - def path_from(from) - if cross_namespace_reference?(from) - path_with_namespace - elsif cross_project_reference?(from) - path - end - end - def cross_namespace_reference?(from) - if from.is_a?(Project) - from && namespace != from.namespace - else - from && namespace != from + case from + when Project + namespace != from.namespace + when Namespace + namespace != from end end -- cgit v1.2.1 From 0e14a2f21dbfe20c980562dd47ab9878c023eac2 Mon Sep 17 00:00:00 2001 From: Oswaldo Ferreira Date: Wed, 11 Jan 2017 10:44:12 -0200 Subject: Add commment to Issue, Project and MergeRequest #to_reference --- app/models/project.rb | 1 + 1 file changed, 1 insertion(+) (limited to 'app/models/project.rb') diff --git a/app/models/project.rb b/app/models/project.rb index 23b98916b2e..4396ea9ef36 100644 --- a/app/models/project.rb +++ b/app/models/project.rb @@ -591,6 +591,7 @@ class Project < ActiveRecord::Base end end + # `from` argument can be a Namespace or Project. def to_reference(from = nil, full: false) if full || cross_namespace_reference?(from) path_with_namespace -- cgit v1.2.1 From ba2d7eda617fadad5010a8c3cf054af795693927 Mon Sep 17 00:00:00 2001 From: Dmitriy Zaporozhets Date: Mon, 30 Jan 2017 11:35:28 +0200 Subject: Improve search within group logic Signed-off-by: Dmitriy Zaporozhets --- app/models/project.rb | 1 + 1 file changed, 1 insertion(+) (limited to 'app/models/project.rb') diff --git a/app/models/project.rb b/app/models/project.rb index 4396ea9ef36..37f4705adbd 100644 --- a/app/models/project.rb +++ b/app/models/project.rb @@ -225,6 +225,7 @@ class Project < ActiveRecord::Base scope :with_project_feature, -> { joins('LEFT JOIN project_features ON projects.id = project_features.project_id') } scope :with_statistics, -> { includes(:statistics) } scope :with_shared_runners, -> { where(shared_runners_enabled: true) } + scope :inside_path, ->(path) { joins(:route).where('routes.path LIKE ?', "#{path}/%") } # "enabled" here means "not disabled". It includes private features! scope :with_feature_enabled, ->(feature) { -- cgit v1.2.1