Merge pull request #10011 from adullact/feature-ouidou/admin_creation_delegation_review
ETQ gestionnaire d'admins: sépare les commentaires par origine + correctifs
This commit is contained in:
commit
76d903b04e
9 changed files with 47 additions and 27 deletions
|
@ -35,7 +35,9 @@ class GroupeGestionnaire::GroupeGestionnaireAdministrateurs::AdministrateurCompo
|
||||||
button_to "Révoquer l'accès administrateur",
|
button_to "Révoquer l'accès administrateur",
|
||||||
gestionnaire_groupe_gestionnaire_administrateur_path(@groupe_gestionnaire, @administrateur),
|
gestionnaire_groupe_gestionnaire_administrateur_path(@groupe_gestionnaire, @administrateur),
|
||||||
method: :delete,
|
method: :delete,
|
||||||
|
disabled: !@administrateur.can_be_deleted?,
|
||||||
class: 'fr-btn fr-btn--sm fr-btn--tertiary',
|
class: 'fr-btn fr-btn--sm fr-btn--tertiary',
|
||||||
|
title: @administrateur.can_be_deleted? ? "Supprimer" : "Cet administrateur a des démarches dont il est le seul admin et ne peut être supprimé",
|
||||||
form: { data: { turbo: true, turbo_confirm: "Supprimer « #{@administrateur.email} » en tant qu'administrateur ?" } }
|
form: { data: { turbo: true, turbo_confirm: "Supprimer « #{@administrateur.email} » en tant qu'administrateur ?" } }
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
|
@ -8,9 +8,11 @@ class GroupeGestionnaire::GroupeGestionnaireListCommentaires::CommentaireCompone
|
||||||
|
|
||||||
def email
|
def email
|
||||||
if @commentaire.sender == current_gestionnaire
|
if @commentaire.sender == current_gestionnaire
|
||||||
"Messages avec le groupe gestionnaire parent (#{@groupe_gestionnaire.parent.name})"
|
"Messages avec le groupe gestionnaire parent"
|
||||||
else
|
elsif @commentaire.groupe_gestionnaire_id.in?([@groupe_gestionnaire.parent_id, @groupe_gestionnaire.id])
|
||||||
@commentaire.sender_email
|
@commentaire.sender_email
|
||||||
|
else
|
||||||
|
"#{@commentaire.sender_email} (#{@commentaire.groupe_gestionnaire.name})"
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
@ -24,10 +26,6 @@ class GroupeGestionnaire::GroupeGestionnaireListCommentaires::CommentaireCompone
|
||||||
class: 'fr-btn'
|
class: 'fr-btn'
|
||||||
end
|
end
|
||||||
|
|
||||||
def groupe_gestionnaire_name
|
|
||||||
@commentaire.groupe_gestionnaire.name
|
|
||||||
end
|
|
||||||
|
|
||||||
def highlight?
|
def highlight?
|
||||||
commentaire_seen_at = current_gestionnaire.commentaire_seen_at(@groupe_gestionnaire, @commentaire.sender_id, @commentaire.sender_type)
|
commentaire_seen_at = current_gestionnaire.commentaire_seen_at(@groupe_gestionnaire, @commentaire.sender_id, @commentaire.sender_type)
|
||||||
commentaire_seen_at.nil? || commentaire_seen_at < @commentaire.created_at
|
commentaire_seen_at.nil? || commentaire_seen_at < @commentaire.created_at
|
||||||
|
|
|
@ -1,6 +1,4 @@
|
||||||
%tr{ id: dom_id(@commentaire) }
|
%tr{ id: dom_id(@commentaire) }
|
||||||
%td
|
|
||||||
= groupe_gestionnaire_name
|
|
||||||
%td
|
%td
|
||||||
= email
|
= email
|
||||||
- if highlight?
|
- if highlight?
|
||||||
|
|
|
@ -9,6 +9,9 @@ module Gestionnaires
|
||||||
.select("sender_id, sender_type, sender_email, groupe_gestionnaire_id, MAX(id) as id, MAX(created_at) as created_at")
|
.select("sender_id, sender_type, sender_email, groupe_gestionnaire_id, MAX(id) as id, MAX(created_at) as created_at")
|
||||||
.group(:sender_id, :sender_type, :sender_email, :groupe_gestionnaire_id)
|
.group(:sender_id, :sender_type, :sender_email, :groupe_gestionnaire_id)
|
||||||
.order("MAX(id) DESC")
|
.order("MAX(id) DESC")
|
||||||
|
@commentaires_parent_group = @commentaires.filter { |commentaire| commentaire.groupe_gestionnaire_id == @groupe_gestionnaire.parent_id }
|
||||||
|
@commentaires_children_groups = @commentaires.filter { |commentaire| commentaire.groupe_gestionnaire_id != @groupe_gestionnaire.parent_id && commentaire.groupe_gestionnaire_id != @groupe_gestionnaire.id }
|
||||||
|
@commentaires = @commentaires.filter { |commentaire| commentaire.groupe_gestionnaire_id == @groupe_gestionnaire.id }
|
||||||
end
|
end
|
||||||
|
|
||||||
def show
|
def show
|
||||||
|
|
|
@ -5,11 +5,9 @@
|
||||||
= t('show', scope: [:layouts, :breadcrumb])
|
= t('show', scope: [:layouts, :breadcrumb])
|
||||||
.fr-collapse#breadcrumb-1
|
.fr-collapse#breadcrumb-1
|
||||||
%ol.fr-breadcrumb__list
|
%ol.fr-breadcrumb__list
|
||||||
%li= link_to t('root', scope: [:layouts, :breadcrumb]), root_path, class: 'fr-breadcrumb__link'
|
|
||||||
- steps.each.with_index do |step, i|
|
- steps.each.with_index do |step, i|
|
||||||
- if i == steps.size - 1
|
- if i == steps.size - 1
|
||||||
%li{ aria: { current: "page" } }
|
%li= link_to step[0], '', { aria: { current: "page" } , class: 'fr-breadcrumb__link' }
|
||||||
%span.fr-breadcrumb__link= step[0]
|
|
||||||
- else
|
- else
|
||||||
%li= link_to step[0], step[1], class: 'fr-breadcrumb__link'
|
%li= link_to step[0], step[1], class: 'fr-breadcrumb__link'
|
||||||
- if defined?(metadatas)
|
- if defined?(metadatas)
|
||||||
|
|
|
@ -0,0 +1,8 @@
|
||||||
|
%table.fr-table.width-100.mt-3
|
||||||
|
%thead
|
||||||
|
%tr
|
||||||
|
%th= 'Adresse email'
|
||||||
|
%th= 'Dernier message'
|
||||||
|
%th
|
||||||
|
%tbody#commentaires
|
||||||
|
= render(GroupeGestionnaire::GroupeGestionnaireListCommentaires::CommentaireComponent.with_collection(commentaires, groupe_gestionnaire: groupe_gestionnaire))
|
|
@ -6,19 +6,25 @@
|
||||||
.container
|
.container
|
||||||
%h1 Messagerie de « #{@groupe_gestionnaire.name} »
|
%h1 Messagerie de « #{@groupe_gestionnaire.name} »
|
||||||
|
|
||||||
%table.fr-table.width-100.mt-3
|
= render partial: 'list_commentaires', locals: { commentaires: @commentaires, groupe_gestionnaire: @groupe_gestionnaire }
|
||||||
%thead
|
|
||||||
%tr
|
- if @commentaires_children_groups.present?
|
||||||
%th= 'Groupe gestionnaire'
|
%h5 Messagerie des groupes enfants
|
||||||
%th= 'Adresse email'
|
= render partial: 'list_commentaires', locals: { commentaires: @commentaires_children_groups, groupe_gestionnaire: @groupe_gestionnaire }
|
||||||
%th= 'Dernier message'
|
|
||||||
%th
|
- if @groupe_gestionnaire.parent_id
|
||||||
%tbody#commentaires
|
%h5 Messagerie du groupe parent « #{@groupe_gestionnaire.parent.name} »
|
||||||
= render(GroupeGestionnaire::GroupeGestionnaireListCommentaires::CommentaireComponent.with_collection(@commentaires, groupe_gestionnaire: @groupe_gestionnaire))
|
- if @commentaires_parent_group.present?
|
||||||
- if @groupe_gestionnaire.parent_id && !current_gestionnaire.groupe_gestionnaires.where(id: @groupe_gestionnaire.parent_id).exists? && @last_commentaire.nil?
|
= render partial: 'list_commentaires', locals: { commentaires: @commentaires_parent_group, groupe_gestionnaire: @groupe_gestionnaire }
|
||||||
%tr
|
- else
|
||||||
%td= @groupe_gestionnaire.parent.name
|
%table.fr-table.width-100.mt-3
|
||||||
%td= "Messages avec le groupe gestionnaire parent (#{@groupe_gestionnaire.parent.name})"
|
%thead
|
||||||
%td
|
%tr
|
||||||
%td
|
%th= 'Adresse email'
|
||||||
= link_to 'Voir', parent_groupe_gestionnaire_gestionnaire_groupe_gestionnaire_commentaires_path(@groupe_gestionnaire), class: 'fr-btn'
|
%th= 'Dernier message'
|
||||||
|
%th
|
||||||
|
%tr
|
||||||
|
%td= "Messages avec le groupe gestionnaire parent"
|
||||||
|
%td
|
||||||
|
%td
|
||||||
|
= link_to 'Voir', parent_groupe_gestionnaire_gestionnaire_groupe_gestionnaire_commentaires_path(@groupe_gestionnaire), class: 'fr-btn'
|
||||||
|
|
|
@ -15,6 +15,8 @@
|
||||||
Nombre de gestionnaires
|
Nombre de gestionnaires
|
||||||
%th{ scope: "col" }
|
%th{ scope: "col" }
|
||||||
Nombre d'administrateurs
|
Nombre d'administrateurs
|
||||||
|
%th{ scope: "col" }
|
||||||
|
Arborescence
|
||||||
|
|
||||||
%tbody
|
%tbody
|
||||||
- @groupe_gestionnaires.order(:name).each do |groupe_gestionnaire|
|
- @groupe_gestionnaires.order(:name).each do |groupe_gestionnaire|
|
||||||
|
@ -25,3 +27,5 @@
|
||||||
= groupe_gestionnaire.gestionnaire_ids.size
|
= groupe_gestionnaire.gestionnaire_ids.size
|
||||||
%td
|
%td
|
||||||
= groupe_gestionnaire.administrateur_ids.size
|
= groupe_gestionnaire.administrateur_ids.size
|
||||||
|
%td
|
||||||
|
= link_to 'Voir', tree_structure_gestionnaire_groupe_gestionnaire_path(groupe_gestionnaire), class: 'fr-btn'
|
||||||
|
|
|
@ -7,6 +7,9 @@
|
||||||
%h1 Arborescence de « #{@groupe_gestionnaire.name} »
|
%h1 Arborescence de « #{@groupe_gestionnaire.name} »
|
||||||
|
|
||||||
.fr-mt-4w
|
.fr-mt-4w
|
||||||
|
- if @groupe_gestionnaire.parent_id
|
||||||
|
%ul
|
||||||
|
%li= @groupe_gestionnaire.parent.name
|
||||||
%ul
|
%ul
|
||||||
- @tree_structure.each do |parent, children|
|
- @tree_structure.each do |parent, children|
|
||||||
%li
|
%li
|
||||||
|
|
Loading…
Reference in a new issue