feat: as gestionnaire, contact gestionnaire of parent groupe

This commit is contained in:
seb-by-ouidou 2023-12-10 17:25:58 +00:00 committed by seb-by-ouidou
parent 641a33e1e0
commit fba3cbe331
14 changed files with 183 additions and 32 deletions

View file

@ -9,5 +9,5 @@
%ul.messages-list{ data: { controller: 'scroll-to' } }
- current_administrateur.commentaire_groupe_gestionnaires.where(groupe_gestionnaire: @groupe_gestionnaire).each do |commentaire|
%li.message{ class: commentaire_is_from_me_class(commentaire, current_administrateur), id: dom_id(commentaire) }
= render(GroupeGestionnaire::GroupeGestionnaireCommentaires::CommentaireComponent.new(commentaire: commentaire, connected_user: current_administrateur, is_gestionnaire: false, commentaire_seen_at: @commentaire_seen_at))
= render(GroupeGestionnaire::GroupeGestionnaireCommentaires::CommentaireComponent.new(commentaire: commentaire, connected_user: current_administrateur, commentaire_seen_at: @commentaire_seen_at))
= render partial: "shared/groupe_gestionnaires/commentaires/form", locals: { commentaire: @commentaire, form_url: admin_groupe_gestionnaire_create_commentaire_path }

View file

@ -13,4 +13,13 @@
%th= 'Dernier message'
%th
%tbody#commentaires
= render(GroupeGestionnaire::GroupeGestionnaireListCommentaires::CommentaireComponent.with_collection(@groupe_gestionnaire.commentaire_groupe_gestionnaires.select("sender_id, sender_type, sender_email, MAX(id) as id, MAX(created_at) as created_at").group(:sender_id, :sender_type, :sender_email).order("MAX(id) DESC"), groupe_gestionnaire: @groupe_gestionnaire))
- commentaires = @groupe_gestionnaire.current_commentaires_groupe_and_children_commentaires_groupe
- if @groupe_gestionnaire.parent_id && !current_gestionnaire.groupe_gestionnaires.where(id: @groupe_gestionnaire.parent_id).exists?
- commentaires = commentaires.or(CommentaireGroupeGestionnaire.where(groupe_gestionnaire_id: @groupe_gestionnaire.id, sender: current_gestionnaire))
= render(GroupeGestionnaire::GroupeGestionnaireListCommentaires::CommentaireComponent.with_collection(commentaires.select("sender_id, sender_type, sender_email, MAX(id) as id, MAX(created_at) as created_at").group(:sender_id, :sender_type, :sender_email).order("MAX(id) DESC"), groupe_gestionnaire: @groupe_gestionnaire))
- if @groupe_gestionnaire.parent_id && !current_gestionnaire.groupe_gestionnaires.where(id: @groupe_gestionnaire.parent_id).exists? && @last_commentaire.nil?
%tr
%td= "Messages avec le groupe gestionnaire parent (#{@groupe_gestionnaire.parent.name})"
%td
%td
= link_to 'Voir', parent_groupe_gestionnaire_gestionnaire_groupe_gestionnaire_commentaires_path(@groupe_gestionnaire), class: 'fr-btn fr-btn--sm fr-btn--tertiary'

View file

@ -0,0 +1,15 @@
= render partial: 'gestionnaires/breadcrumbs',
locals: { steps: [['Groupes gestionnaire', gestionnaire_groupe_gestionnaires_path],
["#{@groupe_gestionnaire.name.truncate_words(10)}", gestionnaire_groupe_gestionnaire_path(@groupe_gestionnaire)],
["Messagerie", gestionnaire_groupe_gestionnaire_commentaires_path(@groupe_gestionnaire)],
["Messages avec le groupe gestionnaire parent (#{@groupe_gestionnaire.parent.name})"]], preview: false }
.container
%h1 Messages avec le groupe gestionnaire parent « #{ "(#{@groupe_gestionnaire.parent.name})" } »
.messagerie.container
- unless (commentaires = @groupe_gestionnaire.commentaire_groupe_gestionnaires.where(sender_id: current_gestionnaire.id, sender_type: "Gestionnaire")).empty?
%ul.messages-list{ data: { controller: 'scroll-to' } }
- commentaires.each do |commentaire|
%li.message{ class: commentaire_is_from_me_class(commentaire, current_gestionnaire), id: dom_id(commentaire) }
= render(GroupeGestionnaire::GroupeGestionnaireCommentaires::CommentaireComponent.new(commentaire: commentaire, connected_user: current_gestionnaire, commentaire_seen_at: @commentaire_seen_at))
= render partial: "shared/groupe_gestionnaires/commentaires/form", locals: { commentaire: @commentaire, form_url: create_parent_groupe_gestionnaire_gestionnaire_groupe_gestionnaire_commentaires_path(@groupe_gestionnaire) }

View file

@ -8,7 +8,7 @@
%h1 Messages de « #{ @last_commentaire.sender_email } »
.messagerie.container
%ul.messages-list{ data: { controller: 'scroll-to' } }
- @groupe_gestionnaire.commentaire_groupe_gestionnaires.where(sender_id: @last_commentaire.sender_id, sender_type: @last_commentaire.sender_type).each do |commentaire|
- @groupe_gestionnaire.current_commentaires_groupe_and_children_commentaires_groupe.where(sender_id: @last_commentaire.sender_id, sender_type: @last_commentaire.sender_type).each do |commentaire|
%li.message{ class: commentaire_is_from_me_class(commentaire, current_gestionnaire), id: dom_id(commentaire) }
= render(GroupeGestionnaire::GroupeGestionnaireCommentaires::CommentaireComponent.new(commentaire: commentaire, connected_user: current_gestionnaire, commentaire_seen_at: @commentaire_seen_at))
- if @last_commentaire.sender