Merge pull request #9345 from adullact/feature-ouidou/existing_procedure_hidden_as_template
ETQ superadmin, je peux masquer une démarche de la liste des démarches proposées à la création
This commit is contained in:
commit
f019f1e316
13 changed files with 113 additions and 7 deletions
|
@ -79,6 +79,7 @@ module Administrateurs
|
|||
|
||||
significant_procedure_ids = Procedure
|
||||
.publiees_ou_closes
|
||||
.where(hidden_at_as_template: nil)
|
||||
.where('unaccent(libelle) ILIKE unaccent(?)', "%#{query}%")
|
||||
.joins(:dossiers)
|
||||
.group("procedures.id")
|
||||
|
@ -402,7 +403,7 @@ module Administrateurs
|
|||
def administrateurs
|
||||
@filter = ProceduresFilter.new(current_administrateur, params)
|
||||
pids = AdministrateursProcedure.select(:administrateur_id).where(procedure: filter_procedures(@filter).map { |p| p["id"] })
|
||||
@admins = Administrateur.includes(:user, :procedures).where(id: pids)
|
||||
@admins = Administrateur.includes(:user, :procedures).where(id: pids, procedures: { hidden_at_as_template: nil })
|
||||
@admins = @admins.where('unaccent(users.email) ILIKE unaccent(?)', "%#{@filter.email}%") if @filter.email.present?
|
||||
@admins = paginate(@admins, 'users.email')
|
||||
end
|
||||
|
@ -417,6 +418,7 @@ module Administrateurs
|
|||
|
||||
procedures_result = Procedure.select(:id).left_joins(:procedures_zones).distinct.publiees_ou_closes
|
||||
procedures_result = procedures_result.where(procedures_zones: { zone_id: filter.zone_ids }) if filter.zone_ids.present?
|
||||
procedures_result = procedures_result.where(hidden_at_as_template: nil)
|
||||
procedures_result = procedures_result.where(aasm_state: filter.statuses) if filter.statuses.present?
|
||||
procedures_result = procedures_result.where("tags @> ARRAY[?]::text[]", filter.tags) if filter.tags.present?
|
||||
procedures_result = procedures_result.where('published_at >= ?', filter.from_publication_date) if filter.from_publication_date.present?
|
||||
|
|
|
@ -27,6 +27,18 @@ module Manager
|
|||
redirect_to manager_procedure_path(procedure)
|
||||
end
|
||||
|
||||
def hide_as_template
|
||||
procedure.hide_as_template!
|
||||
flash[:notice] = "Démarche non visible dans les modèles."
|
||||
redirect_to manager_procedure_path(procedure)
|
||||
end
|
||||
|
||||
def unhide_as_template
|
||||
procedure.unhide_as_template!
|
||||
flash[:notice] = "Démarche visible dans les modèles."
|
||||
redirect_to manager_procedure_path(procedure)
|
||||
end
|
||||
|
||||
def discard
|
||||
procedure.discard_and_keep_track!(current_super_admin)
|
||||
|
||||
|
|
|
@ -5,8 +5,9 @@ class DubiousProcedureDashboard < Administrate::BaseDashboard
|
|||
id: Field::Number,
|
||||
libelle: Field::String,
|
||||
dubious_champs: Field::String,
|
||||
aasm_state: Field::String
|
||||
aasm_state: Field::String,
|
||||
hidden_at_as_template: Field::DateTime.with_options(format: "%d/%m/%Y")
|
||||
}.freeze
|
||||
COLLECTION_ATTRIBUTES = [:id, :libelle, :dubious_champs, :aasm_state].freeze
|
||||
COLLECTION_ATTRIBUTES = [:id, :libelle, :dubious_champs, :aasm_state, :hidden_at_as_template].freeze
|
||||
COLLECTION_FILTERS = {}.freeze
|
||||
end
|
||||
|
|
|
@ -31,6 +31,7 @@ class ProcedureDashboard < Administrate::BaseDashboard
|
|||
hidden_at: Field::DateTime,
|
||||
closed_at: Field::DateTime,
|
||||
whitelisted_at: Field::DateTime,
|
||||
hidden_at_as_template: Field::DateTime,
|
||||
service: Field::BelongsTo,
|
||||
initiated_mail_template: MailTemplateField,
|
||||
received_mail_template: MailTemplateField,
|
||||
|
@ -84,6 +85,7 @@ class ProcedureDashboard < Administrate::BaseDashboard
|
|||
:published_at,
|
||||
:whitelisted_at,
|
||||
:hidden_at,
|
||||
:hidden_at_as_template,
|
||||
:closed_at,
|
||||
:unpublished_at,
|
||||
:published_types_de_champ_public,
|
||||
|
|
|
@ -2,7 +2,7 @@ class DubiousProcedure
|
|||
extend ActiveModel::Naming
|
||||
extend ActiveModel::Translation
|
||||
|
||||
attr_accessor :id, :libelle, :dubious_champs, :aasm_state
|
||||
attr_accessor :id, :libelle, :dubious_champs, :aasm_state, :hidden_at_as_template
|
||||
|
||||
FORBIDDEN_KEYWORDS = [
|
||||
'NIR', 'RNIPP', 'race', 'religion', 'RIB',
|
||||
|
@ -19,7 +19,7 @@ class DubiousProcedure
|
|||
def self.all
|
||||
procedures_with_forbidden_tdcs_sql = TypeDeChamp
|
||||
.joins(:procedure)
|
||||
.select("string_agg(types_de_champ.libelle, ' - ') as dubious_champs, procedures.id as procedure_id, procedures.libelle as procedure_libelle, procedures.aasm_state as procedure_aasm_state")
|
||||
.select("string_agg(types_de_champ.libelle, ' - ') as dubious_champs, procedures.id as procedure_id, procedures.libelle as procedure_libelle, procedures.aasm_state as procedure_aasm_state, procedures.hidden_at_as_template as procedure_hidden_at_as_template")
|
||||
.where("unaccent(types_de_champ.libelle) ~* unaccent(?)", forbidden_regexp)
|
||||
.where(type_champ: [TypeDeChamp.type_champs.fetch(:text), TypeDeChamp.type_champs.fetch(:textarea)])
|
||||
.where(procedures: { closed_at: nil, whitelisted_at: nil })
|
||||
|
@ -33,6 +33,7 @@ class DubiousProcedure
|
|||
p.dubious_champs = procedure["dubious_champs"]
|
||||
p.libelle = procedure["procedure_libelle"]
|
||||
p.aasm_state = procedure["procedure_aasm_state"]
|
||||
p.hidden_at_as_template = procedure["procedure_hidden_at_as_template"]
|
||||
p
|
||||
end
|
||||
end
|
||||
|
|
|
@ -540,6 +540,19 @@ class Procedure < ApplicationRecord
|
|||
whitelisted_at.present?
|
||||
end
|
||||
|
||||
def hidden_as_template?
|
||||
hidden_at_as_template.present?
|
||||
end
|
||||
|
||||
def hide_as_template!
|
||||
touch(:hidden_at_as_template)
|
||||
end
|
||||
|
||||
def unhide_as_template!
|
||||
self.hidden_at_as_template = nil
|
||||
save
|
||||
end
|
||||
|
||||
def total_dossier
|
||||
self.dossiers.state_not_brouillon.size
|
||||
end
|
||||
|
|
|
@ -42,7 +42,7 @@
|
|||
%td
|
||||
%button.fr-icon-add-line.fr-icon--sm.fr-mr-1w.fr-mb-1w.fr-text-action-high--blue-france{ 'aria-hidden': 'true', 'data-expand-target': 'icon' }
|
||||
%td= admin.email
|
||||
%td= admin.procedures.count
|
||||
%td= admin.procedures.size
|
||||
%td= l(admin.created_at, format: :message_date_without_time)
|
||||
%tr.hidden{ 'data-expand-target': 'content' }
|
||||
%td.fr-highlight--beige-gris-galet{ colspan: '6' }
|
||||
|
|
|
@ -41,6 +41,12 @@ as well as a link to its edit page.
|
|||
<%= link_to 'whitelister', whitelist_manager_procedure_path(procedure), method: :post, class: 'button' %>
|
||||
<% end %>
|
||||
|
||||
<% if procedure.hidden_as_template? %>
|
||||
<%= link_to 'autoriser l\'affichage dans les modèles', unhide_as_template_manager_procedure_path(procedure), method: :post, class: 'button' %>
|
||||
<% else %>
|
||||
<%= link_to 'masquer l\'affichage dans les modèles', hide_as_template_manager_procedure_path(procedure), method: :post, class: 'button' %>
|
||||
<% end %>
|
||||
|
||||
<% if procedure.can_be_deleted_by_manager? %>
|
||||
<%= link_to 'Supprimer la démarche', discard_manager_procedure_path(procedure), method: :post, class: 'button', data: { confirm: "Confirmez-vous la suppression de la démarche ?" } %>
|
||||
<% elsif procedure.discarded? %>
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue