diff --git a/app/controllers/manager/dossiers_controller.rb b/app/controllers/manager/dossiers_controller.rb index 23068d4c4..dcbd30d62 100644 --- a/app/controllers/manager/dossiers_controller.rb +++ b/app/controllers/manager/dossiers_controller.rb @@ -1,5 +1,25 @@ module Manager class DossiersController < Manager::ApplicationController + # + # Administrate overrides + # + + # Override this if you have certain roles that require a subset + # this will be used to set the records shown on the `index` action. + def scoped_resource + if unfiltered_list? + # Don't display deleted dossiers in the unfiltered list… + Dossier + else + # … but allow them to be searched and displayed. + Dossier.unscope(:where) + end + end + + # + # Custom actions + # + def change_state_to_instruction dossier = Dossier.find(params[:id]) dossier.update(state: 'en_instruction', processed_at: nil, motivation: nil) @@ -8,5 +28,11 @@ module Manager flash[:notice] = "Le dossier #{dossier.id} est repassé en instruction" redirect_to manager_dossier_path(dossier) end + + private + + def unfiltered_list? + action_name == "index" && !params[:search] + end end end diff --git a/app/dashboards/dossier_dashboard.rb b/app/dashboards/dossier_dashboard.rb index 55a1de1ac..79040b995 100644 --- a/app/dashboards/dossier_dashboard.rb +++ b/app/dashboards/dossier_dashboard.rb @@ -14,6 +14,7 @@ class DossierDashboard < Administrate::BaseDashboard text_summary: Field::String.with_options(searchable: false), created_at: Field::DateTime, updated_at: Field::DateTime, + hidden_at: Field::DateTime, types_de_champ: TypesDeChampCollectionField, }.freeze @@ -38,6 +39,7 @@ class DossierDashboard < Administrate::BaseDashboard :types_de_champ, :created_at, :updated_at, + :hidden_at ].freeze # FORM_ATTRIBUTES diff --git a/app/views/manager/dossiers/show.html.erb b/app/views/manager/dossiers/show.html.erb index 5ed7252aa..900439f99 100644 --- a/app/views/manager/dossiers/show.html.erb +++ b/app/views/manager/dossiers/show.html.erb @@ -22,6 +22,9 @@ as well as a link to its edit page.