Verification du statut avant la creation d'un contrat
This commit is contained in:
0
gestion_salle/__init__.py
Normal file
0
gestion_salle/__init__.py
Normal file
3
gestion_salle/admin.py
Normal file
3
gestion_salle/admin.py
Normal file
@@ -0,0 +1,3 @@
|
||||
from django.contrib import admin
|
||||
|
||||
# Register your models here.
|
||||
5
gestion_salle/apps.py
Normal file
5
gestion_salle/apps.py
Normal file
@@ -0,0 +1,5 @@
|
||||
from django.apps import AppConfig
|
||||
|
||||
|
||||
class GestionSalleConfig(AppConfig):
|
||||
name = 'gestion_salle'
|
||||
32
gestion_salle/forms.py
Normal file
32
gestion_salle/forms.py
Normal file
@@ -0,0 +1,32 @@
|
||||
from django import forms
|
||||
from .models import Reservation
|
||||
|
||||
class ReservationForm(forms.ModelForm):
|
||||
class Meta:
|
||||
model = Reservation
|
||||
fields = ['salle', 'date_debut', 'date_fin', 'heure_debut', 'heure_fin', 'motif_reservation', 'besoin_zoom', 'besoin_ordi']
|
||||
widgets = {
|
||||
'date_debut': forms.DateInput(attrs={'type': 'date', 'class': 'form-control'}),
|
||||
'date_fin': forms.DateInput(attrs={'type': 'date', 'class': 'form-control'}),
|
||||
'heure_debut': forms.TimeInput(attrs={'type': 'time', 'class': 'form-control'}),
|
||||
'heure_fin': forms.TimeInput(attrs={'type': 'time', 'class': 'form-control'}),
|
||||
'motif_reservation': forms.Textarea(attrs={'rows': 3, 'cols': 40, 'style':'resize:none;', 'class': 'form-control'}),
|
||||
'salle': forms.Select(attrs={'class': 'form-select'}),
|
||||
}
|
||||
besoin_zoom = forms.BooleanField(
|
||||
required=False,
|
||||
label="Besoin d'un lien Zoom ?",
|
||||
widget=forms.CheckboxInput(attrs={'class': 'form-check-input', 'id': 'id_besoin_zoom'})
|
||||
)
|
||||
besoin_ordi = forms.BooleanField(
|
||||
required=False,
|
||||
label="Besoin d'ordinateur ?",
|
||||
widget=forms.CheckboxInput(attrs={'class': 'form-check-input', 'id': 'id_besoin_ordi'})
|
||||
)
|
||||
|
||||
class RefusReservationForm(forms.Form):
|
||||
motif_refus = forms.CharField(
|
||||
label= "Motif du refus",
|
||||
widget=forms.Textarea(attrs={'rows': 3, 'cols': 40, 'style': 'resize:none;'}),
|
||||
required=True
|
||||
)
|
||||
@@ -1,8 +1,12 @@
|
||||
<<<<<<< HEAD
|
||||
<<<<<<< HEAD
|
||||
# Generated by Django 5.2.13 on 2026-06-16 11:06
|
||||
=======
|
||||
# Generated by Django 5.2.13 on 2026-04-17 12:03
|
||||
>>>>>>> 0047b1f (Ajout de la prise en charge des photos de profil)
|
||||
=======
|
||||
# Generated by Django 5.2.13 on 2026-04-17 12:03
|
||||
>>>>>>> f6b90e7 (Verification du statut avant la creation d'un contrat)
|
||||
|
||||
import django.db.models.deletion
|
||||
from django.db import migrations, models
|
||||
|
||||
0
gestion_salle/migrations/__init__.py
Normal file
0
gestion_salle/migrations/__init__.py
Normal file
@@ -0,0 +1,22 @@
|
||||
<div class="modal fade" id="refusModal" tabindex="-1">
|
||||
<div class="modal-dialog">
|
||||
<div class="modal-content">
|
||||
<div class="modal-header ">
|
||||
<h5 class="modal-title">Motif du refus</h5>
|
||||
<button type="button" class="btn-close btn-close-white" data-bs-dismiss="modal"></button>
|
||||
</div>
|
||||
<div class="modal-body">
|
||||
<form method="POST" id="refusForm" action="{% url 'gestion_salle:refuser-reservation' %}">
|
||||
{% csrf_token %}
|
||||
<input type='' class="form-control" id="id_reservation_refus" name='id_reservation' value="">
|
||||
<textarea class="form-control" name="motif_refus" rows="3" required></textarea>
|
||||
|
||||
<div class="modal-footer">
|
||||
<button type="submit" class="btn btn-danger">Refuser</button>
|
||||
<button type="button" class="btn btn-secondary" data-bs-dismiss="modal">Annuler</button>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@@ -0,0 +1,26 @@
|
||||
<!-- Modal Ajouter/Modifier lien Zoom -->
|
||||
<div class="modal fade" id="modalZoom" tabindex="-1" aria-hidden="true">
|
||||
<div class="modal-dialog">
|
||||
<div class="modal-content">
|
||||
<div class="modal-header ">
|
||||
<h5 class="modal-title">Ajouter/Modifier le lien Zoom</h5>
|
||||
<button type="button" class="btn-close" data-bs-dismiss="modal"></button>
|
||||
</div>
|
||||
<div class="modal-body">
|
||||
<form method="post" id="formZoom" action="{% url 'gestion_salle:ajouter-lien_zoom' %}">
|
||||
{% csrf_token %}
|
||||
<input type='hidden' class="form-control" id="id_reservation_zoom" name='id_reservation'>
|
||||
<div class="mb-3">
|
||||
<label for="lienZoom" class="form-label">Lien Zoom</label>
|
||||
<input type="url" class="form-control" name="lien_zoom" id="lienZoom"
|
||||
value="" required>
|
||||
</div>
|
||||
<div class="modal-footer">
|
||||
<button type="submit" class="btn btn-success">Enregistrer</button>
|
||||
<button type="button" class="btn btn-secondary" data-bs-dismiss="modal">Annuler</button>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@@ -0,0 +1,23 @@
|
||||
<!-- Modal de création d'une nouvelle reservation -->
|
||||
<div class="modal fade" id="modalReservation" tabindex="-1" aria-labelledby="modalReservationLabel" aria-hidden="true">
|
||||
<div class="modal-dialog">
|
||||
<div class="modal-content">
|
||||
<div class="modal-header">
|
||||
<h1 class="modal-title fs-5" id="modalReservationLabel">
|
||||
Nouvelle reservation
|
||||
</h1>
|
||||
<button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Close"></button>
|
||||
</div>
|
||||
<div class="modal-body">
|
||||
<form method="POST" action="{% url 'gestion_salle:reservation-salle' %}">
|
||||
{% csrf_token %}
|
||||
{{ formulaire_reservation.as_p }}
|
||||
<div class="modal-footer">
|
||||
<button type="button" class="btn btn-secondary" data-bs-dismiss="modal">Fermer</button>
|
||||
<button type="submit" class="btn btn-primary">Enregistrer</button>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@@ -0,0 +1,16 @@
|
||||
<!-- Modal d'affichage des détails d'une reservation -->
|
||||
<div class="modal fade" id="modalReservationAttente" tabindex="-1" aria-labelledby="modalReservationAttenteLabel" aria-hidden="true">
|
||||
<div class="modal-dialog modal-lg">
|
||||
<div class="modal-content">
|
||||
<div class="modal-header">
|
||||
<h1 class="modal-title fs-5" id="modalReservationAttenteLabel">
|
||||
Liste des reservation en attente de validation
|
||||
</h1>
|
||||
<button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Close"></button>
|
||||
</div>
|
||||
<div class="modal-body">
|
||||
<div id="tableau-reservation-attente" data-reservationattentes = "{% url 'gestion_salle:liste-reservation-attente' %}"></div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
3
gestion_salle/tests.py
Normal file
3
gestion_salle/tests.py
Normal file
@@ -0,0 +1,3 @@
|
||||
from django.test import TestCase
|
||||
|
||||
# Create your tests here.
|
||||
48
gestion_salle/urls.py
Normal file
48
gestion_salle/urls.py
Normal file
@@ -0,0 +1,48 @@
|
||||
from django.urls import path
|
||||
from . import views
|
||||
|
||||
app_name = "gestion_salle"
|
||||
|
||||
urlpatterns = [
|
||||
path(
|
||||
'revervation/',
|
||||
views.index,
|
||||
name='reservation-salle'
|
||||
),
|
||||
path(
|
||||
'revervation/details/<int:reservation_id>',
|
||||
views.detail_reservation,
|
||||
name='detail-reservation'
|
||||
),
|
||||
|
||||
path(
|
||||
'reservation/annuler',
|
||||
views.annuler_reservation,
|
||||
name='annuler-reservation'
|
||||
),
|
||||
path(
|
||||
'reservation/valider',
|
||||
views.valider_reservation,
|
||||
name='valider-reservation'
|
||||
),
|
||||
path(
|
||||
'reservation/refuser',
|
||||
views.refuser_reservation,
|
||||
name='refuser-reservation'
|
||||
),
|
||||
path(
|
||||
'reservation/ajout-de-lien-zoom',
|
||||
views.ajouter_lien_zoom,
|
||||
name='ajouter-lien_zoom'
|
||||
),
|
||||
path(
|
||||
'liste-reservation',
|
||||
views.liste_reservation,
|
||||
name='liste-reservation'
|
||||
),
|
||||
path(
|
||||
'liste-reservation-attente',
|
||||
views.liste_reservation_attente,
|
||||
name="liste-reservation-attente"
|
||||
)
|
||||
]
|
||||
@@ -117,8 +117,6 @@ def liste_reservation(request:HttpRequest):
|
||||
else:
|
||||
color = "#dc3545"
|
||||
|
||||
print(dict(Reservation.TYPE_CHOICES).get(reservation.salle))
|
||||
|
||||
liste_reservation.append({
|
||||
"guid": reservation.pk,
|
||||
"title": dict(Reservation.TYPE_CHOICES).get(reservation.salle),
|
||||
|
||||
Reference in New Issue
Block a user