Compare commits
4 Commits
d4f4b7d954
...
modificati
| Author | SHA1 | Date | |
|---|---|---|---|
| a28b177eba | |||
| 415860f233 | |||
| 8503689aa4 | |||
| b03a4214c0 |
3
Jenkinsfile
vendored
3
Jenkinsfile
vendored
@@ -39,7 +39,8 @@ pipeline
|
|||||||
|
|
||||||
python manage.py makemigrations
|
python manage.py makemigrations
|
||||||
python manage.py migrate
|
python manage.py migrate
|
||||||
python manage.py collectstatic
|
echo $SUDO_PASSWORD | sudo -S rm -r staticfiles
|
||||||
|
python manage.py collectstatic --noinput
|
||||||
|
|
||||||
echo $SUDO_PASSWORD | sudo -S chown -R www-data:www-data /var/www/sirh
|
echo $SUDO_PASSWORD | sudo -S chown -R www-data:www-data /var/www/sirh
|
||||||
echo "Deploiement reussi"
|
echo "Deploiement reussi"
|
||||||
|
|||||||
@@ -24,7 +24,6 @@ enregistrerProfil.addEventListener("click", (e) => {
|
|||||||
const csrftoken = document.querySelector("[name='csrfmiddlewaretoken']").value;
|
const csrftoken = document.querySelector("[name='csrfmiddlewaretoken']").value;
|
||||||
|
|
||||||
const formData = new FormData();
|
const formData = new FormData();
|
||||||
|
|
||||||
formData.append("nom", $("nom").value);
|
formData.append("nom", $("nom").value);
|
||||||
formData.append("prenom", $("prenom").value);
|
formData.append("prenom", $("prenom").value);
|
||||||
formData.append("email", $("email").value);
|
formData.append("email", $("email").value);
|
||||||
@@ -32,6 +31,10 @@ enregistrerProfil.addEventListener("click", (e) => {
|
|||||||
formData.append("adresse", $("adresse").value);
|
formData.append("adresse", $("adresse").value);
|
||||||
formData.append("sexe", $("sexe").value);
|
formData.append("sexe", $("sexe").value);
|
||||||
formData.append("date_naissance", $("date_naissance").value);
|
formData.append("date_naissance", $("date_naissance").value);
|
||||||
|
const photoInput = $("photo");
|
||||||
|
if (photoInput.files.length > 0) {
|
||||||
|
formData.append("photo", photoInput.files[0]);
|
||||||
|
}
|
||||||
|
|
||||||
fetch(url, {
|
fetch(url, {
|
||||||
method: "POST",
|
method: "POST",
|
||||||
|
|||||||
@@ -191,7 +191,7 @@ def modifier_employer(request):
|
|||||||
except Employe.DoesNotExist:
|
except Employe.DoesNotExist:
|
||||||
return JsonResponse({"message": "Employé non trouvé."})
|
return JsonResponse({"message": "Employé non trouvé."})
|
||||||
if request.method == "POST":
|
if request.method == "POST":
|
||||||
data = json.loads(request.body)
|
data = request.POST
|
||||||
user = User.objects.get(username=request.user)
|
user = User.objects.get(username=request.user)
|
||||||
user.last_name = data['nom']
|
user.last_name = data['nom']
|
||||||
user.first_name = data['prenom']
|
user.first_name = data['prenom']
|
||||||
|
|||||||
Binary file not shown.
@@ -2,7 +2,6 @@ from datetime import date
|
|||||||
from decimal import Decimal, InvalidOperation
|
from decimal import Decimal, InvalidOperation
|
||||||
from django.http import JsonResponse
|
from django.http import JsonResponse
|
||||||
from django.shortcuts import redirect, render
|
from django.shortcuts import redirect, render
|
||||||
from django.urls import reverse
|
|
||||||
from django.utils import timezone
|
from django.utils import timezone
|
||||||
from django.contrib import messages
|
from django.contrib import messages
|
||||||
from django.contrib.auth.decorators import login_required
|
from django.contrib.auth.decorators import login_required
|
||||||
|
|||||||
Binary file not shown.
@@ -78,6 +78,11 @@ $("bouton-annuler").addEventListener("click", (e) => {
|
|||||||
const csrf = document.querySelector("[name=csrfmiddlewaretoken]").value;
|
const csrf = document.querySelector("[name=csrfmiddlewaretoken]").value;
|
||||||
const url_annuler = $("formulaire-details").dataset.urlannuler;
|
const url_annuler = $("formulaire-details").dataset.urlannuler;
|
||||||
|
|
||||||
|
console.log("URL d'annulation :");
|
||||||
|
console.log($("formulaire-details"))
|
||||||
|
|
||||||
|
e.preventDefault();
|
||||||
|
|
||||||
fetch(
|
fetch(
|
||||||
url_annuler,
|
url_annuler,
|
||||||
{
|
{
|
||||||
@@ -128,6 +133,9 @@ if($("refuserReservation")){
|
|||||||
const url = e.currentTarget.dataset.lienrefus;
|
const url = e.currentTarget.dataset.lienrefus;
|
||||||
const idRes = $("id_reservation_detail").value;
|
const idRes = $("id_reservation_detail").value;
|
||||||
|
|
||||||
|
console.log(idRes);
|
||||||
|
e.preventDefault();
|
||||||
|
|
||||||
fetch(url, {
|
fetch(url, {
|
||||||
method: "POST",
|
method: "POST",
|
||||||
headers: {
|
headers: {
|
||||||
|
|||||||
@@ -26,9 +26,9 @@
|
|||||||
<div class="form-group col-5 me-2">
|
<div class="form-group col-5 me-2">
|
||||||
<label>Selectionner une salle :</label>
|
<label>Selectionner une salle :</label>
|
||||||
<select class = "form-select" id="liste-salle">
|
<select class = "form-select" id="liste-salle">
|
||||||
<option value='formation'>Salle de formation</option>
|
<option value='Salle de formation'>Salle de formation</option>
|
||||||
<option value='reunion'>Salle de réunion</option>
|
<option value='Salle de réunion'>Salle de réunion</option>
|
||||||
<option value='lien_zoom'>Lien Zoom</option>
|
<option value='Lien Zoom'>Lien Zoom</option>
|
||||||
</select>
|
</select>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@@ -1,4 +1,5 @@
|
|||||||
from datetime import timedelta
|
from datetime import timedelta
|
||||||
|
import json
|
||||||
from django.contrib import messages
|
from django.contrib import messages
|
||||||
from django.contrib.auth.decorators import login_required
|
from django.contrib.auth.decorators import login_required
|
||||||
from django.shortcuts import redirect, render
|
from django.shortcuts import redirect, render
|
||||||
@@ -19,8 +20,6 @@ def index(request: HttpRequest):
|
|||||||
messages.error(request, "Profil employé introuvable.")
|
messages.error(request, "Profil employé introuvable.")
|
||||||
return redirect('gestion_conges:conge')
|
return redirect('gestion_conges:conge')
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
if request.method == "POST":
|
if request.method == "POST":
|
||||||
form = ReservationForm(request.POST)
|
form = ReservationForm(request.POST)
|
||||||
|
|
||||||
@@ -72,7 +71,6 @@ def index(request: HttpRequest):
|
|||||||
|
|
||||||
messages.success(request, "Réservation(s) créée(s) avec succès.")
|
messages.success(request, "Réservation(s) créée(s) avec succès.")
|
||||||
|
|
||||||
print(fonctions_utilitaire.EMAIL_ASSISTANTE_DE_DIRECTION)
|
|
||||||
if fonctions_utilitaire.EMAIL_ASSISTANTE_DE_DIRECTION:
|
if fonctions_utilitaire.EMAIL_ASSISTANTE_DE_DIRECTION:
|
||||||
fonctions_utilitaire.envoyer_mail(
|
fonctions_utilitaire.envoyer_mail(
|
||||||
sujet = "Reservation de salle",
|
sujet = "Reservation de salle",
|
||||||
@@ -107,6 +105,7 @@ def liste_reservation(request:HttpRequest):
|
|||||||
"""Vue d'affichage des creneaux disponibles"""
|
"""Vue d'affichage des creneaux disponibles"""
|
||||||
reservations = Reservation.objects.filter(statut = "validee")
|
reservations = Reservation.objects.filter(statut = "validee")
|
||||||
liste_reservation = []
|
liste_reservation = []
|
||||||
|
|
||||||
for reservation in reservations:
|
for reservation in reservations:
|
||||||
color = None
|
color = None
|
||||||
if reservation.statut == "en_attente":
|
if reservation.statut == "en_attente":
|
||||||
@@ -116,6 +115,8 @@ def liste_reservation(request:HttpRequest):
|
|||||||
else:
|
else:
|
||||||
color = "#dc3545"
|
color = "#dc3545"
|
||||||
|
|
||||||
|
print(dict(Reservation.TYPE_CHOICES).get(reservation.salle))
|
||||||
|
|
||||||
liste_reservation.append({
|
liste_reservation.append({
|
||||||
"guid": reservation.pk,
|
"guid": reservation.pk,
|
||||||
"title": dict(Reservation.TYPE_CHOICES).get(reservation.salle),
|
"title": dict(Reservation.TYPE_CHOICES).get(reservation.salle),
|
||||||
@@ -220,32 +221,30 @@ def valider_reservation(request: HttpRequest):
|
|||||||
reservation.statut = 'validee'
|
reservation.statut = 'validee'
|
||||||
reservation.save()
|
reservation.save()
|
||||||
|
|
||||||
if fonctions_utilitaire.EMAIL_ASSISTANTE_DE_DIRECTION:
|
|
||||||
fonctions_utilitaire.envoyer_mail(
|
fonctions_utilitaire.envoyer_mail(
|
||||||
sujet = "Reservation de salle",
|
sujet = "Reservation de salle",
|
||||||
message = f"""Bonjour {request.user.first_name} {request.user.last_name}, votre reservation de la salle {dict(Reservation.TYPE_CHOICES).get(reservation.salle)} du {reservation.date_debut.strftime('%d/%m/%Y')} au {reservation.date_fin.strftime('%d/%m/%Y')} pour motif "{reservation.motif_reservation}" a été validée. Veuillez vous connecter à la plateforme pour plus de détails.""",
|
message = f"""Bonjour {request.user.first_name} {request.user.last_name}, votre reservation de la salle {dict(Reservation.TYPE_CHOICES).get(reservation.salle)} du {reservation.date_debut.strftime('%d/%m/%Y')} au {reservation.date_fin.strftime('%d/%m/%Y')} pour motif "{reservation.motif_reservation}" a été validée. Veuillez vous connecter à la plateforme pour plus de détails.""",
|
||||||
destinataires = [reservation.employe.user.email]
|
destinataires = [reservation.employe.user.email]
|
||||||
)
|
)
|
||||||
|
|
||||||
messages.success(request, f"Réservation de {reservation.employe.get_full_name()} validée avec succès.")
|
messages.success(request, f"La réservation de {request.user.first_name} {request.user.last_name} validée avec succès.")
|
||||||
return redirect('gestion_salle:reservation-salle')
|
return redirect('gestion_salle:reservation-salle')
|
||||||
|
|
||||||
@login_required
|
@login_required
|
||||||
def refuser_reservation(request: HttpRequest):
|
def refuser_reservation(request: HttpRequest):
|
||||||
"""Refuser une réservation"""
|
"""Refuser une réservation"""
|
||||||
if request.method == 'POST':
|
if request.method == 'POST':
|
||||||
reservation_id = request.POST.get('id_reservation')
|
reservation_id = json.loads(request.body).get('id_reservation')
|
||||||
|
|
||||||
try:
|
try:
|
||||||
reservation = Reservation.objects.get(id=reservation_id)
|
reservation = Reservation.objects.get(id=reservation_id)
|
||||||
except Reservation.DoesNotExist:
|
except Reservation.DoesNotExist:
|
||||||
messages.error(request, "La réservation n'existe pas.")
|
messages.error(request, "La réservation n'existe pas.")
|
||||||
return redirect("salle")
|
return JsonResponse({"message": "Une erreur s'est produite lors de l'annulation de la reservation."})
|
||||||
|
|
||||||
reservation.statut = 'refusee'
|
reservation.statut = 'refusee'
|
||||||
reservation.save()
|
reservation.save()
|
||||||
|
|
||||||
if fonctions_utilitaire.EMAIL_ASSISTANTE_DE_DIRECTION:
|
|
||||||
fonctions_utilitaire.envoyer_mail(
|
fonctions_utilitaire.envoyer_mail(
|
||||||
sujet = "Reservation de salle",
|
sujet = "Reservation de salle",
|
||||||
message = f"""Bonjour {request.user.first_name} {request.user.last_name}, votre reservation de la salle {dict(Reservation.TYPE_CHOICES).get(reservation.salle)} du {reservation.date_debut.strftime('%d/%m/%Y')} au {reservation.date_fin.strftime('%d/%m/%Y')} pour motif "{reservation.motif_reservation}" a été refusée. Veuillez vous connecter à l'Assistante de Direction pour plus de détails.""",
|
message = f"""Bonjour {request.user.first_name} {request.user.last_name}, votre reservation de la salle {dict(Reservation.TYPE_CHOICES).get(reservation.salle)} du {reservation.date_debut.strftime('%d/%m/%Y')} au {reservation.date_fin.strftime('%d/%m/%Y')} pour motif "{reservation.motif_reservation}" a été refusée. Veuillez vous connecter à l'Assistante de Direction pour plus de détails.""",
|
||||||
|
|||||||
Reference in New Issue
Block a user