diff --git a/app/controllers/cards/closures_controller.rb b/app/controllers/cards/closures_controller.rb index a62955228..3682552ee 100644 --- a/app/controllers/cards/closures_controller.rb +++ b/app/controllers/cards/closures_controller.rb @@ -2,12 +2,12 @@ class Cards::ClosuresController < ApplicationController include CardScoped def create - @card.closure!(user: Current.user, reason: params[:reason]) + @card.close(user: Current.user, reason: params[:reason]) redirect_to @card end def destroy - @card.unpop + @card.reopen redirect_to @card end end diff --git a/app/javascript/controllers/card_size_controller.js b/app/javascript/controllers/card_size_controller.js index b673e910d..e688358da 100644 --- a/app/javascript/controllers/card_size_controller.js +++ b/app/javascript/controllers/card_size_controller.js @@ -13,7 +13,7 @@ export default class extends Controller { const [ min, max ] = this.#getScoreRange() this.cardTargets.forEach(card => { - const score = this.#currentBubbleScore(card) + const score = this.#currentCardScore(card) const idx = Math.round((score - min) / (max - min) * (SIZES.length - 1)) card.style.setProperty("--card-size", `var(--card-size-${SIZES[idx]})`) @@ -24,7 +24,7 @@ export default class extends Controller { var min = 0, max = 1; this.cardTargets.forEach(card => { - const score = this.#currentBubbleScore(card) + const score = this.#currentCardScore(card) min = Math.min(min, score) max = Math.max(max, score) @@ -33,7 +33,7 @@ export default class extends Controller { return [ min, max ] } - #currentBubbleScore(el) { + #currentCardScore(el) { const score = el.dataset.activityScore const scoreAt = el.dataset.activityScoreAt const daysAgo = (Date.now() / 1000 - scoreAt) / (60 * 60 * 24) diff --git a/app/jobs/card/auto_closure_all_due_job.rb b/app/jobs/card/auto_close_all_due_job.rb similarity index 57% rename from app/jobs/card/auto_closure_all_due_job.rb rename to app/jobs/card/auto_close_all_due_job.rb index 0bf063c2b..6cb4f646b 100644 --- a/app/jobs/card/auto_closure_all_due_job.rb +++ b/app/jobs/card/auto_close_all_due_job.rb @@ -1,9 +1,9 @@ -class Card::AutoPopAllDueJob < ApplicationJob +class Card::AutoCloseAllDueJob < ApplicationJob queue_as :default def perform ApplicationRecord.with_each_tenant do |tenant| - Card.auto_closure_all_due + Card.auto_close_all_due end end end diff --git a/app/models/card/closeable.rb b/app/models/card/closeable.rb index e82df5a60..bcc41308a 100644 --- a/app/models/card/closeable.rb +++ b/app/models/card/closeable.rb @@ -14,14 +14,14 @@ module Card::Closeable end class_methods do - def auto_closure_all_due + def auto_close_all_due due_to_be_closed.find_each do |card| - card.closure!(user: card.collection.account.users.system, reason: "Closed") + card.close(user: card.collection.account.users.system, reason: "Closed") end end end - def auto_closure_at + def auto_close_at last_active_at + AUTO_CLOSURE_AFTER if last_active_at end @@ -41,7 +41,7 @@ module Card::Closeable closure&.created_at end - def closure!(user: Current.user, reason: Account::ClosureReasons::FALLBACK_LABEL) + def close(user: Current.user, reason: Account::ClosureReasons::FALLBACK_LABEL) unless closed? transaction do create_closure! user: user, reason: reason @@ -50,7 +50,7 @@ module Card::Closeable end end - def unpop + def reopen closure&.destroy end end diff --git a/app/models/card/engageable.rb b/app/models/card/engageable.rb index c16cd986a..aac48232c 100644 --- a/app/models/card/engageable.rb +++ b/app/models/card/engageable.rb @@ -35,7 +35,7 @@ module Card::Engageable def engage unless doing? transaction do - unpop + reopen create_engagement! end end @@ -43,7 +43,7 @@ module Card::Engageable def reconsider transaction do - unpop + reopen engagement&.destroy end end diff --git a/app/views/cards/_closure_toggle.html.erb b/app/views/cards/_closure_toggle.html.erb index 4f08560eb..5ec96e39f 100644 --- a/app/views/cards/_closure_toggle.html.erb +++ b/app/views/cards/_closure_toggle.html.erb @@ -27,7 +27,7 @@ <% if card.doing? %> Returns to Considering if no activity <%= local_datetime_tag(card.auto_reconsider_at, style: :indays) -%>. <% else %> - Auto-closes if no activity <%= local_datetime_tag(card.auto_closure_at, style: :indays) -%>. + Auto-closes if no activity <%= local_datetime_tag(card.auto_close_at, style: :indays) -%>. <% end %> <% end %> diff --git a/app/views/cards/display/common/_meta.html.erb b/app/views/cards/display/common/_meta.html.erb index b17e27e46..ef15e4f9d 100644 --- a/app/views/cards/display/common/_meta.html.erb +++ b/app/views/cards/display/common/_meta.html.erb @@ -8,7 +8,7 @@ <% if card.creating? %> Expires - <%= local_datetime_tag(card.auto_closure_at, style: :indays) %> + <%= local_datetime_tag(card.auto_close_at, style: :indays) %> <% else %> Added diff --git a/config/recurring.yml b/config/recurring.yml index 210967d29..492e20247 100644 --- a/config/recurring.yml +++ b/config/recurring.yml @@ -1,6 +1,6 @@ production: - auto_closure_all_due: - class: Card::AutoPopAllDueJob + auto_close_all_due: + class: Card::AutoCloseAllDueJob schedule: every hour auto_reconsider_all_inactive: class: Card::AutoReconsiderAllStagnatedJob diff --git a/script/closureulate/collections_and_cards.rb b/script/closureulate/collections_and_cards.rb index c405390f1..ced0792a8 100644 --- a/script/closureulate/collections_and_cards.rb +++ b/script/closureulate/collections_and_cards.rb @@ -1,7 +1,7 @@ require_relative "../../config/environment" -BUCKETS_COUNT = 100 -BUBBLES_PER_COLLECTION = 50 +COLLECTIONS_COUNT = 100 +CARDS_PER_COLLECTION = 50 ApplicationRecord.current_tenant = "development-tenant" account = Account.first @@ -9,9 +9,9 @@ user = account.users.first Current.session = user.sessions.last workflow = account.workflows.first -BUCKETS_COUNT.times do |collection_index| +COLLECTIONS_COUNT.times do |collection_index| collection = account.collections.create!(name: "Collection #{collection_index}", creator: user, workflow: workflow) - BUBBLES_PER_COLLECTION.times do |card_index| + CARDS_PER_COLLECTION.times do |card_index| collection.cards.create!(title: "Card #{card_index}", creator: user, status: :published) end end diff --git a/test/models/card/closeable_test.rb b/test/models/card/closeable_test.rb index 64b1aa773..8cfee3e8b 100644 --- a/test/models/card/closeable_test.rb +++ b/test/models/card/closeable_test.rb @@ -9,20 +9,20 @@ class Card::CloseableTest < ActiveSupport::TestCase test "popping" do assert_not cards(:logo).closed? - cards(:logo).closure!(user: users(:kevin)) + cards(:logo).close(user: users(:kevin)) assert cards(:logo).closed? assert_equal users(:kevin), cards(:logo).closed_by end - test "auto_closure_all_due" do + test "auto_close_all_due" do cards(:logo, :shipping).each(&:reconsider) cards(:logo).update!(last_active_at: 1.day.ago - Card::Closeable::AUTO_CLOSURE_AFTER) cards(:shipping).update!(last_active_at: 1.day.from_now - Card::Closeable::AUTO_CLOSURE_AFTER) assert_difference -> { Card.closed.count }, +1 do - Card.auto_closure_all_due + Card.auto_close_all_due end assert cards(:logo).reload.closed? diff --git a/test/models/card/engageable_test.rb b/test/models/card/engageable_test.rb index d07e35f90..a0b041689 100644 --- a/test/models/card/engageable_test.rb +++ b/test/models/card/engageable_test.rb @@ -24,7 +24,7 @@ class Card::EngageableTest < ActiveSupport::TestCase end test "engaging with closed cards" do - cards(:text).closure! + cards(:text).close assert_not cards(:text).considering? assert_not cards(:text).doing? @@ -33,7 +33,7 @@ class Card::EngageableTest < ActiveSupport::TestCase assert_not cards(:text).reload.closed? assert cards(:text).doing? - cards(:text).closure! + cards(:text).close cards(:text).reconsider assert_not cards(:text).reload.closed? assert cards(:text).considering? diff --git a/test/models/card/eventable_test.rb b/test/models/card/eventable_test.rb index bac798df9..2eb0a7f35 100644 --- a/test/models/card/eventable_test.rb +++ b/test/models/card/eventable_test.rb @@ -15,7 +15,7 @@ class Card::EventableTest < ActiveSupport::TestCase test "tracking events update the last activity time" do travel_to Time.current - cards(:logo).closure! + cards(:logo).close assert_equal Time.current, cards(:logo).last_active_at end end