feat: US4.3.8 administrateur management

This commit is contained in:
seb-by-ouidou 2023-10-06 15:12:00 +00:00 committed by seb-by-ouidou
parent 51c5a8d0f7
commit 564c3c04fa
33 changed files with 449 additions and 76 deletions

View file

@ -0,0 +1,5 @@
class GroupeGestionnaire::Card::AdministrateursComponent < ApplicationComponent
def initialize(groupe_gestionnaire:)
@groupe_gestionnaire = groupe_gestionnaire
end
end

View file

@ -0,0 +1,5 @@
---
fr:
title:
one: Administrateur
other: Administrateurs

View file

@ -0,0 +1,12 @@
.fr-col-6.fr-col-md-4.fr-col-lg-3
= link_to gestionnaire_groupe_gestionnaire_administrateurs_path(@groupe_gestionnaire), id: 'administrateurs', class: 'fr-tile fr-enlarge-link' do
.fr-tile__body.flex.column.align-center.justify-between
%div
%span.icon.accept
%p.fr-tile-status-accept Validé
%div
.line-count.fr-my-1w
%p.fr-tag= @groupe_gestionnaire.administrateurs.size
%h3.fr-h6
= t('.title', count: @groupe_gestionnaire.administrateurs.size)
%p.fr-btn.fr-btn--tertiary= t('views.shared.actions.edit')

View file

@ -0,0 +1,42 @@
class GroupeGestionnaire::GroupeGestionnaireAdministrateurs::AdministrateurComponent < ApplicationComponent
include ApplicationHelper
def initialize(groupe_gestionnaire:, administrateur:)
@groupe_gestionnaire = groupe_gestionnaire
@administrateur = administrateur
end
def email
if @administrateur == current_gestionnaire
"#{@administrateur.email} (Cest vous !)"
else
@administrateur.email
end
end
def created_at
try_format_datetime(@administrateur.created_at)
end
def registration_state
@administrateur.registration_state
end
def remove_button
if is_there_at_least_another_active_admin?
button_to 'Retirer',
gestionnaire_groupe_gestionnaire_administrateur_path(@groupe_gestionnaire, @administrateur),
method: :delete,
class: 'button',
form: { data: { turbo: true, turbo_confirm: "Retirer « #{@administrateur.email} » des administrateurs de « #{@groupe_gestionnaire.name} » ?" } }
end
end
def is_there_at_least_another_active_admin?
if @administrateur.active?
@groupe_gestionnaire.administrateurs.count(&:active?) > 1
else
@groupe_gestionnaire.administrateurs.count(&:active?) >= 1
end
end
end

View file

@ -0,0 +1,5 @@
%tr{ id: dom_id(@administrateur) }
%td= email
%td= created_at
%td= registration_state
%td= remove_button