Move admin/assigns to the new UI like groupe_instructeurs
This commit is contained in:
parent
6311fcfa2f
commit
6b07cc0659
19 changed files with 154 additions and 298 deletions
|
@ -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
|
|
@ -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
|
||||
|
|
|
@ -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] = "L’instructeur « #{@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] = "L’instructeur « #{@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
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue