From 58c126308c83e905ddde4decbd80f74967b79227 Mon Sep 17 00:00:00 2001 From: Paul Chavard Date: Thu, 26 Mar 2020 17:37:55 +0100 Subject: [PATCH] Add DiscardedProceduresDeletionJob job --- app/jobs/discarded_procedures_deletion_job.rb | 10 ++++++++++ app/models/dossier.rb | 2 -- app/models/procedure.rb | 6 ++++++ spec/models/dossier_spec.rb | 2 +- 4 files changed, 17 insertions(+), 3 deletions(-) create mode 100644 app/jobs/discarded_procedures_deletion_job.rb diff --git a/app/jobs/discarded_procedures_deletion_job.rb b/app/jobs/discarded_procedures_deletion_job.rb new file mode 100644 index 000000000..8ea745e89 --- /dev/null +++ b/app/jobs/discarded_procedures_deletion_job.rb @@ -0,0 +1,10 @@ +class DiscardedProceduresDeletionJob < CronJob + self.cron_expression = "0 7 * * *" + + def perform(*args) + Procedure.discarded_expired.find_each do |procedure| + procedure.dossiers.with_discarded.destroy_all + procedure.destroy + end + end +end diff --git a/app/models/dossier.rb b/app/models/dossier.rb index ad2f8487b..81e871f61 100644 --- a/app/models/dossier.rb +++ b/app/models/dossier.rb @@ -212,9 +212,7 @@ class Dossier < ApplicationRecord with_discarded .discarded .state_en_construction - .joins(:procedure) .where('dossiers.hidden_at < ?', 1.month.ago) - .where(procedures: { hidden_at: nil }) end scope :brouillon_near_procedure_closing_date, -> do diff --git a/app/models/procedure.rb b/app/models/procedure.rb index 32e6067f9..dbf49949d 100644 --- a/app/models/procedure.rb +++ b/app/models/procedure.rb @@ -53,6 +53,12 @@ class Procedure < ApplicationRecord scope :cloned_from_library, -> { where(cloned_from_library: true) } scope :declarative, -> { where.not(declarative_with_state: nil) } + scope :discarded_expired, -> do + with_discarded + .discarded + .where('hidden_at < ?', 1.month.ago) + end + scope :for_api, -> { includes( :administrateurs, diff --git a/spec/models/dossier_spec.rb b/spec/models/dossier_spec.rb index 3d9bc0b2a..52ca110ae 100644 --- a/spec/models/dossier_spec.rb +++ b/spec/models/dossier_spec.rb @@ -1248,6 +1248,6 @@ describe Dossier do end it { expect(Dossier.discarded_brouillon_expired.count).to eq(2) } - it { expect(Dossier.discarded_en_construction_expired.count).to eq(1) } + it { expect(Dossier.discarded_en_construction_expired.count).to eq(2) } end end