Merge pull request #1076 from basecamp/cache-busted

Fix some issues with stale data due to caching
This commit is contained in:
Jorge Manrubia
2025-09-10 17:41:19 +02:00
committed by GitHub
7 changed files with 8 additions and 7 deletions
+2 -1
View File
@@ -16,7 +16,8 @@ class CardsController < ApplicationController
@doing = page_and_filter_for @filter.with(engagement_status: "doing"), per_page: PAGE_SIZE
@closed = page_and_filter_for_closed_cards
fresh_when etag: [ @considering, @on_deck, @doing, @closed ].collect { it.page.records }
@cache_key = [ @considering, @on_deck, @doing, @closed ].collect { it.page.records }.including([ Workflow.all ])
fresh_when etag: @cache_key
end
def create
+1 -1
View File
@@ -13,6 +13,6 @@ module Collection::Workflowing
private
def set_all_cards_to_initial_workflow_stage
cards.update_all(stage_id: initial_workflow_stage&.id)
cards.update_all(stage_id: initial_workflow_stage&.id, updated_at: Time.current)
end
end
+1 -1
View File
@@ -46,7 +46,7 @@ class User::DayTimeline
end
def cache_key
ActiveSupport::Cache.expand_cache_key [ user, filter, day.to_date, events ], "day-timeline"
ActiveSupport::Cache.expand_cache_key [ user, filter, day.to_date, events, Workflow.all ], "day-timeline"
end
private
+1 -1
View File
@@ -89,7 +89,7 @@ class User::Filtering
end
def cache_key
ActiveSupport::Cache.expand_cache_key([ user, filter, expanded? ], "user-filtering")
ActiveSupport::Cache.expand_cache_key([ user, filter, expanded?, collections, tags, users, filters ], "user-filtering")
end
private
+1 -1
View File
@@ -41,5 +41,5 @@
drop->drag-and-drop#drop
dragend->drag-and-drop#dragEnd" } do %>
<%= render "cards/index/columns", user_filtering: @user_filtering, on_deck: @on_deck, considering: @considering, doing: @doing, closed: @closed %>
<%= render "cards/index/columns", user_filtering: @user_filtering, on_deck: @on_deck, considering: @considering, doing: @doing, closed: @closed, cache_key: @cache_key %>
<% end %>
+1 -1
View File
@@ -1,4 +1,4 @@
<% cache [ on_deck, considering, doing, closed ].collect { it.page.records } do %>
<% cache @cache_key do %>
<div class="card-columns" data-controller="related-element" data-related-element-highlight-class="cards--related">
<% unless user_filtering.only_closed? %>
<%= render "cards/index/engagement/on_deck", user_filtering: user_filtering, **on_deck.to_h %>
@@ -1,4 +1,4 @@
<% cache day_timeline.events do %>
<% cache [ day_timeline.events, Workflow.all ] do %>
<% if day_timeline.has_activity? %>
<div class="events__columns">
<%= render "events/day_timeline/column", event_type: "added", day_timeline: day_timeline %>