Compare commits
3 Commits
5277b7f355
...
v1.0.0
| Author | SHA1 | Date | |
|---|---|---|---|
| b03a4214c0 | |||
| d4f4b7d954 | |||
| 489eeb439f |
1
Jenkinsfile
vendored
1
Jenkinsfile
vendored
@@ -39,6 +39,7 @@ pipeline
|
|||||||
|
|
||||||
python manage.py makemigrations
|
python manage.py makemigrations
|
||||||
python manage.py migrate
|
python manage.py migrate
|
||||||
|
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"
|
||||||
|
|||||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
@@ -33,11 +33,6 @@ const calendrier = Schedule(document.getElementById('planning-reservation'), {
|
|||||||
$("lien_zoom_container").className = "d-none";
|
$("lien_zoom_container").className = "d-none";
|
||||||
}
|
}
|
||||||
|
|
||||||
if(data.statut !== "annulee"){
|
|
||||||
$("motif_refus_container").className = "d-none";
|
|
||||||
}else{
|
|
||||||
$("motif_refus").value=data.motif_refus;
|
|
||||||
}
|
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
@@ -168,6 +163,7 @@ tableau_reservation_attente.on("rowClick", (row, rowData) => {
|
|||||||
$("lien_zoom_container").className = 'd-none';
|
$("lien_zoom_container").className = 'd-none';
|
||||||
}
|
}
|
||||||
|
|
||||||
|
const id_user = $("current-user-id").dataset.userid;
|
||||||
$("id_reservation_detail").value = data.id;
|
$("id_reservation_detail").value = data.id;
|
||||||
$("id_reservation_refus").value = data.id;
|
$("id_reservation_refus").value = data.id;
|
||||||
$("id_reservation_zoom").value = data.id;
|
$("id_reservation_zoom").value = data.id;
|
||||||
@@ -184,6 +180,10 @@ tableau_reservation_attente.on("rowClick", (row, rowData) => {
|
|||||||
$("besoin_ordinateur").checked=data.besoin_ordi;
|
$("besoin_ordinateur").checked=data.besoin_ordi;
|
||||||
$("lien_zoom").value=data.lien_zoom;
|
$("lien_zoom").value=data.lien_zoom;
|
||||||
|
|
||||||
|
if (id_user != data.employe_id){
|
||||||
|
$("bouton-annuler").className = "d-none";
|
||||||
|
}
|
||||||
|
|
||||||
const modal = new bootstrap.Modal($("modalDetailReservation"));
|
const modal = new bootstrap.Modal($("modalDetailReservation"));
|
||||||
bootstrap.Modal.getOrCreateInstance($("modalReservationAttente")).hide();
|
bootstrap.Modal.getOrCreateInstance($("modalReservationAttente")).hide();
|
||||||
modal.show();
|
modal.show();
|
||||||
|
|||||||
@@ -1,4 +1,5 @@
|
|||||||
<!-- Modal d'affichage des détails d'une reservation -->
|
<!-- Modal d'affichage des détails d'une reservation -->
|
||||||
|
{% load tags_personnaliser %}
|
||||||
<div class="modal fade" id="modalDetailReservation" tabindex="-1" aria-labelledby="modalDetailReservationLabel" aria-hidden="true">
|
<div class="modal fade" id="modalDetailReservation" tabindex="-1" aria-labelledby="modalDetailReservationLabel" aria-hidden="true">
|
||||||
<div class="modal-dialog">
|
<div class="modal-dialog">
|
||||||
<div class="modal-content">
|
<div class="modal-content">
|
||||||
@@ -56,12 +57,12 @@
|
|||||||
{% if appartient_au_departement_informatique %}
|
{% if appartient_au_departement_informatique %}
|
||||||
<button class="btn btn-primary" id="ajoutZoom">Ajout du lien zoom</button>
|
<button class="btn btn-primary" id="ajoutZoom">Ajout du lien zoom</button>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
{% if appartient_direction and reservation.statut == "en_attente" %}
|
{% if user|has_group:'direction' %}
|
||||||
<button class="btn btn-danger" id="refuserReservation" data-lienrefus="{% url 'gestion_salle:refuser-reservation' %}">Refuser</button>
|
<button class="btn btn-danger" id="refuserReservation" data-lienrefus="{% url 'gestion_salle:refuser-reservation' %}">Refuser</button>
|
||||||
<button class="btn btn-success" id="bouton-valider">Valider</button>
|
<button class="btn btn-success" id="bouton-valider">Valider</button>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
<span id="current-user-id" data-user-id="{{ request.user.id }}"></span>
|
<span id="current-user-id" data-userid="{{ request.user.id }}"></span>
|
||||||
<button class="btn btn-danger" id="bouton-annuler">Annuler</button>
|
<button class="btn btn-danger" id="bouton-annuler">Annuler</button>
|
||||||
</div>
|
</div>
|
||||||
</form>
|
</form>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@@ -71,13 +71,15 @@ def index(request: HttpRequest):
|
|||||||
current_date += timedelta(days=1)
|
current_date += timedelta(days=1)
|
||||||
|
|
||||||
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",
|
||||||
message = f"""
|
message = f"""
|
||||||
Une nouvelle demande de réservation de la {dict(Reservation.TYPE_CHOICES).get(salle)} a été effectuée par {employe.user.first_name} {employe.user.last_name} du {form.cleaned_data.get('date_debut').strftime('%d/%m/%Y')} au {form.cleaned_data.get('date_fin').strftime('%d/%m/%Y')} pour motif "{motif}".
|
Une nouvelle demande de réservation de la {dict(Reservation.TYPE_CHOICES).get(salle)} a été effectuée par {employe.user.first_name} {employe.user.last_name} du {form.cleaned_data.get('date_debut').strftime('%d/%m/%Y')} au {form.cleaned_data.get('date_fin').strftime('%d/%m/%Y')} pour motif "{motif}".
|
||||||
Veuillez vous connecter à la plateforme pour plus de détails.""",
|
Veuillez vous connecter à la plateforme pour plus de détails.""",
|
||||||
destinataires = list(fonctions_utilitaire.EMAIL_ASSISTANTE_DE_DIRECTION)
|
destinataires = fonctions_utilitaire.EMAIL_ASSISTANTE_DE_DIRECTION
|
||||||
)
|
)
|
||||||
return redirect('gestion_salle:reservation-salle')
|
return redirect('gestion_salle:reservation-salle')
|
||||||
|
|
||||||
@@ -100,6 +102,7 @@ Veuillez vous connecter à la plateforme pour plus de détails.""",
|
|||||||
}
|
}
|
||||||
|
|
||||||
return render(request, "gestion_salle/index.html", context)
|
return render(request, "gestion_salle/index.html", context)
|
||||||
|
|
||||||
def liste_reservation(request:HttpRequest):
|
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")
|
||||||
@@ -130,6 +133,7 @@ def liste_reservation_attente(request):
|
|||||||
{
|
{
|
||||||
**model_to_dict(reservation),
|
**model_to_dict(reservation),
|
||||||
"employe": f"{reservation.employe.user.first_name} {reservation.employe.user.last_name}",
|
"employe": f"{reservation.employe.user.first_name} {reservation.employe.user.last_name}",
|
||||||
|
"employe_id": reservation.employe.user.id,
|
||||||
"salle": dict(Reservation.TYPE_CHOICES).get(reservation.salle),
|
"salle": dict(Reservation.TYPE_CHOICES).get(reservation.salle),
|
||||||
'statut': dict(Reservation.STATUT).get(reservation.statut),
|
'statut': dict(Reservation.STATUT).get(reservation.statut),
|
||||||
} for reservation in reservations
|
} for reservation in reservations
|
||||||
@@ -215,6 +219,7 @@ def valider_reservation(request: HttpRequest):
|
|||||||
|
|
||||||
reservation.statut = 'validee'
|
reservation.statut = 'validee'
|
||||||
reservation.save()
|
reservation.save()
|
||||||
|
|
||||||
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",
|
||||||
|
|||||||
Reference in New Issue
Block a user