Move admin/assigns to the new UI like groupe_instructeurs

This commit is contained in:
kara Diaby 2020-06-12 18:16:07 +02:00
parent 6311fcfa2f
commit 6b07cc0659
19 changed files with 154 additions and 298 deletions

View file

@ -1,53 +0,0 @@
class Admin::AssignsController < AdminController
include SmartListing::Helper::ControllerExtensions
helper SmartListing::Helper
before_action :retrieve_procedure
ASSIGN = 'assign'
NOT_ASSIGN = 'not_assign'
def show
assign_scope = @procedure.defaut_groupe_instructeur.instructeurs
@instructeurs_assign = smart_listing_create :instructeurs_assign,
assign_scope,
partial: "admin/assigns/list_assign",
array: true
not_assign_scope = current_administrateur.instructeurs.where.not(id: assign_scope.ids)
if params[:filter].present?
filter = params[:filter].downcase.strip
not_assign_scope = not_assign_scope.where('users.email LIKE ?', "%#{filter}%")
end
@instructeurs_not_assign = smart_listing_create :instructeurs_not_assign,
not_assign_scope,
partial: "admin/assigns/list_not_assign",
array: true
end
def update
instructeur = Instructeur.find(params[:instructeur_id])
procedure = Procedure.find(params[:procedure_id])
to = params[:to]
case to
when ASSIGN
if instructeur.assign_to_procedure(procedure)
flash.notice = "L'instructeur a bien été affecté"
else
flash.alert = "L'instructeur a déjà été affecté"
end
when NOT_ASSIGN
if instructeur.remove_from_procedure(procedure)
flash.notice = "L'instructeur a bien été désaffecté"
else
flash.alert = "L'instructeur a déjà été désaffecté"
end
end
redirect_to admin_procedure_assigns_path, procedure_id: params[:procedure_id]
end
end

View file

@ -13,6 +13,7 @@ class Admin::InstructeursController < AdminController
email = params[:instructeur][:email].downcase
@instructeur = Instructeur.by_email(email)
procedure_id = params[:procedure_id]
procedure = Procedure.find_by(id: procedure_id)
if @instructeur.nil?
invite_instructeur(email)
@ -21,7 +22,7 @@ class Admin::InstructeursController < AdminController
end
if procedure_id.present?
redirect_to admin_procedure_assigns_path(procedure_id: procedure_id)
redirect_to procedure_groupe_instructeur_path(procedure, procedure.defaut_groupe_instructeur)
else
redirect_to admin_instructeurs_path
end

View file

@ -100,16 +100,27 @@ module NewAdministrateur
create_instructeur(instructeur_email)
end
groupe_instructeur.instructeurs << instructeurs
if procedure.routee?
groupe_instructeur.instructeurs << instructeurs
GroupeInstructeurMailer
.add_instructeurs(groupe_instructeur, instructeurs, current_user.email)
.deliver_later
GroupeInstructeurMailer
.add_instructeurs(groupe_instructeur, instructeurs, current_user.email)
.deliver_later
flash[:notice] = t('.assignment',
count: email_to_adds.count,
value: email_to_adds.join(', '),
groupe: groupe_instructeur.label)
flash[:notice] = t('.assignment',
count: email_to_adds.count,
value: email_to_adds.join(', '),
groupe: groupe_instructeur.label)
else
if instructeurs.present?
instructeurs.each do |instructeur|
instructeur.assign_to_procedure(procedure)
end
flash[:notice] = "Les instructeurs ont bien été affectés à la démarche"
end
end
end
redirect_to procedure_groupe_instructeur_path(procedure, groupe_instructeur)
@ -120,14 +131,23 @@ module NewAdministrateur
flash[:alert] = "Suppression impossible : il doit y avoir au moins un instructeur dans le groupe"
else
@instructeur = Instructeur.find(instructeur_id)
groupe_instructeur.instructeurs.destroy(@instructeur)
flash[:notice] = "Linstructeur « #{@instructeur.email} » a été retiré du groupe."
GroupeInstructeurMailer
.remove_instructeur(groupe_instructeur, @instructeur, current_user.email)
.deliver_later
end
if procedure.routee?
@instructeur = Instructeur.find(instructeur_id)
groupe_instructeur.instructeurs.destroy(@instructeur)
flash[:notice] = "Linstructeur « #{@instructeur.email} » a été retiré du groupe."
GroupeInstructeurMailer
.remove_instructeur(groupe_instructeur, @instructeur, current_user.email)
.deliver_later
else
instructeur = Instructeur.find(instructeur_id)
if instructeur.remove_from_procedure(procedure)
flash[:notice] = "L'instructeur a bien été désaffecté de la démarche"
else
flash[:alert] = "Suppression impossible : il doit y avoir au moins un instructeur dans le groupe"
end
end
end
redirect_to procedure_groupe_instructeur_path(procedure, groupe_instructeur)
end