Skip to content
Snippets Groups Projects

Update epic cache counts on project/group deletion

Merged Jan Provaznik requested to merge jp-cached-issue-weight-worker2 into master
All threads resolved!
Compare and Show latest version
13 files
+ 279
24
Compare changes
  • Side-by-side
  • Inline
Files
13
+ 18
9
@@ -179,6 +179,11 @@ def etag_caching_enabled?
after_commit do
::Epics::UpdateIssueCachedMetadataWorker.perform_async(parent_id) if propagate_issue_metadata_change?
parent_change = previous_changes['parent_id'] || []
if parent_change[0] && parent_change[0] != parent_change[1]
::Epics::UpdateIssueCachedMetadataWorker.perform_async(parent_change[0])
end
end
def epic_tree_root?
@@ -342,8 +347,6 @@ def search(query)
end
def ids_for_base_and_decendants(epic_ids)
return self.class.none unless parent_id
::Gitlab::ObjectHierarchy.new(self.id_in(epic_ids)).base_and_descendants.pluck(:id)
end
@@ -559,6 +562,8 @@ def level_depth_exceeded?(parent_epic)
private :level_depth_exceeded?
def base_and_ancestors
return self.class.none unless parent_id
hierarchy.base_and_ancestors(hierarchy_order: :asc)
end
@@ -630,12 +635,14 @@ def total_issue_weight_and_count
}
end
# TODO: private
def subepics_weight_and_count
sum = children.select(
'SUM(COALESCE(total_opened_issue_weight, 0)) AS opened_issue_weight',
'SUM(COALESCE(total_closed_issue_weight, 0)) AS closed_issue_weight',
'SUM(COALESCE(total_opened_issue_count, 0)) AS opened_issue_count',
'SUM(COALESCE(total_closed_issue_count, 0)) AS closed_issue_count'
'SUM(total_opened_issue_weight) AS opened_issue_weight',
'SUM(total_closed_issue_weight) AS closed_issue_weight',
'SUM(total_opened_issue_count) AS opened_issue_count',
'SUM(total_closed_issue_count) AS closed_issue_count'
).reorder(nil).first
{
@@ -669,11 +676,13 @@ def issues_weight_and_count
def propagate_issue_metadata_change?
return false unless parent_id
return true if destroyed?
cached_attrs = %w(total_opened_issue_weight total_closed_issue_weight
total_opened_issue_count total_closed_issue_count)
attrs = %w(total_opened_issue_weight total_closed_issue_weight
total_opened_issue_count total_closed_issue_count
parent_id)
(previous_changes.keys & cached_attrs).any?
(previous_changes.keys & attrs).any?
end
end
end
Loading