From 51dcf8b25f8c87bc5c37599bfbed54b0a0c50ed1 Mon Sep 17 00:00:00 2001 From: Jorge Manrubia Date: Mon, 2 Jun 2025 13:08:43 +0200 Subject: [PATCH 1/7] Invalidate card caches when editing workflows https://37s.fizzy.37signals.com/collections/2/cards/607 --- app/models/workflow/stage.rb | 2 +- app/views/cards/display/_preview.html.erb | 2 +- app/views/cards/index/engagement/_doing.html.erb | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/app/models/workflow/stage.rb b/app/models/workflow/stage.rb index 2cc0eb78f..8966d0000 100644 --- a/app/models/workflow/stage.rb +++ b/app/models/workflow/stage.rb @@ -1,5 +1,5 @@ class Workflow::Stage < ApplicationRecord - belongs_to :workflow + belongs_to :workflow, touch: true before_validation :assign_random_color, on: :create diff --git a/app/views/cards/display/_preview.html.erb b/app/views/cards/display/_preview.html.erb index 071630a8d..f976117a8 100644 --- a/app/views/cards/display/_preview.html.erb +++ b/app/views/cards/display/_preview.html.erb @@ -1,4 +1,4 @@ -<% cache card do %> +<% cache [ card, card.collection.workflow ] do %> <%= card_article_tag card, class: "card" do %>
diff --git a/app/views/cards/index/engagement/_doing.html.erb b/app/views/cards/index/engagement/_doing.html.erb index 216866e85..fe652ac8c 100644 --- a/app/views/cards/index/engagement/_doing.html.erb +++ b/app/views/cards/index/engagement/_doing.html.erb @@ -8,7 +8,7 @@ <% end %> <% if page.used? %> - <%= render partial: "cards/display/preview", collection: page.records, as: :card, cached: true %> + <%= render partial: "cards/display/preview", collection: page.records, as: :card, cached: ->(record) { [ record, record.collection.workflow ] } %> <% unless page.last? %> <%= cards_next_page_link "doing-cards", page: page, filter: filter %> From 08c5abfbdb07dfccfe8d645bf31be815ffb89ff6 Mon Sep 17 00:00:00 2001 From: Jorge Manrubia Date: Mon, 2 Jun 2025 18:03:14 +0200 Subject: [PATCH 2/7] Extract common method to query when entropy is cleaned We were always quering auto_close_at https://37s.fizzy.37signals.com/collections/2/cards/743 --- .../controllers/navigable_list_controller.js | 2 +- app/models/card/entropy.rb | 18 +++++++++++++++--- .../cards/display/preview/_bubble.html.erb | 2 +- test/models/card/entropy_test.rb | 10 ++++++++++ 4 files changed, 27 insertions(+), 5 deletions(-) diff --git a/app/javascript/controllers/navigable_list_controller.js b/app/javascript/controllers/navigable_list_controller.js index 44f3faef6..9b96c1b08 100644 --- a/app/javascript/controllers/navigable_list_controller.js +++ b/app/javascript/controllers/navigable_list_controller.js @@ -3,7 +3,7 @@ import { nextFrame } from "helpers/timing_helpers" export default class extends Controller { static targets = [ "item" ] - static values = { selectionAttribute: { type: String, default: "aria-selected" } } + static values = { selectionAttribute: { type: String, default: "aria-current" } } connect() { this.selectLast() diff --git a/app/models/card/entropy.rb b/app/models/card/entropy.rb index b0eded7a3..511832513 100644 --- a/app/models/card/entropy.rb +++ b/app/models/card/entropy.rb @@ -26,11 +26,19 @@ module Card::Entropy end def subject_to_entropy? - doing? || (auto_closing? && considering?) + auto_reconsidering? || auto_closing? + end + + def auto_reconsidering? + doing? && last_active_at + end + + def auto_closing? + considering? && collection.auto_closing? && last_active_at end def auto_close_at - last_active_at + auto_close_period if auto_closing? && last_active_at + last_active_at + auto_close_period if auto_closing? end def days_until_close @@ -38,10 +46,14 @@ module Card::Entropy end def auto_reconsider_at - last_active_at + AUTO_RECONSIDER_PERIOD if last_active_at + last_active_at + AUTO_RECONSIDER_PERIOD if auto_reconsidering? end def days_until_reconsider (auto_reconsider_at.to_date - Date.current).to_i if auto_reconsider_at end + + def entropy_cleaned_at + auto_close_at || auto_reconsider_at + end end diff --git a/app/views/cards/display/preview/_bubble.html.erb b/app/views/cards/display/preview/_bubble.html.erb index c05989755..f0e3df352 100644 --- a/app/views/cards/display/preview/_bubble.html.erb +++ b/app/views/cards/display/preview/_bubble.html.erb @@ -1,7 +1,7 @@