Exemplo n.º 1
0
def ajouterJustificatif(request, absence_id, page_precedente, id_precedent):
    absence = get_object_or_404(Absence, pk=absence_id)
    cours = absence.cours

    error = False
    if request.method == "POST":
        form = JustificatifForm(request.POST)

        if form.is_valid():
            raison = form.cleaned_data["raison"]
            justificatif = Justificatif(
                genre=raison, dateDebut=cours.dateDebut, dateFin=cours.dateFin, user=absence.etudiant
            )
            justificatif.save()

            absence.justifie = True
            absence.justificatif = justificatif
            absence.save()
            messages.success(request, "Le justification a bien été ajouté.")
            return redirect("absences:consultationCours", cours_id=cours.id)

    else:
        form = JustificatifForm()

    return render(request, "absences/ajouterJustificatif.html", {"absence": absence, "form": form})
Exemplo n.º 2
0
def ajouterMultipleJustificatif(request):
    """Aouter un justificatif pour plusieurs cours"""
    form = None

    if request.method == "POST":
        form = JustificatifMultipleForm(request.POST)

        if form.is_valid():
            etudiantObject = Etudiant.objects.get(user=form.cleaned_data["etudiant"])
            matieres = request.POST.getlist("matieres")
            matieres = [int(m) for m in matieres]
            dateDebut = form.cleaned_data["dateDebut"]
            dateFin = form.cleaned_data["dateFin"]
            raison = form.cleaned_data["raison"]

            justificatif = Justificatif(genre=raison, dateDebut=dateDebut, dateFin=dateFin, user=etudiantObject)
            justificatif.save()
            justificatif.matiere.add(*matieres)
            justificatif.save()

            absences = Absence.objects.filter(etudiant_id=etudiantObject.id, justifie=False)
            for absence in absences:
                if (
                    (absence.cours.dateDebut <= dateDebut and absence.cours.dateFin <= dateFin)
                    or (absence.cours.dateDebut >= dateDebut and absence.cours.dateFin >= dateFin)
                    or (absence.cours.dateDebut <= dateDebut and absence.cours.dateFin >= dateFin)
                    or (absence.cours.dateDebut >= dateDebut and absence.cours.dateFin <= dateFin)
                ) and (absence.cours.matiere.id in matieres):

                    absence.justifie = True
                    absence.justificatif = justificatif
                    absence.save()

            messages.success(request, "Le justificatif a bien été ajouté pour {0}.".format(etudiantObject))
            return redirect("absences:listeCours")

        else:
            form = JustificatifMultipleForm(request.POST)
    else:
        form = JustificatifMultipleForm()

    return render(request, "absences/ajouterJustificatifMultiple.html", {"form": form})