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:
Colin Darie 2024-02-21 11:21:45 +00:00 committed by GitHub
commit 76d903b04e
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
9 changed files with 47 additions and 27 deletions

View file

@ -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

View file

@ -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

View file

@ -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?

View file

@ -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

View file

@ -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)

View file

@ -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))

View file

@ -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'

View file

@ -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'

View file

@ -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