mirror of
https://git.v0id.ovh/n3wt-innov/n3wt-school.git
synced 2026-01-29 07:53:23 +00:00
chore: Initial Commit
feat: Gestion des inscriptions [#1] feat(frontend): Création des vues pour le paramétrage de l'école [#2] feat: Gestion du login [#6] fix: Correction lors de la migration des modèle [#8] feat: Révision du menu principal [#9] feat: Ajout d'un footer [#10] feat: Création des dockers compose pour les environnements de développement et de production [#12] doc(ci): Mise en place de Husky et d'un suivi de version automatique [#14]
This commit is contained in:
@ -0,0 +1,52 @@
|
||||
{% extends "base.html" %}
|
||||
{% load rest_framework %}
|
||||
{% block content %}
|
||||
<h1>Création d'une nouvelle fiche d'inscription</h1>
|
||||
<br>
|
||||
<form action='{% url 'GestionInscriptions:nouvelEleve' %}' method="post">
|
||||
{% csrf_token %}
|
||||
<ul>
|
||||
<li style="margin-bottom: 15px"><strong>ELEVE</strong></li>
|
||||
<div class="input-group">
|
||||
<label for="nomEleve">Nom</label>
|
||||
<div class="input-wrapper">
|
||||
<input type="text" id="nomEleve" name="nomEleve">
|
||||
</div>
|
||||
</div>
|
||||
<div class="input-group">
|
||||
<label for="prenomEleve">Prénom</label>
|
||||
<div class="input-wrapper">
|
||||
<input type="text" id="prenomEleve" name="prenomEleve">
|
||||
</div>
|
||||
</div>
|
||||
<li style="margin-bottom: 15px"><strong>LISTE DES CONTACTS</strong></li>
|
||||
<div class="input-group">
|
||||
<label for="mail">Adresse e-mail </label>
|
||||
<div class="input-wrapper">
|
||||
<input type="text" id="mail" name="mailResponsable">
|
||||
</div>
|
||||
</div>
|
||||
<div class="input-group">
|
||||
<label for="telephone">Numéro de téléphone</label>
|
||||
<div class="input-wrapper">
|
||||
<input type="text" id="telephone" name="telephoneResponsable">
|
||||
</div>
|
||||
</div>
|
||||
<div class="input-group">
|
||||
<label for="nomContact">Nom</label>
|
||||
<div class="input-wrapper">
|
||||
<input type="text" id="nomContact" name="nomResponsable">
|
||||
</div>
|
||||
</div>
|
||||
<div class="input-group">
|
||||
<label for="prenomContact">Prénom</label>
|
||||
<div class="input-wrapper">
|
||||
<input type="text" id="prenomContact" name="prenomResponsable">
|
||||
</div>
|
||||
</div>
|
||||
</ul>
|
||||
<input class="btn primary" type="submit" value="Créer" name="valider">
|
||||
<br>
|
||||
<input class="btn" type="button" value="Annuler" name="cancel">
|
||||
</form>
|
||||
{% endblock %}
|
||||
@ -0,0 +1,16 @@
|
||||
{% extends "base.html" %}
|
||||
{% block content %}
|
||||
<h1>Configuration des dossiers d'inscriptions</h1>
|
||||
<br>
|
||||
<form action='{% url 'GestionInscriptions:index' %}' method="post">
|
||||
{% csrf_token %}
|
||||
<ul>
|
||||
<div style="margin-bottom: 15px">
|
||||
<label>Relance automatique :</label>
|
||||
<input type="text" name="delaiRelance" value="{{ delaiRelance }}">
|
||||
<label>secondes</label>
|
||||
</div>
|
||||
</ul>
|
||||
<input class="btn" type="submit" value="Configurer" name="valider">
|
||||
</form>
|
||||
{% endblock %}
|
||||
@ -0,0 +1,162 @@
|
||||
{% extends "base.html" %}
|
||||
{% block content %}
|
||||
<h1>Création du dossier d'inscription</h1>
|
||||
<br>
|
||||
<form action='{% url 'GestionInscriptions:validate' eleve.id %}' method="post" enctype="multipart/form-data">
|
||||
{% csrf_token %}
|
||||
{% with responsable=eleve.getResponsablePrincipal %}
|
||||
<ul>
|
||||
<li style="margin-bottom: 15px"><strong>ELEVE</strong></li>
|
||||
<div style="margin-bottom: 15px">
|
||||
<label>Nom :</label>
|
||||
<input type="text" name="nomEleve" value="{{ eleve.nom }}">
|
||||
</div>
|
||||
<div style="margin-bottom: 15px">
|
||||
<label>Prénom :</label>
|
||||
<input type="text" name="prenomEleve" value="{{ eleve.prenom }}">
|
||||
</div>
|
||||
<div style="margin-bottom: 15px">
|
||||
<label>Genre :<br></label>
|
||||
{% for genre in genres %}
|
||||
<label>{{ genre }}</label>
|
||||
<input type="radio" id="{{ genre }}" name="genre" value="{{ genre }}">
|
||||
{% endfor %}
|
||||
</div>
|
||||
<div style="margin-bottom: 15px">
|
||||
<label>Adresse :</label>
|
||||
<input type="text" name="adresseEleve">
|
||||
</div>
|
||||
<div style="margin-bottom: 15px">
|
||||
<label>Date de naissance :</label>
|
||||
<input type="text" name="dateNaissanceEleve">
|
||||
</div>
|
||||
<div style="margin-bottom: 15px">
|
||||
<label>Lieu de naissance :</label>
|
||||
<input type="text" name="lieuNaissanceEleve">
|
||||
</div>
|
||||
<div style="margin-bottom: 15px">
|
||||
<label>Code postal de naissance :</label>
|
||||
<input type="text" name="codePostalNaissanceEleve">
|
||||
</div>
|
||||
<div style="margin-bottom: 15px">
|
||||
<label>Nationalité :</label>
|
||||
<input type="text" name="nationaliteEleve">
|
||||
</div>
|
||||
<div style="margin-bottom: 15px">
|
||||
<label>Langue parlée :</label>
|
||||
<input type="text" name="langueEleve">
|
||||
</div>
|
||||
<div style="margin-bottom: 15px">
|
||||
<label>Ambiance :<br></label>
|
||||
{% for ambiance in ambiances %}
|
||||
<label>{{ ambiance }}</label>
|
||||
<input type="radio" id="{{ ambiance }}" name="ambiance" value="{{ ambiance }}">
|
||||
{% endfor %}
|
||||
</div>
|
||||
<div style="margin-bottom: 15px">
|
||||
<label>Médecin traitant :</label>
|
||||
<input type="text" name="medecinTraitantEleve">
|
||||
</div>
|
||||
<li style="margin-bottom: 15px"><strong>RESPONSABLES</strong></li>
|
||||
<ul>
|
||||
<li style="margin-bottom: 15px"><strong>RESPONSABLE 1</strong></li>
|
||||
<div style="margin-bottom: 15px">
|
||||
<label>Nom :</label>
|
||||
<input type="text" name="nomResponsable1" value="{{ responsable.nom }}">
|
||||
</div>
|
||||
<div style="margin-bottom: 15px">
|
||||
<label>Prénom :</label>
|
||||
<input type="text" name="prenomResponsable1" value="{{ responsable.prenom }}">
|
||||
</div>
|
||||
<div style="margin-bottom: 15px">
|
||||
<label>Adresse :</label>
|
||||
<input type="text" name="adresseResponsable1" value="{{ responsable.adresse }}">
|
||||
</div>
|
||||
<div style="margin-bottom: 15px">
|
||||
<label>Date de naissance :</label>
|
||||
<input type="text" name="dateNaissanceResponsable1" value="{{ responsable.dateNaissance }}">
|
||||
</div>
|
||||
<div style="margin-bottom: 15px">
|
||||
<label>Mail :</label>
|
||||
<input type="text" name="mailResponsable1" value="{{ responsable.mail }}">
|
||||
</div>
|
||||
<div style="margin-bottom: 15px">
|
||||
<label>Téléphone :</label>
|
||||
<input type="text" name="telephoneResponsable1" value="{{ responsable.telephone }}">
|
||||
</div>
|
||||
<div style="margin-bottom: 15px">
|
||||
<label>Profession :</label>
|
||||
<input type="text" name="professionResponsable1" value="{{ responsable.profession }}">
|
||||
</div>
|
||||
<li style="margin-bottom: 15px"><strong>RESPONSABLE 2</strong></li>
|
||||
<div style="margin-bottom: 15px">
|
||||
<label>Nom :</label>
|
||||
<input type="text" name="nomResponsable2">
|
||||
</div>
|
||||
<div style="margin-bottom: 15px">
|
||||
<label>Prénom :</label>
|
||||
<input type="text" name="prenomResponsable2">
|
||||
</div>
|
||||
<div style="margin-bottom: 15px">
|
||||
<label>Adresse :</label>
|
||||
<input type="text" name="adresseResponsable2">
|
||||
</div>
|
||||
<div style="margin-bottom: 15px">
|
||||
<label>Date de naissance :</label>
|
||||
<input type="text" name="dateNaissanceResponsable2">
|
||||
</div>
|
||||
<div style="margin-bottom: 15px">
|
||||
<label>Mail :</label>
|
||||
<input type="text" name="mailResponsable2">
|
||||
</div>
|
||||
<div style="margin-bottom: 15px">
|
||||
<label>Téléphone :</label>
|
||||
<input type="text" name="telephoneResponsable2">
|
||||
</div>
|
||||
<div style="margin-bottom: 15px">
|
||||
<label>Profession :</label>
|
||||
<input type="text" name="professionResponsable2">
|
||||
</div>
|
||||
</ul>
|
||||
<li style="margin-bottom: 15px"><strong>FRATRIE</strong></li>
|
||||
<ul>
|
||||
<li style="margin-bottom: 15px"><strong>FRERE - SOEUR 1 :</strong></li>
|
||||
<div style="margin-bottom: 15px">
|
||||
<label>Nom :</label>
|
||||
<input type="text" name="nomFrere1">
|
||||
</div>
|
||||
<div style="margin-bottom: 15px">
|
||||
<label>Prénom :</label>
|
||||
<input type="text" name="prenomFrere1">
|
||||
</div>
|
||||
<div style="margin-bottom: 15px">
|
||||
<label>Date de naissance :</label>
|
||||
<input type="text" name="dateNaissanceFrere1">
|
||||
</div>
|
||||
<li style="margin-bottom: 15px"><strong>FRERE - SOEUR 2 :</strong></li>
|
||||
<div style="margin-bottom: 15px">
|
||||
<label>Nom :</label>
|
||||
<input type="text" name="nomFrere2">
|
||||
</div>
|
||||
<div style="margin-bottom: 15px">
|
||||
<label>Prénom :</label>
|
||||
<input type="text" name="prenomFrere2">
|
||||
</div>
|
||||
<div style="margin-bottom: 15px">
|
||||
<label>Date de naissance :</label>
|
||||
<input type="text" name="dateNaissanceFrere2">
|
||||
</div>
|
||||
</ul>
|
||||
<li style="margin-bottom: 15px"><strong>PAIEMENT</strong></li>
|
||||
<div style="margin-bottom: 15px">
|
||||
<label>Mode Paiement :<br></label>
|
||||
{% for modePaiement in modesPaiement %}
|
||||
<label>{{ modePaiement }}</label>
|
||||
<input type="radio" id="{{ modePaiement }}" name="modePaiement" value="{{ modePaiement }}">
|
||||
{% endfor %}
|
||||
</div>
|
||||
</ul>
|
||||
<input class="btn" type="submit" value="Valider" name="valider">
|
||||
{% endwith %}
|
||||
</form>
|
||||
{% endblock %}
|
||||
@ -0,0 +1,42 @@
|
||||
{% extends "base.html" %}
|
||||
{% block content %}
|
||||
<h1>Edition d'une fiche d'inscription</h1>
|
||||
<br>
|
||||
<form action='{% url 'GestionInscriptions:index' %}' method="post">
|
||||
{% csrf_token %}
|
||||
{% with responsable=eleve.getResponsablePrincipal %}
|
||||
<ul>
|
||||
<div style="margin-bottom: 15px">
|
||||
<input type="hidden" name="fiche_id" value="{{ eleve.id }}">
|
||||
</div>
|
||||
<li style="margin-bottom: 15px"><strong>ELEVE</strong></li>
|
||||
<div style="margin-bottom: 15px">
|
||||
<label>Nom :</label>
|
||||
<input type="text" name="nomEleve" value="{{ eleve.nom }}">
|
||||
</div>
|
||||
<div style="margin-bottom: 15px">
|
||||
<label>Prénom :</label>
|
||||
<input type="text" name="prenomEleve" value="{{ eleve.prenom }}">
|
||||
</div>
|
||||
<li style="margin-bottom: 15px"><strong>LISTE DES CONTACTS</strong></li>
|
||||
<div style="margin-bottom: 15px">
|
||||
<label>Adresse e-mail :</label>
|
||||
<input type="text" name="mail" value="{{ responsable.mail }}">
|
||||
</div>
|
||||
<div style="margin-bottom: 15px">
|
||||
<label>Numéro de téléphone :</label>
|
||||
<input type="text" name="telephone" value="{{ responsable.telephone }}">
|
||||
</div>
|
||||
<div style="margin-bottom: 15px">
|
||||
<label>Nom :</label>
|
||||
<input type="text" name="nomContact" value="{{ responsable.nom }}">
|
||||
</div>
|
||||
<div style="margin-bottom: 15px">
|
||||
<label>Prénom :</label>
|
||||
<input type="text" name="prenomContact" value="{{ responsable.prenom }}">
|
||||
</div>
|
||||
</ul>
|
||||
<input class="btn" type="submit" value="Modifier" name="valider">
|
||||
{% endwith %}
|
||||
</form>
|
||||
{% endblock %}
|
||||
@ -0,0 +1,126 @@
|
||||
{% extends "base.html" %}
|
||||
{% load myTemplateTag %}
|
||||
|
||||
{% block content %}
|
||||
<h1>Inscriptions 2024/2025</h1>
|
||||
<br>
|
||||
<div>
|
||||
|
||||
<br>
|
||||
<br>
|
||||
</div>
|
||||
|
||||
<section class="heading-section">
|
||||
<!-- Search bar -->
|
||||
<div class="input-group max-80">
|
||||
<div class="input-wrapper max">
|
||||
<span class="icon-ctn">
|
||||
<i class="icon user-search"></i>
|
||||
</span>
|
||||
<input type="text" id="username" placeholder="Rechercher">
|
||||
</div>
|
||||
</div>
|
||||
<a class="btn primary" href="nouvelEleve">
|
||||
Ajouter <i class="icon profile-add"></i>
|
||||
</a>
|
||||
</section>
|
||||
<section class="heading-section">
|
||||
<div class="alphabet-filter">
|
||||
{% for letter in "*ABCDEFGHIJKLMNOPQRSTUVWXYZ" %}
|
||||
<a class="item" href="?letter={{ letter }}">{{ letter }}</a>
|
||||
{% endfor %}
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<table class="table">
|
||||
<thead>
|
||||
<tr>
|
||||
<th>Nom</th>
|
||||
<th>Prenom</th>
|
||||
<th>Mail</th>
|
||||
<th>Téléphone</th>
|
||||
<th>MàJ Le</th>
|
||||
<th>Statut</th>
|
||||
<th>Fichiers</th>
|
||||
<th>Action</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
|
||||
{% for ficheInscription in ficheInscriptions_list %}
|
||||
{% with eleve=ficheInscription.eleve %}
|
||||
{% with responsable=eleve.getResponsablePrincipal %}
|
||||
{% with fichiers=ficheInscription|recupereFichiersDossierInscription %}
|
||||
<tr>
|
||||
<td>{{ eleve.nom }}</td>
|
||||
<td>{{ eleve.prenom }}</td>
|
||||
<td>{{ responsable.mail }}</td>
|
||||
<td>{{ responsable.telephone }}</td>
|
||||
<td>{{ ficheInscription.dateMAJ }}</td>
|
||||
<td>
|
||||
{% if ficheInscription.etat == 0 %}
|
||||
<span class="tag blue"> Créé</span>
|
||||
{% elif ficheInscription.etat == 1 %}
|
||||
<span class="tag orange"> Envoyé</span>
|
||||
{% elif ficheInscription.etat == 2 %}
|
||||
<span class="tag purple"> En Validation</span>
|
||||
{% else %}
|
||||
<span class="tag green"> Validé</span>
|
||||
{% endif %}
|
||||
</td>
|
||||
<td>
|
||||
{% for fichier in fichiers %}
|
||||
<a href="{{ fichier.url }}">{{ fichier.nom }}</a>
|
||||
{% endfor %}
|
||||
</td>
|
||||
<td class="actions">
|
||||
<button class="icon-btn" onclick="location.href='{% url 'GestionInscriptions:send' eleve.id %}'" type="submit"> <i class="icon directbox-send"></i></button>
|
||||
<button class="icon-btn"> <i class="icon edit"></i></button>
|
||||
<button class="icon-btn red"> <i class="icon user-minus"></i></button>
|
||||
</td>
|
||||
</tr>
|
||||
{% endwith %}
|
||||
{% endwith %}
|
||||
{% endwith %}
|
||||
{% endfor %}
|
||||
</tbody>
|
||||
<tfoot>
|
||||
<tr>
|
||||
<td></td>
|
||||
<td colspan="6">
|
||||
<div class="pagination">
|
||||
{% if ficheInscriptions_list.has_previous %}
|
||||
{% if ficheInscriptions_list.previous_page_number == 1 %}
|
||||
<a class="item" href="?page={{ ficheInscriptions_list.previous_page_number }}"><</a>
|
||||
<a class="item" href="?page=1">1</a>
|
||||
{% else %}
|
||||
<a class="item" href="?page={{ ficheInscriptions_list.previous_page_number }}"><</a>
|
||||
<a class="item" href="?page=1">1</a>
|
||||
<a class="item" >...</a>
|
||||
{% endif %}
|
||||
{% endif %}
|
||||
|
||||
{% if ficheInscriptions_list %}
|
||||
<a class="item active">{{ ficheInscriptions_list.number }}</a>
|
||||
{% else %}
|
||||
<a class="item">{{ ficheInscriptions_list.number }}</a>
|
||||
{% endif %}
|
||||
|
||||
{% if ficheInscriptions_list.has_next %}
|
||||
{% if ficheInscriptions_list.next_page_number == ficheInscriptions_list.paginator.num_pages %}
|
||||
<a class="item" href="?page={{ ficheInscriptions_list.next_page_number }}">{{ ficheInscriptions_list.next_page_number }}</a>
|
||||
<a class="item" href="?page={{ ficheInscriptions_list.next_page_number }}">></a>
|
||||
{% else %}
|
||||
<a class="item" >...</a>
|
||||
<a class="item" href="?page={{ ficheInscriptions_list.paginator.num_pages }}">{{ ficheInscriptions_list.paginator.num_pages }}</a>
|
||||
<a class="item" href="?page={{ ficheInscriptions_list.next_page_number }}">></a>
|
||||
{% endif %}
|
||||
{% endif %}
|
||||
</div>
|
||||
</td>
|
||||
<td></td>
|
||||
</tr>
|
||||
</tfoot>
|
||||
</table>
|
||||
|
||||
{% endblock %}
|
||||
31
Back-End/GestionInscriptions/templates/base.html
Normal file
31
Back-End/GestionInscriptions/templates/base.html
Normal file
@ -0,0 +1,31 @@
|
||||
{% load static %}
|
||||
|
||||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<link rel="stylesheet" href="{% static '/css/main.css' %}">
|
||||
<title>Monteschool</title>
|
||||
</head>
|
||||
<body>
|
||||
<div class="sidebar">
|
||||
<div class="itemlogo">
|
||||
<div class="circle"></div>
|
||||
</div>
|
||||
<a class="item active">
|
||||
<i class="icon receipt-edit"></i> Administration
|
||||
</a>
|
||||
<a class="item">
|
||||
<i class="icon user-line"></i> Statistiques
|
||||
</a>
|
||||
<a class="item">
|
||||
<i class="icon book"></i> Paramétrage
|
||||
</a>
|
||||
</div>
|
||||
<div class="container">
|
||||
{% block content %}
|
||||
{% endblock %}
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
@ -0,0 +1,97 @@
|
||||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
|
||||
<html>
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<title>{{ pdf_title }}</title>
|
||||
<style type="text/css">
|
||||
body {
|
||||
font-weight: 200;
|
||||
font-size: 14px;
|
||||
}
|
||||
.header {
|
||||
font-size: 20px;
|
||||
font-weight: 100;
|
||||
text-align: center;
|
||||
color: #007cae;
|
||||
}
|
||||
.title {
|
||||
font-size: 22px;
|
||||
font-weight: 100;
|
||||
/* text-align: right;*/
|
||||
padding: 10px 20px 0px 20px;
|
||||
}
|
||||
.title span {
|
||||
color: #007cae;
|
||||
}
|
||||
.details {
|
||||
padding: 10px 20px 0px 20px;
|
||||
text-align: left !important;
|
||||
/*margin-left: 40%;*/
|
||||
}
|
||||
.hrItem {
|
||||
border: none;
|
||||
height: 1px;
|
||||
/* Set the hr color */
|
||||
color: #333; /* old IE */
|
||||
background-color: #fff; /* Modern Browsers */
|
||||
}
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
{% load myTemplateTag %}
|
||||
<div class='wrapper'>
|
||||
<div class='header'>
|
||||
<p class='title'>{{ pdf_title }}</p>
|
||||
</div>
|
||||
<div>
|
||||
<div class='details'>
|
||||
Signé le : <b>{{ dateSignature }}</b> <br/>
|
||||
A : <b>{{ heureSignature }}</b>
|
||||
<hr class='hrItem' />
|
||||
<h1>ELEVE</h1>
|
||||
{% with niveau=eleve|recupereNiveauEleve %}
|
||||
{% with genre=eleve|recupereGenreEleve %}
|
||||
NOM : <b>{{ eleve.nom }}</b> <br/>
|
||||
PRENOM : <b>{{ eleve.prenom }}</b> <br/>
|
||||
ADRESSE : <b>{{ eleve.adresse }}</b> <br/>
|
||||
GENRE : <b>{{ genre }}</b> <br/>
|
||||
NE(E) LE : <b>{{ eleve.dateNaissance }}</b> <br/>
|
||||
A : <b>{{ eleve.lieuNaissance }} ({{ eleve.codePostalNaissance }})</b> <br/>
|
||||
NATIONALITE : <b>{{ eleve.nationalite }}</b> <br/>
|
||||
NIVEAU : <b>{{ niveau }}</b> <br/>
|
||||
MEDECIN TRAITANT : <b>{{ eleve.medecinTraitant }}</b> <br/>
|
||||
{% endwith %}
|
||||
{% endwith %}
|
||||
<hr class='hrItem' />
|
||||
<h1>RESPONSABLES</h1>
|
||||
{% with responsables_List=eleve.getResponsables %}
|
||||
{% with freres_List=eleve.getFreres %}
|
||||
{% for responsable in responsables_List%}
|
||||
<h2>Responsable {{ forloop.counter }}</h2>
|
||||
NOM : <b>{{ responsable.nom }}</b> <br/>
|
||||
PRENOM : <b>{{ responsable.prenom }}</b> <br/>
|
||||
ADRESSE : <b>{{ responsable.adresse }}</b> <br/>
|
||||
NE(E) LE : <b>{{ responsable.dateNaissance }}</b> <br/>
|
||||
MAIL : <b>{{ responsable.mail }}</b> <br/>
|
||||
TEL : <b>{{ responsable.telephone }}</b> <br/>
|
||||
PROFESSION : <b>{{ responsable.profession }}</b> <br/>
|
||||
{% endfor %}
|
||||
<hr class='hrItem' />
|
||||
<h1>FRATRIE</h1>
|
||||
{% for frere in freres_List%}
|
||||
<h2>Frère - Soeur {{ forloop.counter }}</h2>
|
||||
NOM : <b>{{ frere.nom }}</b> <br/>
|
||||
PRENOM : <b>{{ frere.prenom }}</b> <br/>
|
||||
NE(E) LE : <b>{{ frere.dateNaissance }}</b> <br/>
|
||||
{% endfor %}
|
||||
<hr class='hrItem' />
|
||||
<h1>MODALITES DE PAIEMENT</h1>
|
||||
{% with modePaiement=eleve|recupereModePaiement %}
|
||||
<b>{{ modePaiement }}</b> <br/>
|
||||
{% endwith %}
|
||||
{% endwith %}
|
||||
{% endwith %}
|
||||
</div>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
Reference in New Issue
Block a user