feat(procedure): only purge procedures without dossiers
This commit is contained in:
parent
914c2a62f8
commit
403e71b41f
9 changed files with 61 additions and 140 deletions
|
@ -16,39 +16,6 @@ module Manager
|
|||
end
|
||||
end
|
||||
|
||||
#
|
||||
# Custom actions
|
||||
#
|
||||
|
||||
def discard
|
||||
dossier = Dossier.find(params[:id])
|
||||
dossier.discard_and_keep_track!(current_super_admin, :manager_request)
|
||||
|
||||
logger.info("Le dossier #{dossier.id} est supprimé par #{current_super_admin.email}")
|
||||
flash[:notice] = "Le dossier #{dossier.id} a été supprimé."
|
||||
|
||||
redirect_to manager_dossier_path(dossier)
|
||||
end
|
||||
|
||||
def restore
|
||||
dossier = Dossier.with_discarded.find(params[:id])
|
||||
dossier.restore(current_super_admin)
|
||||
|
||||
flash[:notice] = "Le dossier #{dossier.id} a été restauré."
|
||||
|
||||
redirect_to manager_dossier_path(dossier)
|
||||
end
|
||||
|
||||
def repasser_en_instruction
|
||||
dossier = Dossier.find(params[:id])
|
||||
dossier.repasser_en_instruction(instructeur: current_super_admin)
|
||||
|
||||
logger.info("Le dossier #{dossier.id} est repassé en instruction par #{current_super_admin.email}")
|
||||
flash[:notice] = "Le dossier #{dossier.id} est repassé en instruction."
|
||||
|
||||
redirect_to manager_dossier_path(dossier)
|
||||
end
|
||||
|
||||
private
|
||||
|
||||
def unfiltered_list?
|
||||
|
|
|
@ -1,10 +1,7 @@
|
|||
class Cron::DiscardedProceduresDeletionJob < Cron::CronJob
|
||||
self.schedule_expression = "every day at 1 am"
|
||||
|
||||
def perform(*args)
|
||||
Procedure.discarded_expired.find_each do |procedure|
|
||||
procedure.dossiers.with_discarded.destroy_all
|
||||
procedure.destroy
|
||||
end
|
||||
def perform
|
||||
Procedure.purge_discarded
|
||||
end
|
||||
end
|
||||
|
|
|
@ -539,10 +539,6 @@ class Dossier < ApplicationRecord
|
|||
en_construction? || termine?
|
||||
end
|
||||
|
||||
def can_be_deleted_by_manager?
|
||||
kept? && can_be_deleted_by_user?
|
||||
end
|
||||
|
||||
def messagerie_available?
|
||||
!brouillon? && !user_deleted? && !archived
|
||||
end
|
||||
|
@ -704,10 +700,6 @@ class Dossier < ApplicationRecord
|
|||
termine? && hidden_by_administration? && hidden_by_user?
|
||||
end
|
||||
|
||||
def can_be_restored_by_manager?
|
||||
hidden_by_administration? || discarded? && !procedure.discarded?
|
||||
end
|
||||
|
||||
def expose_legacy_carto_api?
|
||||
procedure.expose_legacy_carto_api?
|
||||
end
|
||||
|
|
|
@ -649,7 +649,7 @@ class Procedure < ApplicationRecord
|
|||
end
|
||||
|
||||
def can_be_deleted_by_administrateur?
|
||||
brouillon? || dossiers.state_instruction_commencee.empty?
|
||||
brouillon? || dossiers.state_en_instruction.empty?
|
||||
end
|
||||
|
||||
def can_be_deleted_by_manager?
|
||||
|
@ -663,18 +663,25 @@ class Procedure < ApplicationRecord
|
|||
close!
|
||||
end
|
||||
|
||||
dossiers.each do |dossier|
|
||||
dossiers.termine.visible_by_administration.each do |dossier|
|
||||
dossier.discard_and_keep_track!(author, :procedure_removed)
|
||||
end
|
||||
|
||||
discard!
|
||||
end
|
||||
|
||||
def purge_discarded
|
||||
if !dossiers.with_discarded.exists?
|
||||
destroy
|
||||
end
|
||||
end
|
||||
|
||||
def self.purge_discarded
|
||||
discarded_expired.find_each(&:purge_discarded)
|
||||
end
|
||||
|
||||
def restore(author)
|
||||
if discarded? && undiscard
|
||||
dossiers.with_discarded.discarded.find_each do |dossier|
|
||||
dossier.restore(author)
|
||||
end
|
||||
dossiers.hidden_by_administration.find_each do |dossier|
|
||||
dossier.restore(author)
|
||||
end
|
||||
|
|
|
@ -26,17 +26,6 @@ as well as a link to its edit page.
|
|||
(Supprimé)
|
||||
<% end %>
|
||||
</h1>
|
||||
|
||||
<div>
|
||||
<% if dossier.accepte? %>
|
||||
<%= link_to 'Repasser en instruction', repasser_en_instruction_manager_dossier_path(dossier), method: :post, class: 'button', data: { confirm: "Confirmez vous le passage en instruction du dossier ?" } %>
|
||||
<% end %>
|
||||
<% if dossier.can_be_deleted_by_manager? %>
|
||||
<%= link_to 'Supprimer le dossier', discard_manager_dossier_path(dossier), method: :post, class: 'button', data: { confirm: "Confirmez vous la suppression du dossier ?" } %>
|
||||
<% elsif dossier.can_be_restored_by_manager? %>
|
||||
<%= link_to 'Restaurer le dossier', restore_manager_dossier_path(dossier), method: :post, class: 'button', data: { confirm: "Confirmez vous la restauration du dossier ?" } %>
|
||||
<% end %>
|
||||
</div>
|
||||
</header>
|
||||
|
||||
<section class="main-content__body">
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue