diff --git a/app/helpers/projects_helper.rb b/app/helpers/projects_helper.rb index fd85217debfcfc51749217cc1124039c42d1bc9b..98bbcfaaba5f049b4e6b1ebb1ba6f8f9cc5b3e5e 100644 --- a/app/helpers/projects_helper.rb +++ b/app/helpers/projects_helper.rb @@ -158,8 +158,7 @@ module ProjectsHelper def project_list_cache_key(project) key = [ - 'parent/' + project.namespace.parent_full_path, - project.namespace.cache_key, + project.route.cache_key, project.cache_key, controller.controller_name, controller.action_name, diff --git a/app/models/namespace.rb b/app/models/namespace.rb index cf82b56cc7a9e13f142a15c07c84a2f165ab7508..a7ede5e3b9e5e65fea43400121963117606b77c1 100644 --- a/app/models/namespace.rb +++ b/app/models/namespace.rb @@ -224,10 +224,6 @@ class Namespace < ActiveRecord::Base parent.present? end - def parent_full_path - full_path.split('/')[0...-1].join('/') - end - private def repository_storage_paths diff --git a/app/models/route.rb b/app/models/route.rb index 12a7fa3d01bfb859c144879eff2cc7d1585b81e3..be77b8b51a5389232192804cca8d74358d5f7da7 100644 --- a/app/models/route.rb +++ b/app/models/route.rb @@ -35,7 +35,7 @@ class Route < ActiveRecord::Base old_path = route.path # Callbacks must be run manually - route.update_columns(attributes) + route.update_columns(attributes.merge(updated_at: Time.now)) # We are not calling route.delete_conflicting_redirects here, in hopes # of avoiding deadlocks. The parent (self, in this method) already diff --git a/changelogs/unreleased/dz-project-list-cache-key.yml b/changelogs/unreleased/dz-project-list-cache-key.yml index 79d89b1c509b38c0db8e51933bbde8c36d3c0344..9e4826e686a73d8f7a1bdabba7b438deaa62c2dd 100644 --- a/changelogs/unreleased/dz-project-list-cache-key.yml +++ b/changelogs/unreleased/dz-project-list-cache-key.yml @@ -1,4 +1,4 @@ --- -title: Add parent full path to project list cache key +title: Use route.cache_key for project list cache key merge_request: 11325 author: diff --git a/spec/helpers/projects_helper_spec.rb b/spec/helpers/projects_helper_spec.rb index ceabf0caf31e5fbf7cc5821c8b377bba81a083c1..54c5ba57bdf93795ea09e0e29f2470596a765032 100644 --- a/spec/helpers/projects_helper_spec.rb +++ b/spec/helpers/projects_helper_spec.rb @@ -66,14 +66,8 @@ describe ProjectsHelper do describe "#project_list_cache_key", redis: true do let(:project) { create(:project) } - it "includes the namespace" do - expect(helper.project_list_cache_key(project)).to include(project.namespace.cache_key) - end - - it "includes the parent namespace in case of subgroup" do - project = create(:project, group: create(:group, :nested)) - - expect(helper.project_list_cache_key(project)).to include("parent/#{project.namespace.parent.path}") + it "includes the route" do + expect(helper.project_list_cache_key(project)).to include(project.route.cache_key) end it "includes the project" do diff --git a/spec/models/namespace_spec.rb b/spec/models/namespace_spec.rb index ca61e34b78e451048b5f1235b3efefeb2483f368..8624616316c87e2631a92a0a2ec51cd45b0ede90 100644 --- a/spec/models/namespace_spec.rb +++ b/spec/models/namespace_spec.rb @@ -332,10 +332,4 @@ describe Namespace, models: true do it { expect(group.all_projects.to_a).to eq([project2, project1]) } end - - describe '#parent_full_path' do - let(:namespace) { create(:group, :nested) } - - it { expect(namespace.parent_full_path).to eq(namespace.parent.path) } - end end