Ajout de la prise en charge des photos de profil
This commit is contained in:
@@ -8,6 +8,7 @@ from django.forms import model_to_dict
|
||||
from gestion_employe.models import Employe
|
||||
from gestion_salle.forms import ReservationForm
|
||||
from .models import Reservation
|
||||
<<<<<<< HEAD
|
||||
from datetime import timedelta
|
||||
from django.contrib.auth.models import User
|
||||
|
||||
@@ -95,6 +96,65 @@ def index(request: HttpRequest):
|
||||
}
|
||||
|
||||
return render(request, "gestion_salle/index.html", context)
|
||||
=======
|
||||
|
||||
@login_required
|
||||
def index(request:HttpRequest):
|
||||
"""Vue de gestion de la reservation de la salle"""
|
||||
try:
|
||||
employe = Employe.objects.get(user=request.user)
|
||||
except Employe.DoesNotExist:
|
||||
messages.error(request, "Impossible d'accéder au menu 'Reservation de salle' car votre profil Utilisateur n'est lié à aucun profil Employe. Veuillez contacter l'administrateur.")
|
||||
return redirect('gestion_conges:conge')
|
||||
|
||||
if request.method == "POST":
|
||||
form = ReservationForm(request.POST)
|
||||
if form.is_valid():
|
||||
date_debut = form.cleaned_data.get('date_debut')
|
||||
date_fin = form.cleaned_data.get('date_fin')
|
||||
salle = form.cleaned_data.get('salle')
|
||||
heure_debut = form.cleaned_data.get('heure_debut')
|
||||
heure_fin = form.cleaned_data.get('heure_fin')
|
||||
motif_reservation = form.cleaned_data.get('motif_reservation')
|
||||
besoin_zoom = form.cleaned_data.get('besoin_zoom')
|
||||
besoin_ordi = form.cleaned_data.get('besoin_ordi')
|
||||
|
||||
while date_debut <= date_fin :
|
||||
reservation = Reservation(
|
||||
employe = employe,
|
||||
date_debut = date_debut,
|
||||
date_fin = date_debut,
|
||||
salle = salle,
|
||||
heure_debut = heure_debut,
|
||||
heure_fin = heure_fin,
|
||||
besoin_zoom = besoin_zoom,
|
||||
besoin_ordi = besoin_ordi,
|
||||
motif_reservation=motif_reservation,
|
||||
)
|
||||
reservation.save()
|
||||
date_debut = date_debut + timedelta(days=1)
|
||||
|
||||
messages.success(request, "Réservation(s) créées avec succès.")
|
||||
return redirect('gestion_salle:reservation-salle')
|
||||
|
||||
formulaire_reservation = ReservationForm()
|
||||
departement = Employe.objects.get(user__username=request.user).departement
|
||||
appartient_direction = 'direction' in request.user.groups.values_list('name', flat=True)
|
||||
liste_demande_reservation = [
|
||||
reservation.id for reservation in
|
||||
Reservation.objects.filter(employe=employe, statut='en_attente')
|
||||
]
|
||||
|
||||
context = {
|
||||
'formulaire_reservation': formulaire_reservation,
|
||||
'nb_reservation_attente': Reservation.objects.filter(statut='en_attente').count(),
|
||||
'appartient_au_departement_informatique': 'Informatique' == departement.nom if departement else False,
|
||||
'appartient_direction': appartient_direction,
|
||||
'liste_demande_reservation': liste_demande_reservation
|
||||
}
|
||||
return render(request, "gestion_salle/index.html", context)
|
||||
|
||||
>>>>>>> 0047b1f (Ajout de la prise en charge des photos de profil)
|
||||
def liste_reservation(request:HttpRequest):
|
||||
"""Vue d'affichage des creneaux disponibles"""
|
||||
reservations = Reservation.objects.filter(statut = "validee")
|
||||
@@ -116,6 +176,10 @@ def liste_reservation(request:HttpRequest):
|
||||
"end": reservation.heure_fin,
|
||||
"color": color,
|
||||
})
|
||||
<<<<<<< HEAD
|
||||
=======
|
||||
|
||||
>>>>>>> 0047b1f (Ajout de la prise en charge des photos de profil)
|
||||
return JsonResponse(liste_reservation, safe=False)
|
||||
|
||||
@login_required
|
||||
@@ -132,25 +196,41 @@ def liste_reservation_attente(request):
|
||||
return JsonResponse(liste_reservation, safe=False)
|
||||
|
||||
def detail_reservation(request:HttpRequest, reservation_id:int):
|
||||
<<<<<<< HEAD
|
||||
|
||||
reservation = Reservation.objects.get(id=reservation_id)
|
||||
employe = reservation.employe.user
|
||||
|
||||
reservation_json = {
|
||||
|
||||
=======
|
||||
reservation = Reservation.objects.get(id=reservation_id)
|
||||
employe = reservation.employe.user
|
||||
reservation_json = {
|
||||
>>>>>>> 0047b1f (Ajout de la prise en charge des photos de profil)
|
||||
'id_reservation': reservation_id,
|
||||
'employe': f"{employe.first_name} {employe.last_name}",
|
||||
'salle': reservation.salle,
|
||||
'statut': reservation.statut,
|
||||
<<<<<<< HEAD
|
||||
'date_debut': reservation.date_debut.strftime('%Y-%m-%d'),
|
||||
'date_fin': reservation.date_fin.strftime('%Y-%m-%d'),
|
||||
=======
|
||||
'date_evenement': reservation.date_debut.strftime('%Y-%m-%d'),
|
||||
>>>>>>> 0047b1f (Ajout de la prise en charge des photos de profil)
|
||||
'heure_debut': reservation.heure_debut.strftime('%H:%M'),
|
||||
'heure_fin': reservation.heure_fin.strftime('%H:%M'),
|
||||
'motif_reservation': reservation.motif_reservation,
|
||||
'besoin_zoom': reservation.besoin_zoom,
|
||||
'besoin_ordinateur': reservation.besoin_ordi,
|
||||
'lien_zoom': reservation.lien_zoom or '',
|
||||
<<<<<<< HEAD
|
||||
}
|
||||
=======
|
||||
'motif_refus': reservation.motif_refus or '',
|
||||
}
|
||||
|
||||
>>>>>>> 0047b1f (Ajout de la prise en charge des photos de profil)
|
||||
return JsonResponse(reservation_json, safe=True)
|
||||
|
||||
@login_required
|
||||
@@ -196,6 +276,7 @@ def annuler_reservation(request:HttpRequest):
|
||||
return redirect('gestion_salle:reservation-salle')
|
||||
|
||||
@login_required
|
||||
<<<<<<< HEAD
|
||||
def valider_reservation(request: HttpRequest):
|
||||
"""Validation d'une réservation"""
|
||||
if request.method == 'POST':
|
||||
@@ -227,4 +308,34 @@ def refuser_reservation(request: HttpRequest):
|
||||
reservation.statut = 'refusee'
|
||||
reservation.save()
|
||||
|
||||
return redirect('gestion_salle:reservation-salle')
|
||||
return redirect('gestion_salle:reservation-salle')
|
||||
=======
|
||||
def valider_reservation(request:HttpRequest):
|
||||
"""Vue de gestion de l'annulation de la reservation"""
|
||||
if request.method == 'POST':
|
||||
reservation_id= request.POST['id_reservation']
|
||||
try:
|
||||
reservation = Reservation.objects.get(id=reservation_id)
|
||||
except reservation.DoesNotExist:
|
||||
messages.error(request, "La resevertion selectionné n'existe pas.")
|
||||
return redirect("salle")
|
||||
|
||||
reservation.statut = 'validee'
|
||||
reservation.save()
|
||||
messages.success(request, f"Réservation de {reservation.employe.get_full_name()} validée avec succès.")
|
||||
return redirect('gestion_salle:reservation-salle')
|
||||
|
||||
@login_required
|
||||
def refuser_reservation(request:HttpRequest):
|
||||
"""Vue de gestion de refus de la reservation"""
|
||||
data = json.loads(request.body)
|
||||
reservation_id = data.get("id_reservation")
|
||||
try:
|
||||
reservation = Reservation.objects.get(id=reservation_id)
|
||||
except Reservation.DoesNotExist and ValueError:
|
||||
return JsonResponse({"message": "La resevertion selectionné n'existe pas."})
|
||||
else:
|
||||
reservation.statut = "refusee"
|
||||
reservation.save()
|
||||
return JsonResponse({"message": "Réservation refusée avec succès."})
|
||||
>>>>>>> 0047b1f (Ajout de la prise en charge des photos de profil)
|
||||
|
||||
Reference in New Issue
Block a user