create a method to extend and restore
This commit is contained in:
parent
ae1a6e1b3d
commit
b820577461
8 changed files with 27 additions and 16 deletions
|
@ -18,11 +18,15 @@ module Instructeurs
|
||||||
after_action :mark_annotations_privees_as_read, only: [:annotations_privees, :update_annotations]
|
after_action :mark_annotations_privees_as_read, only: [:annotations_privees, :update_annotations]
|
||||||
|
|
||||||
def extend_conservation
|
def extend_conservation
|
||||||
dossier.extend_conservation(1.month, current_instructeur)
|
dossier.extend_conservation(1.month)
|
||||||
flash[:notice] = t('views.instructeurs.dossiers.archived_dossier')
|
flash[:notice] = t('views.instructeurs.dossiers.archived_dossier')
|
||||||
redirect_back(fallback_location: instructeur_dossier_path(@dossier.procedure, @dossier))
|
redirect_back(fallback_location: instructeur_dossier_path(@dossier.procedure, @dossier))
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def extend_conservation_and_restore
|
||||||
|
dossier.extend_conservation_and_restore(1.month, current_instructeur)
|
||||||
|
end
|
||||||
|
|
||||||
def geo_data
|
def geo_data
|
||||||
send_data dossier.to_feature_collection.to_json,
|
send_data dossier.to_feature_collection.to_json,
|
||||||
type: 'application/json',
|
type: 'application/json',
|
||||||
|
|
|
@ -254,11 +254,15 @@ module Users
|
||||||
end
|
end
|
||||||
|
|
||||||
def extend_conservation
|
def extend_conservation
|
||||||
dossier.extend_conservation(dossier.procedure.duree_conservation_dossiers_dans_ds.months, current_user)
|
dossier.extend_conservation(dossier.procedure.duree_conservation_dossiers_dans_ds.months)
|
||||||
flash[:notice] = t('views.users.dossiers.archived_dossier', duree_conservation_dossiers_dans_ds: dossier.procedure.duree_conservation_dossiers_dans_ds)
|
flash[:notice] = t('views.users.dossiers.archived_dossier', duree_conservation_dossiers_dans_ds: dossier.procedure.duree_conservation_dossiers_dans_ds)
|
||||||
redirect_back(fallback_location: dossier_path(@dossier))
|
redirect_back(fallback_location: dossier_path(@dossier))
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def extend_conservation_and_restore
|
||||||
|
dossier.extend_conservation_and_restore(conservation_extension, author)
|
||||||
|
end
|
||||||
|
|
||||||
def modifier
|
def modifier
|
||||||
@dossier = dossier_with_champs
|
@dossier = dossier_with_champs
|
||||||
end
|
end
|
||||||
|
|
|
@ -92,7 +92,7 @@ class BatchOperation < ApplicationRecord
|
||||||
when BatchOperation.operations.fetch(:follow)
|
when BatchOperation.operations.fetch(:follow)
|
||||||
instructeur.follow(dossier)
|
instructeur.follow(dossier)
|
||||||
when BatchOperation.operations.fetch(:repousser_expiration)
|
when BatchOperation.operations.fetch(:repousser_expiration)
|
||||||
dossier.extend_conservation(1.month, instructeur)
|
dossier.extend_conservation(1.month)
|
||||||
when BatchOperation.operations.fetch(:repasser_en_construction)
|
when BatchOperation.operations.fetch(:repasser_en_construction)
|
||||||
dossier.repasser_en_construction!(instructeur: instructeur)
|
dossier.repasser_en_construction!(instructeur: instructeur)
|
||||||
when BatchOperation.operations.fetch(:unfollow)
|
when BatchOperation.operations.fetch(:unfollow)
|
||||||
|
|
|
@ -681,16 +681,17 @@ class Dossier < ApplicationRecord
|
||||||
brouillon? || en_construction?
|
brouillon? || en_construction?
|
||||||
end
|
end
|
||||||
|
|
||||||
def extend_conservation(conservation_extension, author)
|
def extend_conservation(conservation_extension)
|
||||||
update(conservation_extension: self.conservation_extension + conservation_extension,
|
update(conservation_extension: self.conservation_extension + conservation_extension,
|
||||||
brouillon_close_to_expiration_notice_sent_at: nil,
|
brouillon_close_to_expiration_notice_sent_at: nil,
|
||||||
en_construction_close_to_expiration_notice_sent_at: nil,
|
en_construction_close_to_expiration_notice_sent_at: nil,
|
||||||
termine_close_to_expiration_notice_sent_at: nil)
|
termine_close_to_expiration_notice_sent_at: nil)
|
||||||
|
end
|
||||||
|
|
||||||
if hidden_by_expired?
|
def extend_conservation_and_restore(conservation_extension, author)
|
||||||
update(hidden_by_expired_at: nil, hidden_by_reason: nil)
|
extend_conservation(conservation_extension)
|
||||||
restore(author)
|
update(hidden_by_expired_at: nil, hidden_by_reason: nil)
|
||||||
end
|
restore(current_user)
|
||||||
end
|
end
|
||||||
|
|
||||||
def show_procedure_state_warning?
|
def show_procedure_state_warning?
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
- if hidden_by_administration && hidden_by_expired
|
- if hidden_by_administration && hidden_by_expired
|
||||||
%li
|
%li
|
||||||
= button_to repousser_expiration_instructeur_dossier_path(procedure_id, dossier_id), method: :patch, class: "fr-btn fr-icon-refresh-line" do
|
= button_to repousser_expiration_and_restore_instructeur_dossier_path(procedure_id, dossier_id), method: :patch, class: "fr-btn fr-icon-refresh-line" do
|
||||||
= t('views.instructeurs.dossiers.restore_and_extend')
|
= t('views.instructeurs.dossiers.restore_and_extend')
|
||||||
|
|
||||||
- elsif hidden_by_administration
|
- elsif hidden_by_administration
|
||||||
|
|
|
@ -108,7 +108,7 @@
|
||||||
|
|
||||||
- else
|
- else
|
||||||
- if dossier.expiration_can_be_extended?
|
- if dossier.expiration_can_be_extended?
|
||||||
= button_to users_dossier_repousser_expiration_path(dossier), class: 'fr-btn fr-btn--sm' do
|
= button_to users_dossier_extend_conservation_and_restore_path(dossier), class: 'fr-btn fr-btn--sm' do
|
||||||
Restaurer et étendre la conservation
|
Restaurer et étendre la conservation
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -268,6 +268,7 @@ Rails.application.routes.draw do
|
||||||
get '/carte' => 'carte#show'
|
get '/carte' => 'carte#show'
|
||||||
post '/carte' => 'carte#save'
|
post '/carte' => 'carte#save'
|
||||||
post '/repousser-expiration' => 'dossiers#extend_conservation'
|
post '/repousser-expiration' => 'dossiers#extend_conservation'
|
||||||
|
post '/repousser-expiration-and-restore' => 'dossiers#extend_conservation_and_restore'
|
||||||
end
|
end
|
||||||
|
|
||||||
# Redirection of legacy "/users/dossiers" route to "/dossiers"
|
# Redirection of legacy "/users/dossiers" route to "/dossiers"
|
||||||
|
@ -489,6 +490,7 @@ Rails.application.routes.draw do
|
||||||
member do
|
member do
|
||||||
resources :commentaires, only: [:destroy]
|
resources :commentaires, only: [:destroy]
|
||||||
post 'repousser-expiration' => 'dossiers#extend_conservation'
|
post 'repousser-expiration' => 'dossiers#extend_conservation'
|
||||||
|
post 'repousser-expiration-and-restore' => 'dossiers#extend_conservation_and_restore'
|
||||||
get 'geo_data'
|
get 'geo_data'
|
||||||
get 'apercu_attestation'
|
get 'apercu_attestation'
|
||||||
get 'bilans_bdf'
|
get 'bilans_bdf'
|
||||||
|
|
|
@ -107,8 +107,8 @@ describe Dossier, type: :model do
|
||||||
|
|
||||||
context 'does not include an expiring dossier that has been postponed' do
|
context 'does not include an expiring dossier that has been postponed' do
|
||||||
before do
|
before do
|
||||||
expiring_dossier.extend_conservation(1.month, user)
|
expiring_dossier.extend_conservation(1.month)
|
||||||
expiring_dossier_with_notification.extend_conservation(1.month, user)
|
expiring_dossier_with_notification.extend_conservation(1.month)
|
||||||
expiring_dossier.reload
|
expiring_dossier.reload
|
||||||
expiring_dossier_with_notification.reload
|
expiring_dossier_with_notification.reload
|
||||||
end
|
end
|
||||||
|
@ -158,8 +158,8 @@ describe Dossier, type: :model do
|
||||||
|
|
||||||
context 'does not include an expiring dossier that has been postponed' do
|
context 'does not include an expiring dossier that has been postponed' do
|
||||||
before do
|
before do
|
||||||
expiring_dossier.extend_conservation(1.month, user)
|
expiring_dossier.extend_conservation(1.month)
|
||||||
expiring_dossier_with_notification.extend_conservation(1.month, user)
|
expiring_dossier_with_notification.extend_conservation(1.month)
|
||||||
expiring_dossier.reload
|
expiring_dossier.reload
|
||||||
expiring_dossier_with_notification.reload
|
expiring_dossier_with_notification.reload
|
||||||
end
|
end
|
||||||
|
@ -218,8 +218,8 @@ describe Dossier, type: :model do
|
||||||
|
|
||||||
context 'does not include an expiring dossier that has been postponed' do
|
context 'does not include an expiring dossier that has been postponed' do
|
||||||
before do
|
before do
|
||||||
expiring_dossier.extend_conservation(1.month, user)
|
expiring_dossier.extend_conservation(1.month)
|
||||||
expiring_dossier_with_notification.extend_conservation(1.month, user)
|
expiring_dossier_with_notification.extend_conservation(1.month)
|
||||||
expiring_dossier.reload
|
expiring_dossier.reload
|
||||||
expiring_dossier_with_notification.reload
|
expiring_dossier_with_notification.reload
|
||||||
end
|
end
|
||||||
|
|
Loading…
Add table
Reference in a new issue