From 8c1efa9e89657dab2467690b75dc67f3d61da64e Mon Sep 17 00:00:00 2001 From: Jorge Manrubia Date: Thu, 3 Apr 2025 17:20:43 +0200 Subject: [PATCH] Only active cards can be in doing/considered --- app/models/bubble/engageable.rb | 18 ++++++++++++------ app/models/bubble/poppable.rb | 4 ++++ 2 files changed, 16 insertions(+), 6 deletions(-) diff --git a/app/models/bubble/engageable.rb b/app/models/bubble/engageable.rb index 73cc7837b..514b7ba98 100644 --- a/app/models/bubble/engageable.rb +++ b/app/models/bubble/engageable.rb @@ -4,25 +4,31 @@ module Bubble::Engageable included do has_one :engagement, dependent: :destroy, class_name: "Bubble::Engagement" - scope :doing, -> { joins(:engagement) } - scope :considering, -> { where.missing(:engagement) } + scope :doing, -> { active.joins(:engagement) } + scope :considering, -> { active.where.missing(:engagement) } end def doing? - engagement.present? + active? && engagement.present? end def considering? - !doing? + active? && !doing? end def engage unless doing? - create_engagement! + transaction do + unpop + create_engagement! + end end end def reconsider - engagement&.destroy + transaction do + unpop + engagement&.destroy + end end end diff --git a/app/models/bubble/poppable.rb b/app/models/bubble/poppable.rb index 974e26ec8..bfa2fa8fb 100644 --- a/app/models/bubble/poppable.rb +++ b/app/models/bubble/poppable.rb @@ -28,6 +28,10 @@ module Bubble::Poppable pop.present? end + def active? + !popped? + end + def popped_by pop&.user end