diff --git a/app/controllers/users/dossiers_controller.rb b/app/controllers/users/dossiers_controller.rb
index 791049a78..987939cc6 100644
--- a/app/controllers/users/dossiers_controller.rb
+++ b/app/controllers/users/dossiers_controller.rb
@@ -161,7 +161,7 @@ module Users
end
def extend_conservation
- dossier.update(conservation_extension: dossier.conservation_extension + 1.month)
+ dossier.update(en_construction_conservation_extension: dossier.en_construction_conservation_extension + 1.month)
flash[:notice] = 'Votre dossier sera conservé un mois supplémentaire'
redirect_to dossier_path(@dossier)
end
diff --git a/app/models/dossier.rb b/app/models/dossier.rb
index 50f4553a5..9d7b53986 100644
--- a/app/models/dossier.rb
+++ b/app/models/dossier.rb
@@ -7,7 +7,6 @@
# archived :boolean default(FALSE)
# autorisation_donnees :boolean
# brouillon_close_to_expiration_notice_sent_at :datetime
-# conservation_extension :interval default(0 seconds)
# deleted_user_email_never_send :string
# en_construction_at :datetime
# en_construction_close_to_expiration_notice_sent_at :datetime
@@ -256,22 +255,21 @@ class Dossier < ApplicationRecord
scope :brouillon_close_to_expiration, -> do
state_brouillon
.joins(:procedure)
- .where("dossiers.created_at + dossiers.conservation_extension + (duree_conservation_dossiers_dans_ds * INTERVAL '1 month') - INTERVAL :expires_in < :now", { now: Time.zone.now, expires_in: INTERVAL_BEFORE_EXPIRATION })
+ .where("dossiers.created_at + (duree_conservation_dossiers_dans_ds * INTERVAL '1 month') - INTERVAL :expires_in < :now", { now: Time.zone.now, expires_in: INTERVAL_BEFORE_EXPIRATION })
end
scope :en_construction_close_to_expiration, -> do
state_en_construction
.joins(:procedure)
- .where("dossiers.en_construction_at + dossiers.conservation_extension + (duree_conservation_dossiers_dans_ds * INTERVAL '1 month') - INTERVAL :expires_in < :now", { now: Time.zone.now, expires_in: INTERVAL_BEFORE_EXPIRATION })
+ .where("dossiers.en_construction_at + dossiers.en_construction_conservation_extension + (duree_conservation_dossiers_dans_ds * INTERVAL '1 month') - INTERVAL :expires_in < :now", { now: Time.zone.now, expires_in: INTERVAL_BEFORE_EXPIRATION })
end
scope :en_instruction_close_to_expiration, -> do
state_en_instruction
.joins(:procedure)
.where("dossiers.en_instruction_at + (duree_conservation_dossiers_dans_ds * INTERVAL '1 month') - INTERVAL :expires_in < :now", { now: Time.zone.now, expires_in: INTERVAL_BEFORE_EXPIRATION })
end
- scope :termine_close_to_expiration, -> do
- state_termine
- .joins(:procedure)
- .where(id: Traitement.termine_close_to_expiration.pluck(:dossier_id).uniq)
+ def self.termine_close_to_expiration
+ dossier_ids = Traitement.termine_close_to_expiration.pluck(:dossier_id).uniq
+ Dossier.where(id: dossier_ids)
end
scope :brouillon_expired, -> do
@@ -455,15 +453,7 @@ class Dossier < ApplicationRecord
end
def en_construction_close_to_expiration?
- self.class.en_construction_close_to_expiration.exists?(id: self)
- end
-
- def brouillon_close_to_expiration?
- self.class.brouillon_close_to_expiration.exists?(id: self)
- end
-
- def close_to_expiration?
- en_construction_close_to_expiration? || brouillon_close_to_expiration?
+ Dossier.en_construction_close_to_expiration.where(id: self).present?
end
def show_groupe_instructeur_details?
@@ -646,7 +636,6 @@ class Dossier < ApplicationRecord
end
def after_passer_en_construction
- update!(conservation_extension: 0.days)
update!(en_construction_at: Time.zone.now) if self.en_construction_at.nil?
end
@@ -663,7 +652,6 @@ class Dossier < ApplicationRecord
end
def after_repasser_en_construction(instructeur)
- update!(conservation_extension: 0.days)
log_dossier_operation(instructeur, :repasser_en_construction)
end
diff --git a/app/views/users/dossiers/show/_header.html.haml b/app/views/users/dossiers/show/_header.html.haml
index ceed29f78..905f34f42 100644
--- a/app/views/users/dossiers/show/_header.html.haml
+++ b/app/views/users/dossiers/show/_header.html.haml
@@ -22,19 +22,13 @@
%li
= link_to "Tout le dossier", dossier_path(dossier, format: :pdf), target: "_blank", rel: "noopener", class: "menu-item menu-link"
- - if dossier.close_to_expiration?
+ - if dossier.en_construction_close_to_expiration?
.card.warning
.card-title Votre dossier va expirer
- - if dossier.brouillon?
- %p
- Votre dossier est en brouillon, mais va bientôt expirer. Cela signifie qu’il va bientôt être supprimé sans avoir été déposé.
- Si vous souhaitez le conserver afin de poursuivre la démarche, vous pouvez le conserver
- un mois de plus en cliquant sur le bouton ci-dessous.
- - else
- %p
- Votre dossier a été déposé, mais va bientôt expirer. Cela signifie qu’il va bientôt être supprimé sans avoir été traité par l’administration.
- Si vous souhaitez le conserver afin de poursuivre la démarche, vous pouvez le conserver
- un mois de plus en cliquant sur le bouton ci-dessous.
+ %p
+ Votre dossier a été déposé, mais va bientôt expirer. Cela signifie qu'il va bientôt être supprimé sans avoir été traité par l’administration.
+ Si vous souhaitez le conserver afin de poursuivre la démarche, vous pouvez le conserver
+ un mois de plus en cliquant sur le bouton ci-dessous.
%br
= button_to 'Repousser sa suppression', users_dossier_repousser_expiration_path(dossier), class: 'button secondary'
diff --git a/config/locales/views/dossier_mailer/notify_brouillon_near_deletion/fr.yml b/config/locales/views/dossier_mailer/notify_brouillon_near_deletion/fr.yml
index 883a7130a..f4ccef4e0 100644
--- a/config/locales/views/dossier_mailer/notify_brouillon_near_deletion/fr.yml
+++ b/config/locales/views/dossier_mailer/notify_brouillon_near_deletion/fr.yml
@@ -8,5 +8,5 @@ fr:
one: "Afin de limiter la conservation de vos données personnelles, le dossier en brouillon suivant sera bientôt automatiquement supprimé :"
other: "Afin de limiter la conservation de vos données personnelles, les dossiers en brouillon suivant seront bientôt automatiquement supprimés :"
footer:
- one: "Si vous souhaitez toujours déposer ce dossier, vous pouvez retrouver votre brouillon pendant encore un mois. Si vous souhaitez conserver votre dossier plus longtemps, vous pouvez prolonger sa durée de conservation dans l'interface. Et sinon, vous n’avez rien à faire."
- other: "Si vous souhaitez toujours déposer ces dossiers, vous pouvez retrouver vos brouillons pendant encore un mois. Si vous souhaitez conserver vos dossiers plus longtemps, vous pouvez prolonger leur durée de conservation au cas par cas dans l'interface. Et sinon, vous n’avez rien à faire."
+ one: "Si vous souhaitez toujours déposer ce dossier, vous pouvez retrouver votre brouillon pendant encore un mois. Et sinon, vous n’avez rien à faire."
+ other: "Si vous souhaitez toujours déposer ces dossiers, vous pouvez retrouver vos brouillons pendant encore un mois. Et sinon, vous n’avez rien à faire."
diff --git a/db/migrate/20210428104228_add_conservation_extension_to_dossiers.rb b/db/migrate/20210428104228_add_conservation_extension_to_dossiers.rb
deleted file mode 100644
index 909ac22f0..000000000
--- a/db/migrate/20210428104228_add_conservation_extension_to_dossiers.rb
+++ /dev/null
@@ -1,5 +0,0 @@
-class AddConservationExtensionToDossiers < ActiveRecord::Migration[6.1]
- def change
- add_column :dossiers, :conservation_extension, :interval, default: 0.days
- end
-end
diff --git a/db/schema.rb b/db/schema.rb
index 09d1a2239..c33baa8f5 100644
--- a/db/schema.rb
+++ b/db/schema.rb
@@ -274,7 +274,6 @@ ActiveRecord::Schema.define(version: 2021_04_28_114228) do
t.datetime "last_avis_updated_at"
t.datetime "last_commentaire_updated_at"
t.string "api_entreprise_job_exceptions", array: true
- t.interval "conservation_extension", default: "PT0S"
t.string "deleted_user_email_never_send"
t.index "to_tsvector('french'::regconfig, (search_terms || private_search_terms))", name: "index_dossiers_on_search_terms_private_search_terms", using: :gin
t.index "to_tsvector('french'::regconfig, search_terms)", name: "index_dossiers_on_search_terms", using: :gin
diff --git a/lib/tasks/deployment/20210429172327_rename_conservation_extension.rake b/lib/tasks/deployment/20210429172327_rename_conservation_extension.rake
deleted file mode 100644
index 16d83125b..000000000
--- a/lib/tasks/deployment/20210429172327_rename_conservation_extension.rake
+++ /dev/null
@@ -1,16 +0,0 @@
-namespace :after_party do
- desc 'Deployment task: rename_conservation_extension'
- task rename_conservation_extension: :environment do
- puts "Running deploy task 'rename_conservation_extension'"
-
- dossiers = Dossier.state_en_construction.where.not(en_construction_conservation_extension: 0.days)
- dossiers.find_each do |dossier|
- dossier.update_column(:conservation_extension, dossier.en_construction_conservation_extension)
- end
-
- # Update task as completed. If you remove the line below, the task will
- # run with every deploy (or every time you call after_party:run).
- AfterParty::TaskRecord
- .create version: AfterParty::TaskRecorder.new(__FILE__).timestamp
- end
-end
diff --git a/spec/models/dossier_spec.rb b/spec/models/dossier_spec.rb
index f4db5f69f..ac82dd094 100644
--- a/spec/models/dossier_spec.rb
+++ b/spec/models/dossier_spec.rb
@@ -52,15 +52,6 @@ describe Dossier do
is_expected.to include(just_expired_dossier)
is_expected.to include(long_expired_dossier)
end
-
- context 'does not include an expiring dossier that has been postponed' do
- before do
- expiring_dossier.update(conservation_extension: 1.month)
- expiring_dossier.reload
- end
-
- it { is_expected.not_to include(expiring_dossier) }
- end
end
describe 'en_construction_close_to_expiration' do
@@ -81,7 +72,7 @@ describe Dossier do
context 'does not include an expiring dossier that has been postponed' do
before do
- expiring_dossier.update(conservation_extension: 1.month)
+ expiring_dossier.update(en_construction_conservation_extension: 1.month)
expiring_dossier.reload
end