initial upload
This commit is contained in:
14
monaem/templates/404.pt
Normal file
14
monaem/templates/404.pt
Normal file
@@ -0,0 +1,14 @@
|
||||
<metal:block use-macro="main_template">
|
||||
<div metal:fill-slot="content">
|
||||
|
||||
<div class="content text-center">
|
||||
<img src="${request.static_url('monaem:static/img/logo.png')}" width="90" />
|
||||
<br />
|
||||
<br />
|
||||
<p class="lead"><span class="font-semi-bold">Désolé ! </span> La page demandée n'est pas encore créée.</p>
|
||||
</div>
|
||||
<br />
|
||||
<br />
|
||||
|
||||
</div><!-- content -->
|
||||
</metal:block>
|
||||
18
monaem/templates/default/affiche_message.pt
Normal file
18
monaem/templates/default/affiche_message.pt
Normal file
@@ -0,0 +1,18 @@
|
||||
<metal:block use-macro="main_template">
|
||||
|
||||
<div metal:fill-slot="content">
|
||||
<div class="alert alert-info"
|
||||
tal:condition="messages"
|
||||
tal:repeat="message messages">
|
||||
<h4>${structure:message}</h4>
|
||||
</div>
|
||||
<p>
|
||||
<br />
|
||||
<a href="${url_identification}">Se connecter à mon compte</a>
|
||||
<br /><br />
|
||||
</p>
|
||||
<br />
|
||||
<br />
|
||||
</div>
|
||||
|
||||
</metal:block>
|
||||
35
monaem/templates/default/agence.pt
Normal file
35
monaem/templates/default/agence.pt
Normal file
@@ -0,0 +1,35 @@
|
||||
<metal:block use-macro="main_template">
|
||||
<div metal:fill-slot="content">
|
||||
|
||||
<div class="alert alert-warning" tal:condition="not item">
|
||||
Aucune agence trouvée.
|
||||
</div>
|
||||
<br />
|
||||
|
||||
<div tal:condition="item">
|
||||
<div class="row">
|
||||
<div class="col-md-4">
|
||||
<h3><span tal:content="item.LIBELLE" /></h3>
|
||||
<p>
|
||||
<span class="glyphicon glyphicon-map-marker"></span> <span tal:content="item.adresse" />,
|
||||
<span tal:content="item.codepostal" /> <span tal:content="item.ville" /><br />
|
||||
|
||||
<span class="glyphicon glyphicon-phone"></span> <span tal:content="item.TELEPHONE" /><br />
|
||||
<span class="glyphicon glyphicon-envelope"></span> <span tal:content="item.email" /><br />
|
||||
</p>
|
||||
<p><a href="http://www.marietton.com/agencesMarietton.php">Découvrez toutes les agences MARIETTON</a></p>
|
||||
</div>
|
||||
<div class="col-md-8">
|
||||
<iframe src="${item.google_maps}" width="600" height="450" frameborder="0" style="border:1" ></iframe>
|
||||
</div>
|
||||
<br />
|
||||
</div> <!-- row -->
|
||||
</div>
|
||||
<br />
|
||||
<br />
|
||||
<br />
|
||||
|
||||
</div><!-- content -->
|
||||
</metal:block>
|
||||
|
||||
|
||||
98
monaem/templates/default/change_details.pt
Normal file
98
monaem/templates/default/change_details.pt
Normal file
@@ -0,0 +1,98 @@
|
||||
<metal:block use-macro="main_template">
|
||||
<div metal:fill-slot="content">
|
||||
|
||||
<div class="row">
|
||||
|
||||
<!-- Bloc adresse postale -->
|
||||
<div class="col-xs-offset-2 col-xs-5 well" tal:condition="member">
|
||||
${member.ADRESSE}<br />
|
||||
<div tal:condition="member.ADRESSE2">
|
||||
${member.ADRESSE2}<br />
|
||||
</div>
|
||||
${member.CODEPOST} ${member.VILLE}
|
||||
<br />
|
||||
<p>[<i>Pour changer votre adresse postale, veuillez contacter votre agence.</i>]</p>
|
||||
</div>
|
||||
</div>
|
||||
<br />
|
||||
|
||||
<div class="row">
|
||||
<form id="change-member-details-form" class="form-horizontal" action="${url}" method="post" tal:condition="member"
|
||||
data-fv-framework="bootstrap"
|
||||
data-fv-icon-valid="glyphicon glyphicon-ok"
|
||||
data-fv-icon-invalid="glyphicon glyphicon-remove"
|
||||
data-fv-icon-validating="glyphicon glyphicon-refresh">
|
||||
|
||||
<div class="form-group">
|
||||
<label class="col-xs-2 control-label">Votre courriel</label>
|
||||
<div class="col-xs-5">
|
||||
<input class="form-control" type="text" name="email"
|
||||
value="${member.email}" placeholder="50 caractères maximum"
|
||||
data-fv-notempty="true"
|
||||
data-fv-notempty-message="L'adresse email est obligatoire"
|
||||
data-fv-emailaddress="true"
|
||||
data-fv-emailaddress-message="L'adresse email n'est pas valide" />
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="col-xs-2 control-label">Téléphone personnel</label>
|
||||
<div class="col-xs-5">
|
||||
<input class="form-control" type="text" name="TEL"
|
||||
value="${member.TEL}" placeholder="20 caractères maximum"
|
||||
data-fv-phone="true"
|
||||
data-fv-phone-country="FR"
|
||||
data-fv-phone-message="Ce numéro de téléphone n'est pas vailde" />
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="col-xs-2 control-label">Téléphone mobile</label>
|
||||
<div class="col-xs-5">
|
||||
<input class="form-control" type="text" name="TEL2"
|
||||
value="${member.TEL2}" placeholder="20 caractères maximum"
|
||||
data-fv-phone="true"
|
||||
data-fv-phone-country="FR"
|
||||
data-fv-phone-message="Ce numéro de téléphone n'est pas vailde" />
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="col-xs-2 control-label">Téléphone du père</label>
|
||||
<div class="col-xs-5">
|
||||
<input class="form-control" type="text" name="TEL3"
|
||||
value="${member.TEL3}" placeholder="20 caractères maximum"
|
||||
data-fv-phone="true"
|
||||
data-fv-phone-country="FR"
|
||||
data-fv-phone-message="Ce numéro de téléphone n'est pas vailde" />
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="col-xs-2 control-label">Téléphone de la mère</label>
|
||||
<div class="col-xs-5">
|
||||
<input class="form-control" type="text" name="TEL4"
|
||||
value="${member.TEL4}" placeholder="20 caractères maximum"
|
||||
data-fv-phone="true"
|
||||
data-fv-phone-country="FR"
|
||||
data-fv-phone-message="Ce numéro de téléphone n'est pas vailde" />
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<div class="col-xs-offset-2 col-xs-5">
|
||||
<button class="btn btn-primary" type="submit" name="form.submitted">
|
||||
<span class="glyphicon glyphicon-ok"></span> Enregistrer</button>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
</div> <!-- row -->
|
||||
<br />
|
||||
<br />
|
||||
|
||||
<script>
|
||||
$(document).ready(function() {
|
||||
$('#change-member-details-form').formValidation();
|
||||
$('form input').on('keypress', function(e) {
|
||||
return e.which !== 13;
|
||||
});
|
||||
});
|
||||
</script>
|
||||
|
||||
</div>
|
||||
</metal:block>
|
||||
100
monaem/templates/default/change_password.pt
Normal file
100
monaem/templates/default/change_password.pt
Normal file
@@ -0,0 +1,100 @@
|
||||
<metal:block use-macro="main_template">
|
||||
<div metal:fill-slot="content">
|
||||
|
||||
<div tal:condition="message" tal:content="message" class="alert alert-danger" />
|
||||
<br />
|
||||
<div class="row">
|
||||
<form id="change-password-form" class="form-horizontal" action="${url}" method="post" tal:condition="member"
|
||||
data-fv-framework="bootstrap"
|
||||
data-fv-icon-valid="glyphicon glyphicon-ok"
|
||||
data-fv-icon-invalid="glyphicon glyphicon-remove"
|
||||
data-fv-icon-validating="glyphicon glyphicon-refresh">
|
||||
|
||||
<div class="form-group">
|
||||
<label class="col-xs-3 control-label">Mot de passe actuel</label>
|
||||
<div class="col-xs-4">
|
||||
<input class="form-control" type="password" name="old_password"
|
||||
data-fv-notempty="true"
|
||||
data-fv-notempty-message="Le mot de passe est obligatoire" />
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="col-xs-3 control-label">Nouveau mot de passe</label>
|
||||
<div class="col-xs-4">
|
||||
<input class="form-control" type="password" name="new_password1" id="new_password1"
|
||||
placeholder="20 caractères maximum"
|
||||
data-fv-notempty="true"
|
||||
data-fv-notempty-message="Le mot de passe est obligatoire" />
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="col-xs-3 control-label">Confirmer le mot de passe</label>
|
||||
<div class="col-xs-4">
|
||||
<input class="form-control" type="password" name="new_password2" id="new_password2"
|
||||
placeholder="20 caractères maximum"
|
||||
data-fv-identical="true"
|
||||
data-fv-identical-field="password"
|
||||
data-fv-identical-message="Le mot de passe et sa confirmation ne sont pas identiques" />
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="form-group">
|
||||
<div class="col-xs-offset-3 col-xs-4">
|
||||
<button class="btn btn-primary" type="submit" name="form.submitted">
|
||||
<span class="glyphicon glyphicon-ok"></span> Enregistrer</button>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
<br />
|
||||
<br />
|
||||
<br />
|
||||
</div> <!-- row -->
|
||||
|
||||
<script>
|
||||
$(document).ready(function() {
|
||||
var fv = $('#change-password-form').formValidation({
|
||||
fields: {
|
||||
new_password1: {
|
||||
validators: {
|
||||
notEmpty: {
|
||||
message: 'Le mot de passe est obligatoire'
|
||||
},
|
||||
stringLength:{
|
||||
min: 8,
|
||||
max: 20,
|
||||
message: "La longueur du mot de passe n'est pas respectée, minimum 8, maximum 20"
|
||||
},
|
||||
regexp: {
|
||||
regexp: /^(?=.*\d)(?=.*[!@#$%^&*\_\-\.\+,;\:\\/§à\]\[\?\{\}])(?=.*[a-z])(?=.*[A-Z])[0-9a-zA-Z!@#$%^&*\_\-\.\+,;\:\\/§à\]\[\?\{\}]{8,}$/,
|
||||
message: 'Le mot de passe doit contenir au minimum une lettre, un nombre,un majuscule, un minuscle, et un caractère speciaux.',
|
||||
}
|
||||
}
|
||||
},
|
||||
new_password2: {
|
||||
validators: {
|
||||
notEmpty: {
|
||||
message: 'Le mot de passe est obligatoire'
|
||||
},
|
||||
callback: {
|
||||
message: 'Le mot de passe et sa confirmation ne sont pas identiques.',
|
||||
callback: function(input) {
|
||||
var new_password1 = $('#new_password1').val();
|
||||
return new_password1 == input;
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
},
|
||||
}).data();
|
||||
|
||||
$('form input').on('keypress', function(e) {
|
||||
return e.which !== 13;
|
||||
});
|
||||
$('#new_password1').on('change input', function(){
|
||||
fv.formValidation.revalidateField($('#new_password2'))
|
||||
});
|
||||
});
|
||||
</script>
|
||||
|
||||
</div>
|
||||
</metal:block>
|
||||
35
monaem/templates/default/connecter_a.pt
Normal file
35
monaem/templates/default/connecter_a.pt
Normal file
@@ -0,0 +1,35 @@
|
||||
<metal:block use-macro="main_template">
|
||||
|
||||
<div metal:fill-slot="content">
|
||||
<br />
|
||||
<div id="detail" class="col-md-8">
|
||||
|
||||
<form id="connecter_a-form" role="form" action="${url}" method="post">
|
||||
|
||||
<div class="form-group">
|
||||
<label class="control-label" for="matricule">Matricule du compte à prendre en main:</label>
|
||||
<input class="form-control" type="text" id="matricule" name="login" value="" placeholder="Code élève à prendre en main"/>
|
||||
</div>
|
||||
|
||||
<div class="form-group">
|
||||
<input class="btn btn-primary" type="submit" name="form.submitted" value="Se connecter à" />
|
||||
</div>
|
||||
|
||||
</form>
|
||||
|
||||
<br />
|
||||
<br />
|
||||
</div> <!-- detail -->
|
||||
|
||||
<script>
|
||||
$(document).ready(function() {
|
||||
$('#connecter_a-form').formValidation();
|
||||
$('form input').on('keypress', function(e) {
|
||||
return e.which !== 13;
|
||||
});
|
||||
});
|
||||
</script>
|
||||
</div>
|
||||
|
||||
</metal:block>
|
||||
|
||||
37
monaem/templates/default/date_examen.pt
Normal file
37
monaem/templates/default/date_examen.pt
Normal file
@@ -0,0 +1,37 @@
|
||||
<metal:block use-macro="main_template">
|
||||
<div metal:fill-slot="content">
|
||||
|
||||
|
||||
<br />
|
||||
<div tal:condition="item">
|
||||
<p>Vous êtes convoqué(e) le <b>${item.date}</b> à <b>${item.heure}</b><br />
|
||||
à l'examen ${item.type} du permis de conduire à :</p>
|
||||
<dd>
|
||||
<b>${item.adresse}</b><br />
|
||||
<b>${item.lieu}</b>
|
||||
</dd>
|
||||
|
||||
<br />
|
||||
<div class="alert alert-success" tal:condition="item.resultat">
|
||||
Résultat de l'examen : <b>${item.resultat}</b>
|
||||
<br />
|
||||
</div>
|
||||
<p>
|
||||
<i>Cette convocation est valable sous réserve du réglement total des sommes dûes. En cas d'empêchement, contactez <a href="http://www.marietton.com/contacts.php">votre agence Marietton</a>. Tout candidat qui, sans excuse valable, ne se présente pas au jour et à l'heure fixés pour l'examen, perd le montant du droit qu'il a consigné. Toute inscription non décommandée 10 jours à l'avance sera considérée comme dûe.<br />
|
||||
<br />
|
||||
Le jour de l'examen, vous devrez vous présenter muni(e) des <a href="/faq_view/2757" >élements suivants</a>
|
||||
</p>
|
||||
</div>
|
||||
|
||||
<!-- Si pas d'articles (ou erreur SQL...) -->
|
||||
<span tal:condition="not item">
|
||||
<p class="alert alert-warning">Vous n'avez pas de date d'examen prévue.</p>
|
||||
</span>
|
||||
|
||||
<br />
|
||||
<br />
|
||||
|
||||
</div><!-- content -->
|
||||
</metal:block>
|
||||
|
||||
|
||||
68
monaem/templates/default/doc_edit.pt
Normal file
68
monaem/templates/default/doc_edit.pt
Normal file
@@ -0,0 +1,68 @@
|
||||
<metal:block use-macro="main_template">
|
||||
<div metal:fill-slot="content">
|
||||
|
||||
<h3>${justif.LIBELLE}</h3>
|
||||
<p class="text-danger">${justif.conditions}</p>
|
||||
|
||||
<form id="upload_doc-form" action="${url}" method="post" class="form-horizontal"
|
||||
data-fv-framework="bootstrap"
|
||||
data-fv-icon-valid="glyphicon glyphicon-ok"
|
||||
data-fv-icon-invalid="glyphicon glyphicon-remove"
|
||||
data-fv-icon-validating="glyphicon glyphicon-refresh">
|
||||
|
||||
<div class="form-group" tal:condition="justif.code == 'PHOTO_ID'">
|
||||
<label class="control-label col-xs-4" for="libelle_fic">Code e-photo</label>
|
||||
<div class="col-xs-8">
|
||||
<input class="form-control" type="text" id="libelle_fic" name="libelle_fic" value="${justif.libelle_fic}">
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="control-label col-xs-4" for="intitule">Nom du fichier</label>
|
||||
<div class="col-xs-8">
|
||||
<p>${justif.nom_fic}
|
||||
|
||||
<button class="btn btn-warning" type="submit" name="form.erased"
|
||||
tal:condition="justif.nom_fic and justif.valide == 0">
|
||||
<i class="glyphicon glyphicon-erase"></i> Effacer le fichier</button>
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="form-group">
|
||||
<label class="control-label col-xs-4">Taille du fichier</label>
|
||||
<div class="col-xs-8">
|
||||
<p class="form-control-static">${justif.taille_fic} Ko</p>
|
||||
</div>
|
||||
<label class="control-label col-xs-4">Créé par</label>
|
||||
<div class="col-xs-8">
|
||||
<p class="form-control-static">${justif.cd_uti} </p>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<div class="col-xs-offset-4 col-xs-8">
|
||||
<label tal:condition= "justif.valide != 0"><b>Le document est validé</b>
|
||||
</label>
|
||||
</div>
|
||||
</div>
|
||||
<br />
|
||||
<div class="col-sm-offset-4 col-sm-8">
|
||||
<div class="form-group">
|
||||
<a class="btn btn-default" href="${url_retour}">
|
||||
<span class="glyphicon glyphicon-arrow-left"></span> Retour</a>
|
||||
<button class="btn btn-primary" type="submit" name="form.submitted"
|
||||
tal:condition="justif.valide == 0 and justif.code == 'PHOTO_ID'">
|
||||
<i class="glyphicon glyphicon-pencil"></i> Enregister</button>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
|
||||
|
||||
<script type="text/javascript">
|
||||
$('#uploadButton').on('click', function(){
|
||||
$('i.gly-spin').removeClass('gly-spin');
|
||||
$('i').addClass('gly-spin');
|
||||
});
|
||||
</script>
|
||||
|
||||
</div>
|
||||
</metal:block>
|
||||
59
monaem/templates/default/doc_upload.pt
Normal file
59
monaem/templates/default/doc_upload.pt
Normal file
@@ -0,0 +1,59 @@
|
||||
<metal:block use-macro="main_template">
|
||||
<div metal:fill-slot="content">
|
||||
|
||||
<div class="panel panel-default">
|
||||
<div class="panel-heading">
|
||||
<h4 class="panel-title">
|
||||
<span class="glyphicon glyphicon-plus"></span> ${justif.LIBELLE}
|
||||
</h4>
|
||||
</div>
|
||||
<div class="panel-body">
|
||||
<form id="upload_doc-form" action="${url}" method="post" accept-charset="utf-8" enctype="multipart/form-data"
|
||||
data-fv-framework="bootstrap"
|
||||
data-fv-icon-valid="glyphicon glyphicon-ok"
|
||||
data-fv-icon-invalid="glyphicon glyphicon-remove"
|
||||
data-fv-icon-validating="glyphicon glyphicon-refresh">
|
||||
|
||||
<p class="text-danger">${justif.conditions}</p>
|
||||
<div class="form-group" tal:condition="justif.code == 'PHOTO_ID'">
|
||||
<label class="control-label" for="libelle_fic">Veuillez saisir un code e-photo :</label>
|
||||
<div>
|
||||
<input class="form-control" type="text" required id="libelle_fic" name="libelle_fic" value="${justif.libelle_fic}"
|
||||
data-fv-notempty="true"
|
||||
data-fv-notempty-message="Le code est obligatoire" />
|
||||
</div>
|
||||
<br />
|
||||
<p><b>ou bien </b></p>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label for="uploadfile">Veuillez séléctionner un fichier :</label>
|
||||
<span class="btn btn-default btn-file">
|
||||
<input class="file" id="uploadfile" name="uploadfile" type="file" multiple />
|
||||
</span>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<a class="btn btn-default" href="${url_retour}">
|
||||
<span class="glyphicon glyphicon-arrow-left"></span> Retour</a>
|
||||
<button id="uploadButton" class="btn btn-primary" type="submit" name="form.submitted">
|
||||
<i class="glyphicon glyphicon-refresh"></i> Télécharger</button>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
<div class="panel-footer">
|
||||
<ul>
|
||||
<li>Seuls les documents au format <b>PNG, JPG ou JPEG</b> seront acceptés.</li>
|
||||
<li>La taille de chaque document ne doit <b>pas dépasser 4 Mo</b>.</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
<script type="text/javascript">
|
||||
$('#uploadButton').on('click', function(){
|
||||
$('i.gly-spin').removeClass('gly-spin');
|
||||
$('i').addClass('gly-spin');
|
||||
});
|
||||
</script>
|
||||
|
||||
</div>
|
||||
</metal:block>
|
||||
66
monaem/templates/default/email_code.pt
Normal file
66
monaem/templates/default/email_code.pt
Normal file
@@ -0,0 +1,66 @@
|
||||
<metal:block use-macro="main_template">
|
||||
<div metal:fill-slot="content">
|
||||
|
||||
<div class="alert alert-danger" tal:condition="message" tal:content="message" />
|
||||
|
||||
<div class="row">
|
||||
|
||||
<form id="email_login-form" action="${url}" method="post" class="form-horizontal"
|
||||
data-fv-framework="bootstrap"
|
||||
data-fv-icon-valid="glyphicon glyphicon-ok"
|
||||
data-fv-icon-invalid="glyphicon glyphicon-remove"
|
||||
data-fv-icon-validating="glyphicon glyphicon-refresh">
|
||||
|
||||
<div class="form-group">
|
||||
<label class="control-label col-sm-4" for="cnrs_id">Votre nom</label>
|
||||
<div class="col-sm-8">
|
||||
<input class="form-control" type="text" id="name" name="name"
|
||||
data-fv-notempty="true"
|
||||
data-fv-notempty-message="Le nom est obligatoire" />
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="control-label col-sm-4" for="cnrs_id">Votre prénom</label>
|
||||
<div class="col-sm-8">
|
||||
<input class="form-control" type="forname" id="forname" name="forname"
|
||||
data-fv-notempty="true"
|
||||
data-fv-notempty-message="Votre prénom obligatoire" />
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="control-label col-sm-4" for="birthday">Date de naissance</label>
|
||||
<div class="col-sm-8">
|
||||
<input class="form-control" type="text" id="birthday" name="birthday" value="" placeholder="jj/mm/aaaa"
|
||||
data-fv-notempty="true"
|
||||
data-fv-notempty-message="La date de naissance est obligatoire"
|
||||
data-fv-date="true"
|
||||
data-fv-date-format="DD/MM/YYYY"
|
||||
data-fv-date-message="La date de naissance n'est pas valide (JJ/MM/AAAA)" />
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<div class="col-sm-offset-4 col-sm-8">
|
||||
<button class="btn btn-primary" type="submit" name="form.submitted">Envoyer</button>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
|
||||
<br />
|
||||
<br />
|
||||
</div><!-- row -->
|
||||
<br />
|
||||
<br />
|
||||
|
||||
<script>
|
||||
$(document).ready(function() {
|
||||
$('#email_login-form').formValidation({
|
||||
excluded: [':disabled'],
|
||||
});
|
||||
$('form input').on('keypress', function(e) {
|
||||
return e.which !== 13;
|
||||
});
|
||||
});
|
||||
</script>
|
||||
|
||||
</div>
|
||||
</metal:block>
|
||||
61
monaem/templates/default/email_password.pt
Normal file
61
monaem/templates/default/email_password.pt
Normal file
@@ -0,0 +1,61 @@
|
||||
<metal:block use-macro="main_template">
|
||||
<div metal:fill-slot="content">
|
||||
|
||||
<div class="alert alert-danger" tal:condition="message" tal:content="message" />
|
||||
|
||||
<div class="row">
|
||||
<form id="email_pwd-form" role="form" action="${url}" method="post" class="form-horizontal"
|
||||
data-fv-framework="bootstrap"
|
||||
data-fv-icon-valid="glyphicon glyphicon-ok"
|
||||
data-fv-icon-invalid="glyphicon glyphicon-remove"
|
||||
data-fv-icon-validating="glyphicon glyphicon-refresh">
|
||||
<div class="form-group">
|
||||
<label class="control-label col-sm-4" for="login">Entrez votre code élève</label>
|
||||
<div class="col-sm-8">
|
||||
<input class="form-control" type="text" name="login" placeholder="Le code élève à 6 chiffres"
|
||||
data-fv-notempty="true"
|
||||
data-fv-notempty-message="Le code élève est obligatoire"
|
||||
data-fv-digits="true"
|
||||
data-fv-digits-message="Le code élève est un nombre à 6 chiffres" />
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="control-label col-sm-4" for="date_naissance">Date de naissance</label>
|
||||
<div class="col-sm-8">
|
||||
<input class="form-control" type="text" id="date_naissance" name="date_naissance" value="" placeholder="jj/mm/aaaa"
|
||||
data-fv-notempty="true"
|
||||
data-fv-notempty-message="La date de naissance est obligatoire"
|
||||
data-fv-date="true"
|
||||
data-fv-date-format="DD/MM/YYYY"
|
||||
data-fv-date-message="La date de naissance n'est pas valide (JJ/MM/AAAA)" />
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<div class="col-sm-offset-4 col-sm-8">
|
||||
<button class="btn btn-primary" type="submit" name="form.submitted">
|
||||
<span class="glyphicon glyphicon-send"></span> Envoyer</button>
|
||||
<br>
|
||||
<br>
|
||||
<p>
|
||||
Un lien permettant de redéfinir votre mot de passe vous sera transmis à l'adresse email enregistrée dans votre fiche Elève.
|
||||
</p>
|
||||
<p>
|
||||
<a href="http://www.marietton.com/contact.php" target="_blank">Besoin d'aide ?</a>
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
</div><!-- row -->
|
||||
<br />
|
||||
|
||||
<script>
|
||||
$(document).ready(function() {
|
||||
$('#email_pwd-form').formValidation();
|
||||
$('form input').on('keypress', function(e) {
|
||||
return e.which !== 13;
|
||||
});
|
||||
});
|
||||
</script>
|
||||
|
||||
</div>
|
||||
</metal:block>
|
||||
15
monaem/templates/default/faq_view.pt
Normal file
15
monaem/templates/default/faq_view.pt
Normal file
@@ -0,0 +1,15 @@
|
||||
<metal:block use-macro="main_template">
|
||||
<div metal:fill-slot="content">
|
||||
|
||||
<hr>
|
||||
<div tal:replace="structure texte">
|
||||
Page text goes here.
|
||||
</div>
|
||||
<hr>
|
||||
<br />
|
||||
<br />
|
||||
<br />
|
||||
<br />
|
||||
|
||||
</div>
|
||||
</metal:block>
|
||||
92
monaem/templates/default/fiche_inscription.pt
Normal file
92
monaem/templates/default/fiche_inscription.pt
Normal file
@@ -0,0 +1,92 @@
|
||||
<metal:block use-macro="main_template">
|
||||
<div metal:fill-slot="content">
|
||||
|
||||
|
||||
<br />
|
||||
<!-- Fiche d'inscription -->
|
||||
<br />
|
||||
<div tal:condition="item">
|
||||
<table class="table">
|
||||
<tr>
|
||||
<td width="200">Fiche élève No<br /><b><span tal:content="item.CD_CLI" /></b></td>
|
||||
<td width="300">
|
||||
<span tal:content="item.CIVILITE" /> <span tal:content="item.NOMPREN" /><br />
|
||||
<span tal:content="item.NOM_JF" /><br />
|
||||
<span tal:content="item.ADRESSE" /><br />
|
||||
<span tal:content="item.ADRESSE2" /><br />
|
||||
<span tal:content="item.CODEPOST" /> <span tal:content="item.VILLE" /><br />
|
||||
</td>
|
||||
<td valign="bottom">
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
Tél. fixe<br />
|
||||
Tél. portable<br />
|
||||
Tél. du père<br />
|
||||
Tél. de la mère<br />
|
||||
Email
|
||||
</td>
|
||||
<td>
|
||||
<span tal:content="item.TEL" /><br />
|
||||
<span tal:content="item.TEL2" /><br />
|
||||
<span tal:content="item.TEL3" /><br />
|
||||
<span tal:content="item.TEL4" /><br />
|
||||
<span tal:content="item.email" />
|
||||
</td>
|
||||
<td valign="bottom">
|
||||
<a href="${request.application_url}/changer_coordonnees"
|
||||
class="btn btn-primary" role="button">
|
||||
<span class="glyphicon glyphicon-pencil"></span> Modifier</a>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
Profession<br />
|
||||
Nationalité<br />
|
||||
Date de naissance<br />
|
||||
Lieu de naissance<br />
|
||||
</td>
|
||||
<td>
|
||||
<span tal:content="item.PROFESSION" /><br />
|
||||
<span tal:content="item.NATION" /><br />
|
||||
<span tal:content="item.DATE_NAIS.strftime('%d/%m/%Y')" /><br />
|
||||
<span tal:content="item.LIEU_NAIS" /> - <span tal:content="item.DEPT_NAIS" /> - <span tal:content="item.PAYS_NAIS" />
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
Permis demandé<br />
|
||||
Formule<br />
|
||||
Fin de validité du forfait le<br />
|
||||
Fin de forfait code le<br />
|
||||
</td>
|
||||
<td>
|
||||
<span tal:content="item.PERMIS_DEMANDE" /><br />
|
||||
<span tal:content="item.FORMULE" /><br />
|
||||
<span tal:content="item.fin_contrat_le.strftime('%d/%m/%Y')" /><br />
|
||||
<span tal:condition = "item.fin_forfait_code_le"
|
||||
tal:content="item.fin_forfait_code_le.strftime('%d/%m/%Y')" />
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
No d'immatriculation<br />
|
||||
Enregistré le<br />
|
||||
</td>
|
||||
<td>
|
||||
<span tal:content="item.DOSSIER_NO" /><br />
|
||||
<span tal:condition = "item.DOSSIER_DATE"
|
||||
tal:content="item.DOSSIER_DATE.strftime('%d/%m/%Y')" /><br />
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
</table>
|
||||
</div>
|
||||
|
||||
<br />
|
||||
<br />
|
||||
</div><!-- content -->
|
||||
</metal:block>
|
||||
|
||||
|
||||
256
monaem/templates/default/home.pt
Normal file
256
monaem/templates/default/home.pt
Normal file
@@ -0,0 +1,256 @@
|
||||
<metal:block use-macro="main_template">
|
||||
|
||||
<div metal:fill-slot="content">
|
||||
|
||||
<!-- Mon calendrier -->
|
||||
<!-- L'eleve a-t-il un email ? -->
|
||||
<p tal:condition="not has_email" class="text-danger">
|
||||
Votre adresse email est obligatoire pour le bon réroulement des opérations en ligne. Veuillez le renseigner en allant dans la rubrique <a href="/changer_coordonnees">'Changer mes coordonnées'</a>.
|
||||
</p>
|
||||
<div class="jambotron well">
|
||||
<h4><span class="glyphicon glyphicon-bullhorn"></span> INFOS COVID-19</h4>
|
||||
<p>
|
||||
Pendant toute la durée de la crise sanitaire, informez-vous régulièrement afin de connaitre les dernières informations concernant notre activité.
|
||||
Ces informations sont régulièrement mises à jour sur nos réseaux sociaux, sur marietton.com ou directement en cliquant sur le bouton ci-après.
|
||||
</p>
|
||||
<p class="text-right">
|
||||
<a href="https://www.marietton.com/covid19.php" target="ca_blank"
|
||||
class="btn-sm btn-success" role="button">
|
||||
<span class="glyphicon glyphicon-chevron-right"></span> TOUTES LES INFOS</a>
|
||||
</p>
|
||||
</div>
|
||||
<!-- Prochain rendez-vous -->
|
||||
<div class="panel panel-info">
|
||||
<div class="panel-body">
|
||||
<div tal:condition="hasSuivi" class="row text-center">
|
||||
<div class="col-md-4">
|
||||
<a href="${request.application_url}/carnet_rdv">
|
||||
<span class="glyphicon glyphicon-calendar" style="font-size: 56px"></span>
|
||||
<h4>Gérer mes RdV <span class="badge">${nb_rdv}</span></h4></a>
|
||||
</div>
|
||||
<div class="col-md-4" tal:condition="hasSuivi">
|
||||
<a href="${request.application_url}/show_iframe/suivi">
|
||||
<span class="glyphicon glyphicon-education" style="font-size: 56px"></span>
|
||||
<h4>Suivi pédagogique</h4></a>
|
||||
</div>
|
||||
<div class="col-md-4">
|
||||
<a href="${request.application_url}/show_iframe/videos">
|
||||
<span class="glyphicon glyphicon-facetime-video logo-small" ></span>
|
||||
<h4>Vidéos pédagogiques</h4></a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div tal:condition="hasOutilPedago" class="panel panel-info">
|
||||
<div class="panel-body">
|
||||
<div class="row text-center">
|
||||
<div class="col-md-12">
|
||||
<a href="https://pedago.mariettonpro.fr/index.php?${param_suivi}">
|
||||
<span class="glyphicon glyphicon-education" style="font-size: 56px"></span>
|
||||
<h4>Outils pédagogique</h4></a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<!-- Mon compte -->
|
||||
<h3 tal:condition="hasSuivi"><span class="glyphicon glyphicon-briefcase"></span> Mon compte</h3>
|
||||
<!-- Mon en-cours -->
|
||||
<div tal:condition="hasSuivi" class="jambotron well text-center">
|
||||
<div style="font-size: 18px">
|
||||
Solde au ${today} :
|
||||
<b><span class="text-danger">${remain_to_pay}</b>
|
||||
<a tal:condition="solde" href="${request.application_url}/reglement/CPT/${solde}/1" class="btn btn-primary" role="button">
|
||||
<span class="glyphicon glyphicon-plus"></span>
|
||||
Régler</a> <img tal:condition="solde" src="${request.static_url('monaem:static/img/CB.gif')}" alt="CB logo" />
|
||||
</div>
|
||||
<p> </p>
|
||||
|
||||
<a href="${request.application_url}/crediter" class="btn btn-primary" role="button">
|
||||
<span class="glyphicon glyphicon-plus"></span>
|
||||
Créditer mon compte</a>
|
||||
|
||||
<a href="${request.application_url}/extrait_compte" class="btn btn-success" role="button">
|
||||
<span class="glyphicon glyphicon-eye-open"></span>
|
||||
Voir l'extrait de compte</a>
|
||||
</div>
|
||||
|
||||
|
||||
<h3><span class="glyphicon glyphicon-calendar"></span> Mon calendrier</h3>
|
||||
<!-- Dates de stage -->
|
||||
<div class="panel panel-info">
|
||||
<div class="panel-heading">
|
||||
<h4><span class="glyphicon glyphicon-check"></span> Dates de stage</h4>
|
||||
</div>
|
||||
<div class="panel-body" tal:condition="not stage.debut_en_clair">
|
||||
|
||||
<div class="row">
|
||||
<div class="col-md-6">
|
||||
<i>Vous n'avez pas de stage prévu. </i>
|
||||
</div>
|
||||
<div class="col-md-6" tal:condition="reservation">
|
||||
<a href="${request.application_url}/stages_reservation"
|
||||
class="btn btn-primary" role="button">
|
||||
<span class="glyphicon glyphicon-plus"></span> Réserver un stage </a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="panel-body" tal:condition="stage.debut_en_clair">
|
||||
<div class="row">
|
||||
<div class="col-md-6">
|
||||
Votre stage est prévu<br />
|
||||
du <b>${stage.stage_debut}</b> au <b>${stage.stage_fin}</b><br />
|
||||
à <b>${lieu_stage}</b><br />
|
||||
${debut_en_clair}
|
||||
</div>
|
||||
<div class="col-md-6" tal:condition="diff">
|
||||
<a href="${request.application_url}/stages_dates"
|
||||
class="btn btn-primary" role="button">
|
||||
<span class="glyphicon glyphicon-edit"></span> Modifier les dates </a>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<!-- Date d'examen -->
|
||||
<div tal:condition="hasSuivi" class="panel panel-info">
|
||||
<div class="panel-heading">
|
||||
<h4><span class="glyphicon glyphicon-blackboard"></span> Date d'examen</h4>
|
||||
</div>
|
||||
<div class="panel-body" tal:condition="not examen">
|
||||
<i>Vous n'avez pas de date d'examen prévue.</i>
|
||||
</div>
|
||||
<div class="panel-body" tal:condition="examen">
|
||||
<div class="col-md-6">
|
||||
Examen <b>${examen.type}</b> <br />
|
||||
le <b>${examen.date}</b> à <b>${examen.heure}</b><br />
|
||||
${examen.adresse} à ${examen.lieu}<br />
|
||||
<br />
|
||||
Résultat de l'examen :
|
||||
<span class="label label-success" tal:condition="examen.resultat == 'BON'">${examen.resultat}</span>
|
||||
<span class="label label-danger" tal:condition="examen.resultat != 'BON'">${examen.resultat}</span>
|
||||
</div>
|
||||
<div class="col-md-6">
|
||||
<a href="${request.application_url}/date_examen"
|
||||
class="btn btn-primary" role="button">
|
||||
<span class="glyphicon glyphicon-chevron-right"></span> Voir la convocation à l'examen</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- Mon dossier d'inscription -->
|
||||
<h3><span class="glyphicon glyphicon-list-alt"></span> Mon dossier d'inscription</h3>
|
||||
<table class="table">
|
||||
<tr>
|
||||
<td>
|
||||
Code élève : <b>${eleve.CD_CLI}</b><br />
|
||||
${eleve.CIVILITE} ${eleve.NOMPREN}<br />
|
||||
${eleve.ADRESSE}<br />
|
||||
<span tal:condition="eleve.ADRESSE2">
|
||||
${eleve.ADRESSE2}<br />
|
||||
</span>
|
||||
${eleve.CODEPOST} ${eleve.VILLE}<br />
|
||||
</td>
|
||||
<td>
|
||||
<a href="${request.application_url}/fiche_inscription"
|
||||
class="btn btn-primary" role="button">
|
||||
<span class="glyphicon glyphicon-chevron-right"></span> Voir la fiche</a>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
Permis demandé<br />
|
||||
Formule<br />
|
||||
Fin de validité du forfait le<br />
|
||||
Fin du forfait code le<br />
|
||||
Fin de validité visite médicale
|
||||
</td>
|
||||
<td>
|
||||
${eleve.PERMIS_DEMANDE}<br />
|
||||
${eleve.FORMULE}<br />
|
||||
<span tal:content="eleve.fin_contrat_le.strftime('%d/%m/%Y')" /><br />
|
||||
<div tal:condition = "eleve.fin_forfait_code_le">
|
||||
<span tal:content="eleve.fin_forfait_code_le.strftime('%d/%m/%Y')" />
|
||||
</div><br />
|
||||
<div tal:condition = "eleve.visite_med_fin_le">
|
||||
<span tal:content="eleve.visite_med_fin_le.strftime('%d/%m/%Y')" />
|
||||
</div><br />
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
No d'immatriculation<br />
|
||||
Enregistré le<br />
|
||||
</td>
|
||||
<td>
|
||||
${eleve.DOSSIER_NO}<br />
|
||||
<div tal:condition = "eleve.DOSSIER_DATE">
|
||||
<span tal:content="eleve.DOSSIER_DATE.strftime('%d/%m/%Y')" />
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
<h3>Mes documents</h3>
|
||||
<a href="${request.application_url}/justifs_list"
|
||||
class="btn btn-primary" role="button">
|
||||
<span class="glyphicon glyphicon-chevron-right"></span> Télécharger les documents</a>
|
||||
<br/> <br/>
|
||||
<table class="table table-condensed table-bordered" cellspacing="0" width="100%" tal:condition="docs">
|
||||
<tr tal:repeat="justif docs">
|
||||
<td>${justif.libelle}</td>
|
||||
<td>
|
||||
<a href="${request.application_url}/download/${eleve.CD_CLI}/${justif.nom_fic}"
|
||||
target="popup"
|
||||
onclick="window.open('${request.application_url}/download/${eleve.CD_CLI}/${justif.nom_fic},'popup','width=900,height=768'); return false;">
|
||||
${justif.nom_fic}
|
||||
</a>
|
||||
</td>
|
||||
|
||||
<td>${justif.taille_fic} Ko</td>
|
||||
<td>${justif.cree_le.strftime('%d/%m/%Y')}</td>
|
||||
</tr>
|
||||
</table>
|
||||
<table class="table table-condensed table-bordered" cellspacing="0" width="100%" tal:condition="justifs">
|
||||
<tr tal:repeat="justif justifs">
|
||||
<td>${justif.libelle}</td>
|
||||
<td tal:condition="not justif.libelle_fic">
|
||||
<a href="${request.application_url}/download/${eleve.CD_CLI}/${justif.nom_fic}"
|
||||
target="popup"
|
||||
onclick="window.open('${request.application_url}/download/${eleve.CD_CLI}/${justif.nom_fic},'popup','width=900,height=768'); return false;">
|
||||
${justif.nom_fic}
|
||||
</a>
|
||||
</td>
|
||||
<td tal:condition="justif.libelle_fic">${justif.libelle_fic}</td>
|
||||
|
||||
<td>${justif.taille_fic} Ko</td>
|
||||
<td>${justif.cree_le.strftime('%d/%m/%Y')}</td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
<!-- FAQ -->
|
||||
<h3><span class="glyphicon glyphicon-question-sign"></span> FAQ</h3>
|
||||
<ul tal:condition="faqs">
|
||||
<tal:repeat tal:repeat="j faqs">
|
||||
<li><a href="/faq_view/${j.faq_id}" >${j.intitule}</a></li>
|
||||
</tal:repeat>
|
||||
</ul>
|
||||
|
||||
<br />
|
||||
<br />
|
||||
<br />
|
||||
<br />
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
<div metal:fill-slot="additional_scripts">
|
||||
<script type="text/javascript" src="${request.static_url('monaem:static/js/jquery.cookiebar.js')}"></script>
|
||||
<script type="text/javascript">
|
||||
$(document).ready(function(){
|
||||
$.cookieBar();
|
||||
});
|
||||
</script>
|
||||
</div>
|
||||
</metal:block>
|
||||
|
||||
51
monaem/templates/default/justifs_list.pt
Normal file
51
monaem/templates/default/justifs_list.pt
Normal file
@@ -0,0 +1,51 @@
|
||||
<metal:block use-macro="main_template">
|
||||
<div metal:fill-slot="content">
|
||||
|
||||
<table class="table table-condensed table-bordered" cellspacing="0" width="100%" tal:condition="justifs_manquant">
|
||||
<tr tal:repeat="justif justifs_manquant">
|
||||
<td tal:condition="justif.valide==0">
|
||||
<b>${justif.libelle}</b>
|
||||
<span tal:condition="justif.conditions"><br />(${justif.conditions})</span>
|
||||
</td>
|
||||
<td tal:condition="justif.valide!=0" class="success"><b>${justif.libelle}</b></td>
|
||||
<td tal:condition="justif.libelle_fic">${justif.libelle_fic}</td>
|
||||
<td tal:condition="not justif.libelle_fic">
|
||||
<a tal:condition="justif.nom_fic" href="${request.application_url}/download/${cd_cli}/${justif.nom_fic}"
|
||||
target="popup"
|
||||
onclick="window.open('${request.application_url}/download/${cd_cli}/${justif.nom_fic},'popup','width=900,height=768'); return false;">
|
||||
${justif.nom_fic}
|
||||
</a>
|
||||
<a tal:condition="not justif.nom_fic" href="${request.application_url}/doc_upload/${justif.no_ligne}/${justif.cd_cli}"> Télécharger</a>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
<h2>Justificatifs déjà téléchargés</h2>
|
||||
<table class="table table-condensed table-bordered" cellspacing="0" width="100%" tal:condition="justifs">
|
||||
<tr tal:repeat="justif justifs">
|
||||
<td tal:condition="justif.valide==0">
|
||||
<b>${justif.libelle}
|
||||
</td>
|
||||
<td tal:condition="justif.valide!=0" class="success"><b>${justif.libelle}</b></td>
|
||||
<td tal:condition="justif.libelle_fic">${justif.libelle_fic}</td>
|
||||
<td tal:condition="not justif.libelle_fic">
|
||||
<a tal:condition="justif.nom_fic" href="${request.application_url}/download/${cd_cli}/${justif.nom_fic}"
|
||||
target="popup"
|
||||
onclick="window.open('${request.application_url}/download/${cd_cli}/${justif.nom_fic},'popup','width=900,height=768'); return false;">
|
||||
${justif.nom_fic}
|
||||
</a>
|
||||
<a tal:condition="not justif.nom_fic" href="${request.application_url}/doc_upload/${justif.no_ligne}/${justif.cd_cli}"> Télécharger</a>
|
||||
</td>
|
||||
<td>${justif.taille_fic} Ko</td>
|
||||
<td>${justif.cd_uti}</td>
|
||||
<td tal:condition="justif.valide==0" >
|
||||
<a href="${request.application_url}/doc_edit/${justif.no_ligne}/${justif.cd_cli}">Modifier</a>
|
||||
</td>
|
||||
<td tal:condition="justif.valide!=0" >Validé</td>
|
||||
</tr>
|
||||
</table>
|
||||
<br />
|
||||
</div>
|
||||
|
||||
</metal:block>
|
||||
|
||||
92
monaem/templates/default/login.pt
Normal file
92
monaem/templates/default/login.pt
Normal file
@@ -0,0 +1,92 @@
|
||||
<metal:block use-macro="main_template">
|
||||
<div metal:fill-slot="content">
|
||||
|
||||
<div class="container">
|
||||
<div id="bg" style="background:url('https://monespace.marietton.com/static/img/image-login.jpg');
|
||||
background-repeat:no-repeat;background-size:cover;background-position:center;"></div>
|
||||
<div class="col-md-offset-3 col-md-6 well">
|
||||
|
||||
<div style="font-size:26px; color: #2a6496;" align="center">
|
||||
Mon espace
|
||||
</div>
|
||||
<div style="margin: 0em 0em 2em 0em; " align="center">
|
||||
<a href="https://www.marietton.com/" target="_blank">
|
||||
<img src="${request.static_url('monaem:static/img/logo.png')}" />
|
||||
</a>
|
||||
</div>
|
||||
<div>
|
||||
<p class="text-warning" tal:content="message" />
|
||||
</div>
|
||||
|
||||
<form id="login-form" role="form" action="${url}" method="post">
|
||||
|
||||
<input type="hidden" name="came_from" value="${came_from}"/>
|
||||
|
||||
<div class="form-group">
|
||||
<label class="control-label">Mon code élève</label>
|
||||
<input class="form-control" name="login" value="${login}" placeholder="Code élève à 6 chiffres" type="text" />
|
||||
</div>
|
||||
|
||||
<div class="form-group">
|
||||
<!-- label class="control-label" for="password">Mot de passe</label -->
|
||||
<input class="form-control" type="password" id="password" name="password" value="${password}" placeholder="Mot de passe" />
|
||||
</div>
|
||||
|
||||
<div class="form-group">
|
||||
<button id="submitButton" class="btn btn-primary" type="submit" name="form.submitted">Se connecter</button>
|
||||
</div>
|
||||
|
||||
<p class="help-block">
|
||||
<a href="${request.route_url('email_password')}">Mot de passe oublié ?</a><br />
|
||||
<a href="${request.route_url('email_code')}">Code élève oublié ?</a><br />
|
||||
</p>
|
||||
</form>
|
||||
|
||||
|
||||
</div>
|
||||
|
||||
</div><!-- container -->
|
||||
|
||||
<script>
|
||||
$(document).ready(function() {
|
||||
$('#login-form').formValidation({
|
||||
framework: 'bootstrap',
|
||||
message: 'This value is not valid',
|
||||
icon: {
|
||||
valid: 'glyphicon glyphicon-ok',
|
||||
invalid: 'glyphicon glyphicon-remove',
|
||||
validating: 'glyphicon glyphicon-refresh'
|
||||
},
|
||||
fields: {
|
||||
login: {
|
||||
validators: {
|
||||
notEmpty: {
|
||||
message: 'Le code élève est obligatoire'
|
||||
},
|
||||
digits: {
|
||||
message: 'Le code élève est un nombre à 6 chiffres'
|
||||
},
|
||||
}
|
||||
},
|
||||
password: {
|
||||
validators: {
|
||||
notEmpty: {
|
||||
message: 'Le mot de passe est obligatoire'
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
});
|
||||
$('form input').on('keypress', function(e) {
|
||||
var code = e.keyCode || e.which;
|
||||
if (code === 13) {
|
||||
e.preventDefault();
|
||||
// simuler clic bouton submit
|
||||
document.getElementById("submitButton").click();
|
||||
}
|
||||
});
|
||||
});
|
||||
</script>
|
||||
|
||||
</div>
|
||||
</metal:block>
|
||||
16
monaem/templates/default/maintenance.pt
Normal file
16
monaem/templates/default/maintenance.pt
Normal file
@@ -0,0 +1,16 @@
|
||||
<metal:block use-macro="main_template">
|
||||
|
||||
<div metal:fill-slot="content">
|
||||
<div class="text-center">
|
||||
<span class="glyphicon glyphicon-wrench" style="font-size: 56px"></span>
|
||||
<h3>Le site est en maintenance</h3>
|
||||
<p>
|
||||
Il sera de retour dans quelques minutes.<br />
|
||||
Merci pour votre patience<br />
|
||||
</p>
|
||||
</div>
|
||||
<br />
|
||||
<br />
|
||||
</div>
|
||||
|
||||
</metal:block>
|
||||
92
monaem/templates/default/member_search.pt
Normal file
92
monaem/templates/default/member_search.pt
Normal file
@@ -0,0 +1,92 @@
|
||||
<metal:block use-macro="main_template">
|
||||
<div metal:fill-slot="content">
|
||||
|
||||
<div class="alert alert-danger" tal:condition="message" tal:content="message" />
|
||||
|
||||
<div class="row">
|
||||
|
||||
<form id="member-search-form" class="form-horizontal" role="form" action="${url}" method="post">
|
||||
|
||||
<div class="form-group">
|
||||
<label class="col-xs-4 control-label">Nom ou Code de l'élève</label>
|
||||
<div class="col-xs-8">
|
||||
<input type="text" class="form-control" name="name" value="${name}" />
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="form-group">
|
||||
<div class="col-xs-offset-4 col-xs-8">
|
||||
<button id="submitButton" class="btn btn-primary" type="submit" name="form.submitted">
|
||||
<span class="glyphicon glyphicon-search"></span> Rechercher</button>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</form>
|
||||
</div><!-- row -->
|
||||
|
||||
<div class="row">
|
||||
<div tal:condition="members">
|
||||
<table class="table table-striped table-bordered">
|
||||
<tr>
|
||||
<th>Code</th>
|
||||
<th>Nom, Prénom</th>
|
||||
<th>Permis - Formule</th>
|
||||
<th>Inscrit</th>
|
||||
<th>Statut</th>
|
||||
<th></th>
|
||||
</tr>
|
||||
<tr tal:repeat="member members">
|
||||
<td>${member.cd_cli}</td>
|
||||
<td>${member.nompren}</td>
|
||||
<td>${member.permis_demande} - ${member.formule}</td>
|
||||
<td tal:content="member.cree_le.strftime('%d/%m/%Y')" />
|
||||
<td tal:content="member.statut" />
|
||||
<td>
|
||||
<a href="/connecter_a/${member.cd_cli}">
|
||||
<span class="glyphicon glyphicon-log-in"></span> Se connecter</a>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
<br />
|
||||
<br />
|
||||
</div>
|
||||
|
||||
<script>
|
||||
$(document).ready(function() {
|
||||
$('#member-search-form').formValidation({
|
||||
framework: 'bootstrap',
|
||||
message: 'This value is not valid',
|
||||
icon: {
|
||||
valid: 'glyphicon glyphicon-ok',
|
||||
invalid: 'glyphicon glyphicon-remove',
|
||||
validating: 'glyphicon glyphicon-refresh'
|
||||
},
|
||||
fields: {
|
||||
name: {
|
||||
validators: {
|
||||
notEmpty: {
|
||||
message: 'Le nom ou le code est obligatoire'
|
||||
},
|
||||
stringLength: {
|
||||
min: 2,
|
||||
max: 30,
|
||||
message: 'Le nom ou le code doit avoir de 2 à 30 caractères de long'
|
||||
},
|
||||
}
|
||||
},
|
||||
}
|
||||
});
|
||||
$('form input').on('keypress', function(e) {
|
||||
var code = e.keyCode || e.which;
|
||||
if (code === 13) {
|
||||
e.preventDefault();
|
||||
// simuler clic bouton submit
|
||||
document.getElementById("submitButton").click();
|
||||
}
|
||||
});
|
||||
});
|
||||
</script>
|
||||
|
||||
</div>
|
||||
</metal:block>
|
||||
70
monaem/templates/default/redefinir_mdp.pt
Normal file
70
monaem/templates/default/redefinir_mdp.pt
Normal file
@@ -0,0 +1,70 @@
|
||||
<metal:block use-macro="main_template">
|
||||
<div metal:fill-slot="content">
|
||||
|
||||
<div class="row">
|
||||
<form id="change-password-form" method="post"
|
||||
data-fv-framework="bootstrap"
|
||||
data-fv-icon-valid="glyphicon glyphicon-ok"
|
||||
data-fv-icon-invalid="glyphicon glyphicon-remove"
|
||||
data-fv-icon-validating="glyphicon glyphicon-refresh">
|
||||
|
||||
<div class="form-group">
|
||||
<label class="control-label" for="new_password1">Nouveau mot de passe</label>
|
||||
<input class="form-control" type="password" size="10" name="new_password1" id="new_password1" placeholder="20 caractères maximum" />
|
||||
</div>
|
||||
|
||||
<div class="form-group">
|
||||
<label class="control-label" for="new_password2">Confirmer le mot de passe</label>
|
||||
<input class="form-control" type="password" size="10" name="new_password2" id="new_password2" />
|
||||
</div>
|
||||
|
||||
<div class="form-group">
|
||||
<button class="btn btn-primary" type="submit" name="form.submitted">Valider</button>
|
||||
</div>
|
||||
</form>
|
||||
</div> <!-- row -->
|
||||
|
||||
<script>
|
||||
$(document).ready(function() {
|
||||
var fv = $('#change-password-form').formValidation({
|
||||
fields: {
|
||||
new_password1: {
|
||||
validators: {
|
||||
notEmpty: {
|
||||
message: 'Le mot de passe est obligatoire'
|
||||
},
|
||||
stringLength:{
|
||||
min: 8,
|
||||
max: 20,
|
||||
message: "La logueur de mot de passe n'est pas respectée, minimum 8, maximum 12"
|
||||
},
|
||||
regexp: {
|
||||
regexp: /^(?=.*\d)(?=.*[!@#$%^&*\_\-\.\+,;\:\\/§à\]\[\?\{\}])(?=.*[a-z])(?=.*[A-Z])[0-9a-zA-Z!@#$%^&*\_\-\.\+,;\:\\/§à\]\[\?\{\}]{8,}$/,
|
||||
message: 'Le mot de passe doit contenir au minimum une lettre, un nombre,un majuscule, un minuscle, et un caractère speciaux.',
|
||||
}
|
||||
}
|
||||
},
|
||||
new_password2: {
|
||||
validators: {
|
||||
notEmpty: {
|
||||
message: 'Le mot de passe est obligatoire'
|
||||
},
|
||||
callback: {
|
||||
message: 'Le mot de passe et sa confirmation ne sont pas identiques.',
|
||||
callback: function(input) {
|
||||
var new_password1_val = $('#new_password1').val();
|
||||
return new_password1_val == input;
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
},
|
||||
}).data();
|
||||
$('#new_password1').on('change input', function(){
|
||||
fv.formValidation.revalidateField($('#new_password2'))
|
||||
});
|
||||
});
|
||||
</script>
|
||||
|
||||
</div>
|
||||
</metal:block>
|
||||
18
monaem/templates/default/show_iframe.pt
Normal file
18
monaem/templates/default/show_iframe.pt
Normal file
@@ -0,0 +1,18 @@
|
||||
<metal:block use-macro="main_template">
|
||||
<div metal:fill-slot="content">
|
||||
|
||||
<div class="content text-center">
|
||||
<br />
|
||||
<br />
|
||||
<span class="glyphicon glyphicon-hourglass" style="font-size: 56px"></span>
|
||||
<p class="lead">Chargement de la fiche en cours, merci de patienter quelques instants...</p>
|
||||
|
||||
<iframe style="position: absolute; top:0px; left:0px; border:none; z-index:10;"
|
||||
src='${iframe_src}' width="100%" height="100%">
|
||||
</iframe>
|
||||
</div>
|
||||
<br />
|
||||
<br />
|
||||
|
||||
</div>
|
||||
</metal:block>
|
||||
75
monaem/templates/default/stage_edit.pt
Normal file
75
monaem/templates/default/stage_edit.pt
Normal file
@@ -0,0 +1,75 @@
|
||||
<metal:block use-macro="main_template">
|
||||
<div metal:fill-slot="content">
|
||||
|
||||
<div class="row">
|
||||
<form id="change-eleve-details-form" class="form-horizontal" action="${url}" method="post" tal:condition="eleve"
|
||||
data-fv-framework="bootstrap"
|
||||
data-fv-icon-valid="glyphicon glyphicon-ok"
|
||||
data-fv-icon-invalid="glyphicon glyphicon-remove"
|
||||
data-fv-icon-validating="glyphicon glyphicon-refresh">
|
||||
|
||||
<div class="panel panel-info">
|
||||
<div class="panel-heading">
|
||||
<h4><span class="glyphicon glyphicon-check"></span> <b>Modification dates de stage</b></h4>
|
||||
</div>
|
||||
|
||||
<div class="panel-body" >
|
||||
<div class="row">
|
||||
<div class="col-md-12">
|
||||
Je souhaite déplacer mon stage prévu :
|
||||
<b>${stage.stage_debut}</b> au <b>${stage.stage_fin}</b>
|
||||
à <b>${lieu_stage}</b><br />
|
||||
</div>
|
||||
</div>
|
||||
<br>
|
||||
<div class="form-group text-align-right">
|
||||
<label class="control-label col-xs-6" for="stage_id">Vers les dates suivantes, conformément a nos CGV:</label>
|
||||
<div class="col-xs-6">
|
||||
<select class="form-control" id="stage_id" name="stage_id">
|
||||
<div tal:repeat="item stages">
|
||||
<option value="${item.stage_id}" tal:attributes="selected stage.stage_debut == item.debut.date() and 'selected' or None">${item.debut.day}/${item.debut.month}/${item.debut.year} au ${item.fin.day}/${item.fin.month}/${item.debut.year} - ${item.lieu}</option>
|
||||
</div>
|
||||
</select>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group row align-items-end">
|
||||
<div class="col-xs-4 col-xs-offset-3">
|
||||
<button class="btn btn-primary" type="submit" name="form.submitted">
|
||||
<span class="glyphicon glyphicon-ok"></span> Modifier</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
</div> <!-- row -->
|
||||
<br />
|
||||
<br />
|
||||
|
||||
<script>
|
||||
$(document).ready(function() {
|
||||
|
||||
function compareDate(input){
|
||||
var today = new Date();
|
||||
var replaced = input.replaceAll('/','-')
|
||||
var mm = moment(replaced,'DD-MM-YYYY',true)
|
||||
if(mm.isValid()){
|
||||
var birthDate = mm.toDate();
|
||||
var age = today.getFullYear() - birthDate.getFullYear();
|
||||
|
||||
return true;
|
||||
}
|
||||
else{
|
||||
$('#representant_infos').hide()
|
||||
return false
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
$('form input').on('keypress', function(e) {
|
||||
return e.which !== 13;
|
||||
});
|
||||
});
|
||||
</script>
|
||||
|
||||
</div>
|
||||
</metal:block>
|
||||
78
monaem/templates/default/stages_dates.pt
Normal file
78
monaem/templates/default/stages_dates.pt
Normal file
@@ -0,0 +1,78 @@
|
||||
<metal:block use-macro="main_template">
|
||||
<div metal:fill-slot="content">
|
||||
|
||||
<div class="row">
|
||||
<form id="change-eleve-details-form" class="form-horizontal" action="${url}" method="post" tal:condition="eleve"
|
||||
data-fv-framework="bootstrap"
|
||||
data-fv-icon-valid="glyphicon glyphicon-ok"
|
||||
data-fv-icon-invalid="glyphicon glyphicon-remove"
|
||||
data-fv-icon-validating="glyphicon glyphicon-refresh">
|
||||
|
||||
<div class="row">
|
||||
<div class="col-md-12" style="margin:10px;">
|
||||
<h3>Modification dates de stage</h3>
|
||||
<div class="row ">
|
||||
<div class="col-md-12">
|
||||
Je souhaite déplacer mon stage prévu : <br/>
|
||||
<b>${stage.stage_debut}</b> au <b>${stage.stage_fin}</b><br/>
|
||||
à <b>${lieu_stage}</b><br />
|
||||
</div>
|
||||
</div>
|
||||
<br>
|
||||
<div class="form-group" style="margin-left:0px;">
|
||||
<label class="pull-left" for="stage_id">Vers les dates suivantes, <br/> conformément a nos <a href="https://monespace.marietton.com/faq_view/${link}">CGV</a>:</label>
|
||||
<div class="col-xs-6" >
|
||||
<select class="form-control" id="stage_id" name="stage_id">
|
||||
<div tal:repeat="item stages">
|
||||
<option value="${item.stage_id}" tal:attributes="selected stage.stage_debut == item.debut.date() and 'selected' or None">${item.debut.day}/${item.debut.month}/${item.debut.year} au ${item.fin.day}/${item.fin.month}/${item.debut.year} - ${item.lieu}</option>
|
||||
</div>
|
||||
</select>
|
||||
</div>
|
||||
</div>
|
||||
<br/>
|
||||
<div class="form-group ">
|
||||
<div class="col-xs-2 pull-left">
|
||||
<a class="btn btn-default" href="${request.route_url('home')}" >
|
||||
<span class="glyphicon glyphicon-chevron-left"></span> Annuler</a>
|
||||
</div>
|
||||
<div class="col-xs-2 pull-left">
|
||||
<button class="btn btn-primary" type="submit" name="form.submitted" tal:attributes="disabled len(stages) == 0 and 'disabled' or None" >
|
||||
<span class="glyphicon glyphicon-ok"></span> Modifier</button>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
</div> <!-- row -->
|
||||
<br />
|
||||
<br />
|
||||
|
||||
<script>
|
||||
$(document).ready(function() {
|
||||
|
||||
function compareDate(input){
|
||||
var today = new Date();
|
||||
var replaced = input.replaceAll('/','-')
|
||||
var mm = moment(replaced,'DD-MM-YYYY',true)
|
||||
if(mm.isValid()){
|
||||
var birthDate = mm.toDate();
|
||||
var age = today.getFullYear() - birthDate.getFullYear();
|
||||
|
||||
return true;
|
||||
}
|
||||
else{
|
||||
$('#representant_infos').hide()
|
||||
return false
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
$('form input').on('keypress', function(e) {
|
||||
return e.which !== 13;
|
||||
});
|
||||
});
|
||||
</script>
|
||||
|
||||
</div>
|
||||
</metal:block>
|
||||
59
monaem/templates/default/stages_reservation.pt
Normal file
59
monaem/templates/default/stages_reservation.pt
Normal file
@@ -0,0 +1,59 @@
|
||||
<metal:block use-macro="main_template">
|
||||
<div metal:fill-slot="content">
|
||||
|
||||
<div class="row">
|
||||
<form id="change-eleve-details-form" class="form-horizontal" action="${url}" method="post" tal:condition="eleve"
|
||||
data-fv-framework="bootstrap"
|
||||
data-fv-icon-valid="glyphicon glyphicon-ok"
|
||||
data-fv-icon-invalid="glyphicon glyphicon-remove"
|
||||
data-fv-icon-validating="glyphicon glyphicon-refresh">
|
||||
|
||||
<div class="row">
|
||||
<div class="col-md-12" style="margin:10px;">
|
||||
<h3>Réservation dates de stage</h3>
|
||||
<div class="row">
|
||||
<div class="col-md-12">
|
||||
Je souhaite réserver un stage
|
||||
</div>
|
||||
</div>
|
||||
<br>
|
||||
<div class="form-group" style="margin-left:0px;">
|
||||
<label class="pull-left" for="stage_id">Vers les dates suivantes, <br/> conformément a nos <a href="https://monespace.marietton.com/faq_view/${link}">CGV</a>:</label>
|
||||
<div class="col-xs-6" >
|
||||
<select class="form-control" id="stage_id" name="stage_id">
|
||||
<div tal:repeat="item stages">
|
||||
<option value="${item.stage_id}" >${item.debut.day}/${item.debut.month}/${item.debut.year} au ${item.fin.day}/${item.fin.month}/${item.debut.year} - ${item.lieu}</option>
|
||||
</div>
|
||||
</select>
|
||||
</div>
|
||||
</div>
|
||||
<br/>
|
||||
<div class="form-group ">
|
||||
<div class="col-xs-2 pull-left">
|
||||
<a class="btn btn-default" href="${request.route_url('home')}" >
|
||||
<span class="glyphicon glyphicon-chevron-left"></span> Annuler</a>
|
||||
</div>
|
||||
<div class="col-xs-2 pull-left">
|
||||
<button class="btn btn-primary" type="submit" name="form.submitted" tal:attributes="disabled len(stages) == 0 and 'disabled' or None" >
|
||||
<span class="glyphicon glyphicon-ok"></span> Réserver</button>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
</div> <!-- row -->
|
||||
<br />
|
||||
<br />
|
||||
|
||||
<script>
|
||||
$(document).ready(function() {
|
||||
|
||||
$('form input').on('keypress', function(e) {
|
||||
return e.which !== 13;
|
||||
});
|
||||
});
|
||||
</script>
|
||||
|
||||
</div>
|
||||
</metal:block>
|
||||
340
monaem/templates/inscriptions/b96_cde.pt
Normal file
340
monaem/templates/inscriptions/b96_cde.pt
Normal file
@@ -0,0 +1,340 @@
|
||||
<metal:block use-macro="main_template">
|
||||
<div metal:fill-slot="content">
|
||||
|
||||
<div class="alert alert-danger" tal:condition="message" tal:content="message" />
|
||||
|
||||
<div class="row">
|
||||
<br />
|
||||
<p>Je m’inscris au stage de B96 qui aura lieu : <br />
|
||||
le <b>${stage.debut.strftime("%d-%m-%Y")}</b> à <b>${stage.debut.strftime("%Hh%M")}</b> <br />
|
||||
à : <b>${stage.lieu1} - ${stage.lieu2}</b>
|
||||
</p>
|
||||
<ul class="nav nav-tabs">
|
||||
<li class="active"><a href="#id-tab" data-toggle="tab">Identification <i class="fa"></i></a></li>
|
||||
<li tal:condition="etape > 1"><a href="#permis-tab" data-toggle="tab">Votre permis de conduire <i class="fa"></i></a></li>
|
||||
<li tal:condition="etape > 2"><a href="#resa-tab" data-toggle="tab">Réservation <i class="fa"></i></a></li>
|
||||
|
||||
</ul>
|
||||
<br />
|
||||
<form id="sinscrire-form" action="${url}" role="form" method="post"
|
||||
class="form-horizontal"
|
||||
data-fv-framework="bootstrap"
|
||||
data-fv-icon-valid="glyphicon glyphicon-ok"
|
||||
data-fv-icon-invalid="glyphicon glyphicon-remove"
|
||||
data-fv-icon-validating="glyphicon glyphicon-refresh">
|
||||
|
||||
<input type="hidden" id="etape" value="${etape}" />
|
||||
|
||||
<div class="tab-content">
|
||||
<div class="tab-pane active" id="id-tab">
|
||||
<br />
|
||||
<div class="form-group">
|
||||
<label class="col-xs-4 control-label" for="civilite">Civilité</label>
|
||||
<div class="col-xs-8">
|
||||
<select class="form-control" id="civilite" name="civilite">
|
||||
<tal:block tal:repeat="item civilites">
|
||||
<option value="${item}" tal:attributes="selected item == civilite and 'selected' or None">${item}</option>
|
||||
</tal:block>
|
||||
</select>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="col-xs-4 control-label" for="nom">Nom d'usage</label>
|
||||
<div class="col-xs-8">
|
||||
<input class="form-control" type="text" id="nom" name="nom" value="${nom}" placeholder="Votre nom"
|
||||
data-fv-notempty="true"
|
||||
data-fv-notempty-message="Le nom est obligatoire"
|
||||
data-fv-stringlength="true"
|
||||
data-fv-stringlength-max="30"
|
||||
data-fv-stringlength-message="34 caractères maximum" />
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="col-xs-4 control-label" for="prenom">Prénom(s)</label>
|
||||
<div class="col-xs-8">
|
||||
<input class="form-control" type="text" id="prenom" name="prenom" value="${prenom}"
|
||||
placeholder="tel(s) qu’indiqué(s) sur votre pièce d’identité"
|
||||
data-fv-notempty="true"
|
||||
data-fv-notempty-message="Le prénom est obligatoire"
|
||||
data-fv-stringlength="true"
|
||||
data-fv-stringlength-max="37"
|
||||
data-fv-stringlength-message="37 caractères maximum" />
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="col-xs-4 control-label" for="nom">Nom de naissance</label>
|
||||
<div class="col-xs-8">
|
||||
<input class="form-control" type="text" id="nom_jf" name="nom_jf" value="${nom_jf}" placeholder="si différent du nom d'usage"
|
||||
data-fv-stringlength="true"
|
||||
data-fv-stringlength-max="30"
|
||||
data-fv-stringlength-message="34 caractères maximum" />
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="col-xs-4 control-label" for="date_nais">Date de naissance</label>
|
||||
<div class="col-xs-8">
|
||||
<input class="form-control" type="text" id="date_nais" name="date_nais" value="${date_nais}" placeholder="JJ/MM/AAAA"
|
||||
data-fv-notempty="true"
|
||||
data-fv-notempty-message="La date de naissance est obligatoire"
|
||||
data-fv-date="true"
|
||||
data-fv-date-format="DD/MM/YYYY"
|
||||
data-fv-date-message="La date de naissance n'est pas valide (JJ/MM/AAAA)" />
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="col-xs-4 control-label" for="lieu_nais">Lieu de naissance</label>
|
||||
<div class="col-xs-8">
|
||||
<input class="form-control" type="text" id="lieu_nais" name="lieu_nais" value="${lieu_nais}"
|
||||
data-fv-notempty="true"
|
||||
data-fv-notempty-message="Le lieu de naissance est obligatoire"
|
||||
data-fv-stringlength="true"
|
||||
data-fv-stringlength-max="26"
|
||||
data-fv-stringlength-message="26 caractères maximum" />
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="col-xs-4 control-label" for="dept_nais">Département ou pays de naissance</label>
|
||||
<div class="col-xs-8">
|
||||
<select class="form-control" id="dept_nais" name="dept_nais">
|
||||
<tal:block tal:repeat="item dept">
|
||||
<option value="${item.code}" tal:attributes="selected item.code == dept_nais and 'selected' or None">
|
||||
${item.code} - ${item.libelle}</option>
|
||||
</tal:block>
|
||||
</select>
|
||||
</div>
|
||||
</div>
|
||||
<!-- COORDONNÉES -->
|
||||
<div class="form-group">
|
||||
<label class="col-xs-4 control-label" for="adres1">Adresse</label>
|
||||
<div class="col-xs-8">
|
||||
<input class="form-control" type="text" id="adres1" name="adres1" value="${adres1}" placeholder="Votre adresse"
|
||||
data-fv-notempty="true"
|
||||
data-fv-notempty-message="L'adresse est obligatoire"
|
||||
data-fv-stringlength="true"
|
||||
data-fv-stringlength-max="40"
|
||||
data-fv-stringlength-message="40 caractères maximum" />
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="col-xs-4 control-label" for="adres2"></label>
|
||||
<div class="col-xs-8">
|
||||
<input class="form-control" type="text" id="adres2" name="adres2" value="${adres2}" placeholder="(facultatif)"
|
||||
data-fv-stringlength="true"
|
||||
data-fv-stringlength-max="40"
|
||||
data-fv-stringlength-message="40 caractères maximum" />
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="control-label col-xs-4" for="code_postal">Code postal - Ville</label>
|
||||
<div class="col-xs-8">
|
||||
<input class="form-control" type="text" id="code_postal" name="code_postal" value="${code_postal}"
|
||||
placeholder="5 caractères maximum"
|
||||
data-fv-notempty="true"
|
||||
data-fv-notempty-message="Le code postal est obligatoire">
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="col-xs-4 control-label" for="no_tel">Téléphone portable</label>
|
||||
<div class="col-xs-6">
|
||||
<input class="form-control phoneNumber" type="text" id="no_tel" name="no_tel" value="${no_tel}"
|
||||
data-fv-notempty="true"
|
||||
data-fv-notempty-message="Le numéro de téléphone est obligatoire"
|
||||
data-fv-phone="true"
|
||||
data-fv-phone-country="FR"
|
||||
data-fv-phone-message="Le numéro de téléphone n'est pas vailde" />
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="col-xs-4 control-label" for="mail">Email</label>
|
||||
<div class="col-xs-8">
|
||||
<input class="form-control" type="text" id="mail" name="mail" value="${mail}"
|
||||
data-fv-notempty="true"
|
||||
data-fv-notempty-message="L'adresse email est obligatoire"
|
||||
data-fv-emailaddress="true"
|
||||
data-fv-emailaddress-message="L'adresse email n'est pas valide" />
|
||||
</div>
|
||||
</div>
|
||||
<!-- case a cocher "Acceptation des infos" -->
|
||||
<div class="form-group">
|
||||
<div class="col-xs-offset-4 col-xs-7">
|
||||
<input type="checkbox" name="cb_spam" value="cb_spam" id="cb_spam"
|
||||
tal:attributes="checked cb_spam == 'oui' and 'checked' or None">
|
||||
J'accepte de recevoir des informations et offres commerciales éventuelles liées à la sécurité routière.</input>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<div class="col-xs-offset-4 col-xs-8">
|
||||
<button class="btn btn-primary" type="submit" name="form.next1">
|
||||
<span class="glyphicon glyphicon-chevron-right"></span> Suivant</button>
|
||||
</div>
|
||||
</div>
|
||||
</div> <!-- id-tab -->
|
||||
|
||||
|
||||
<div class="tab-pane" id="permis-tab">
|
||||
<br />
|
||||
<div class="form-group">
|
||||
<label class="col-xs-4 control-label" for="no_permis">Numéro NEPH</label>
|
||||
<div class="col-xs-8">
|
||||
<input class="form-control" type="text" id="no_permis" name="no_permis" value="${no_permis}"
|
||||
data-fv-notempty="true"
|
||||
data-fv-notempty-message="Le numéro NEPH est obligatoire"
|
||||
data-fv-stringlength="true"
|
||||
data-fv-stringlength-max="20"
|
||||
data-fv-stringlength-message="20 caractères maximum" />
|
||||
<p class="help-block">
|
||||
Comment trouver mon <a href="/faq_view/2764" target="_blank">numéro NEPH</a> ?</p>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="col-xs-4 control-label" for="date_nais">Permis B obtenu le</label>
|
||||
<div class="col-xs-8">
|
||||
<input class="form-control" type="text" id="obtenu_le" name="obtenu_le" value="${obtenu_le}" placeholder="JJ/MM/AAAA"
|
||||
data-fv-notempty="true"
|
||||
data-fv-notempty-message="La date de délivrance du permis B est obligatoire"
|
||||
data-fv-date="true"
|
||||
data-fv-date-format="DD/MM/YYYY"
|
||||
data-fv-date-message="La date de délivrance du permis n'est pas valide (JJ/MM/AAAA)" />
|
||||
<p class="help-block">
|
||||
La date est inscrite au dos de votre permis sur la colonne 10 de la ligne Permis B</p>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="col-xs-4 control-label" for="lieu_permis">Lieu d'obtention</label>
|
||||
<div class="col-xs-8">
|
||||
<select class="form-control" id="lieu_permis" name="lieu_permis">
|
||||
<tal:block tal:repeat="item dept">
|
||||
<option value="${item.libelle}" tal:attributes="selected item.libelle == lieu_permis and 'selected' or None">
|
||||
${item.code} - ${item.libelle}</option>
|
||||
</tal:block>
|
||||
</select>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<div class="col-xs-offset-4 col-xs-8">
|
||||
<input type="checkbox" name="cb_capital" id="cb_capital"> Je confirme que le capital points de mon permis de conduire est au moins égal à 1 point.</input>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<div class="col-xs-offset-4 col-xs-8">
|
||||
<input type="checkbox" name="cb_b96" id="cb_b96"> J'ai pris connaissance du fait que l'attestation B96 me permet de tracter une remorque uniquement dans le cas où le cumul du PTAC du véhicule tracteur et du PTAC de sa remorque est inférieur à 4250 Kg.</input>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<div class="col-xs-offset-4 col-xs-8">
|
||||
<button class="btn btn-primary" type="submit" name="form.next2">
|
||||
<span class="glyphicon glyphicon-chevron-right"></span> Suivant</button>
|
||||
</div>
|
||||
</div>
|
||||
</div> <!-- permis-tab -->
|
||||
|
||||
<div class="tab-pane" id="resa-tab">
|
||||
<br />
|
||||
<div class="form-group">
|
||||
<label class="col-xs-4 control-label" for="type">Comment avez-vous connu notre site ?</label>
|
||||
<div class="col-xs-8">
|
||||
<select class="form-control" id="origine" name="origine">
|
||||
<tal:block tal:repeat="item origines">
|
||||
<option value="${item.LIBELLE}" tal:attributes="selected item.LIBELLE == origine and 'selected' or None">${item.LIBELLE}</option>
|
||||
</tal:block>
|
||||
</select>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="col-xs-4 control-label">Montant du stage</label>
|
||||
<div class="col-xs-8">
|
||||
<p class="form-control-static text-danger"><b>${layout.to_euro(montant)}</b></p>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- case a cocher "Acceptation des CGI" -->
|
||||
<div class="form-group">
|
||||
<div class="col-xs-offset-4 col-xs-7">
|
||||
<input type="checkbox" name="cb_cgv" id="cb_cgv" class="styled">
|
||||
En cochant cette case, je reconnais avoir lu et accepté les <a href="/faq_view/2786" target="_blank">Conditions Générales de Vente ci-après</a>
|
||||
et je valide mon inscription par mon règlement.
|
||||
</input>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<div class="col-xs-offset-4 col-xs-4">
|
||||
<button class="btn btn-primary" type="submit" name="form.submitted">
|
||||
<span class="glyphicon glyphicon-ok"></span> Enregistrer et régler l'inscription</button>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div> <!-- resa-tab -->
|
||||
</div>
|
||||
<p><br/></p>
|
||||
</form>
|
||||
|
||||
</div>
|
||||
|
||||
<script src="https://code.jquery.com/ui/1.12.1/jquery-ui.js"></script>
|
||||
<script>
|
||||
$(document).ready(function() {
|
||||
// validate the form
|
||||
$('#sinscrire-form').formValidation({
|
||||
framework: 'bootstrap',
|
||||
fields: {
|
||||
cb_cgv: {
|
||||
validators: {
|
||||
notEmpty: {
|
||||
message: 'Veuillez accepter les Conditions Générales de Vente pour continuer.'
|
||||
}
|
||||
}
|
||||
},
|
||||
cb_b96: {
|
||||
validators: {
|
||||
notEmpty: {
|
||||
message: 'Veuillez accepter les conditions concernant les limites du PTAC de la remorque.'
|
||||
}
|
||||
}
|
||||
},
|
||||
cb_capital: {
|
||||
validators: {
|
||||
notEmpty: {
|
||||
message: 'Un capital de points est requis pour effectuer ce stage.'
|
||||
}
|
||||
}
|
||||
},
|
||||
}
|
||||
})
|
||||
.find('[name="date_nais"], [name="obtenu_le"]').mask('00/00/0000');
|
||||
|
||||
if ($("#etape").val() == 2) {
|
||||
$('ul.nav li a[href="#permis-tab"]').tab('show');
|
||||
} else {
|
||||
if ($("#etape").val() == 3) {
|
||||
$('ul.nav li a[href="#resa-tab"]').tab('show');
|
||||
} else {
|
||||
if ($("#etape").val() == 4) {
|
||||
$('ul.nav li a[href="#confirm-tab"]').tab('show');
|
||||
}
|
||||
}
|
||||
}
|
||||
$(document).on('click.bs.tab.data-api', '[data-toggle="tab"], [data-toggle="pill"]', function (e) {
|
||||
e.preventDefault()
|
||||
// show next tab on button "next" click
|
||||
$('ul.nav li a[href="' + $(this).attr('href') + '"]').tab('show');
|
||||
})
|
||||
$('#code_postal').autocomplete({
|
||||
source: function (request, response) {
|
||||
$.ajax({
|
||||
url:'/ajax_codepostal',
|
||||
dataType: 'json',
|
||||
data: {
|
||||
recherche: request.term,
|
||||
},
|
||||
success: function (data) {
|
||||
response( data );
|
||||
},
|
||||
});
|
||||
},
|
||||
minLength: 3,
|
||||
});
|
||||
});
|
||||
</script>
|
||||
|
||||
</div>
|
||||
</metal:block>
|
||||
242
monaem/templates/inscriptions/code_cde.pt
Normal file
242
monaem/templates/inscriptions/code_cde.pt
Normal file
@@ -0,0 +1,242 @@
|
||||
<metal:block use-macro="main_template">
|
||||
<div metal:fill-slot="content">
|
||||
|
||||
<div class="alert alert-danger" tal:condition="message" tal:content="message" />
|
||||
|
||||
<div class="row">
|
||||
<br />
|
||||
<p>Je m’inscris au stage de CODE qui aura lieu : <br />
|
||||
<b>${stage.date1}, ${stage.date2} et ${stage.date3},</b><br />
|
||||
à : <b>${stage.lieu1}, <br />
|
||||
${stage.lieu2}, ${stage.lieu3}</b>
|
||||
</p>
|
||||
<br />
|
||||
<form id="sinscrire-form" action="${url}" role="form" method="post"
|
||||
class="form-horizontal"
|
||||
data-fv-framework="bootstrap"
|
||||
data-fv-icon-valid="glyphicon glyphicon-ok"
|
||||
data-fv-icon-invalid="glyphicon glyphicon-remove"
|
||||
data-fv-icon-validating="glyphicon glyphicon-refresh">
|
||||
|
||||
<br />
|
||||
<div class="form-group">
|
||||
<label class="col-xs-3 control-label" for="civilite">Civilité</label>
|
||||
<div class="col-xs-4">
|
||||
<select class="form-control" id="civilite" name="civilite">
|
||||
<tal:block tal:repeat="item civilites">
|
||||
<option value="${item}" tal:attributes="selected item == civilite and 'selected' or None">${item}</option>
|
||||
</tal:block>
|
||||
</select>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="col-xs-3 control-label" for="nom">Nom d'usage</label>
|
||||
<div class="col-xs-9">
|
||||
<input class="form-control" type="text" id="nom" name="nom" value="${nom}" placeholder="Votre nom"
|
||||
data-fv-notempty="true"
|
||||
data-fv-notempty-message="Le nom est obligatoire"
|
||||
data-fv-stringlength="true"
|
||||
data-fv-stringlength-max="30"
|
||||
data-fv-stringlength-message="34 caractères maximum" />
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="col-xs-3 control-label" for="prenom">Prénom(s)</label>
|
||||
<div class="col-xs-9">
|
||||
<input class="form-control" type="text" id="prenom" name="prenom" value="${prenom}"
|
||||
placeholder="tel(s) qu’indiqué(s) sur votre pièce d’identité"
|
||||
data-fv-notempty="true"
|
||||
data-fv-notempty-message="Le prénom est obligatoire"
|
||||
data-fv-stringlength="true"
|
||||
data-fv-stringlength-max="37"
|
||||
data-fv-stringlength-message="37 caractères maximum" />
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="col-xs-3 control-label" for="nom">Nom de naissance</label>
|
||||
<div class="col-xs-9">
|
||||
<input class="form-control" type="text" id="nom_jf" name="nom_jf" value="${nom_jf}" placeholder="si différent du nom d'usage"
|
||||
data-fv-stringlength="true"
|
||||
data-fv-stringlength-max="30"
|
||||
data-fv-stringlength-message="34 caractères maximum" />
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="col-xs-3 control-label" for="date_nais">Date de naissance</label>
|
||||
<div class="col-xs-7">
|
||||
<input class="form-control" type="text" id="date_nais" name="date_nais" value="${date_nais}" placeholder="JJ/MM/AAAA"
|
||||
data-fv-notempty="true"
|
||||
data-fv-notempty-message="La date de naissance est obligatoire"
|
||||
data-fv-date="true"
|
||||
data-fv-date-format="DD/MM/YYYY"
|
||||
data-fv-date-message="La date de naissance n'est pas valide (JJ/MM/AAAA)" />
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="col-xs-3 control-label" for="lieu_nais">Lieu de naissance</label>
|
||||
<div class="col-xs-9">
|
||||
<input class="form-control" type="text" id="lieu_nais" name="lieu_nais" value="${lieu_nais}"
|
||||
data-fv-notempty="true"
|
||||
data-fv-notempty-message="Le lieu de naissance est obligatoire"
|
||||
data-fv-stringlength="true"
|
||||
data-fv-stringlength-max="26"
|
||||
data-fv-stringlength-message="26 caractères maximum" />
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="col-xs-3 control-label" for="dept_nais">Département ou pays de naissance</label>
|
||||
<div class="col-xs-7">
|
||||
<input class="form-control" type="text" id="dept_nais" name="dept_nais" value="${dept_nais}" />
|
||||
</div>
|
||||
</div>
|
||||
<!-- COORDONNÉES -->
|
||||
<div class="form-group">
|
||||
<label class="col-xs-3 control-label" for="adres1">Adresse</label>
|
||||
<div class="col-xs-9">
|
||||
<input class="form-control" type="text" id="adres1" name="adres1" value="${adres1}" placeholder="Votre adresse"
|
||||
data-fv-notempty="true"
|
||||
data-fv-notempty-message="L'adresse est obligatoire"
|
||||
data-fv-stringlength="true"
|
||||
data-fv-stringlength-max="40"
|
||||
data-fv-stringlength-message="40 caractères maximum" />
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="col-xs-3 control-label" for="adres2"></label>
|
||||
<div class="col-xs-9">
|
||||
<input class="form-control" type="text" id="adres2" name="adres2" value="${adres2}" placeholder="(facultatif)"
|
||||
data-fv-stringlength="true"
|
||||
data-fv-stringlength-max="40"
|
||||
data-fv-stringlength-message="40 caractères maximum" />
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="control-label col-xs-3" for="code_postal">Code postal - Ville</label>
|
||||
<div class="col-xs-7">
|
||||
<input class="form-control" type="text" id="code_postal" name="code_postal" value="${code_postal}"
|
||||
placeholder="5 caractères maximum"
|
||||
data-fv-notempty="true"
|
||||
data-fv-notempty-message="Le code postal est obligatoire">
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="col-xs-3 control-label" for="no_tel">Téléphone portable</label>
|
||||
<div class="col-xs-7">
|
||||
<input class="form-control phoneNumber" type="text" id="no_tel" name="no_tel" value="${no_tel}"
|
||||
data-fv-notempty="true"
|
||||
data-fv-notempty-message="Le numéro de téléphone est obligatoire"
|
||||
data-fv-phone="true"
|
||||
data-fv-phone-country="FR"
|
||||
data-fv-phone-message="Le numéro de téléphone n'est pas vailde" />
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="col-xs-3 control-label" for="mail">Email</label>
|
||||
<div class="col-xs-9">
|
||||
<input class="form-control" type="text" id="mail" name="mail" value="${mail}"
|
||||
data-fv-notempty="true"
|
||||
data-fv-notempty-message="L'adresse email est obligatoire"
|
||||
data-fv-emailaddress="true"
|
||||
data-fv-emailaddress-message="L'adresse email n'est pas valide" />
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="col-xs-4 control-label" for="type">Comment avez-vous connu notre site ?</label>
|
||||
<div class="col-xs-8">
|
||||
<select class="form-control" id="origine" name="origine">
|
||||
<tal:block tal:repeat="item origines">
|
||||
<option value="${item.LIBELLE}" tal:attributes="selected item.LIBELLE == origine and 'selected' or None">${item.LIBELLE}</option>
|
||||
</tal:block>
|
||||
</select>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="col-xs-4 control-label">Montant du stage</label>
|
||||
<div class="col-xs-4">
|
||||
<p class="form-control-static text-danger"><b>${layout.to_euro(montant)}</b></p>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- case a cocher "Acceptation des infos" -->
|
||||
<div class="form-group">
|
||||
<div class="col-xs-offset-1 col-xs-11">
|
||||
<input type="checkbox" name="cb_spam" value="cb_spam" id="cb_spam"
|
||||
tal:attributes="checked cb_spam == 'oui' and 'checked' or None">
|
||||
J'accepte de recevoir des informations et offres commerciales éventuelles liées à la sécurité routière.</input>
|
||||
</div>
|
||||
</div>
|
||||
<!-- case a cocher "Acceptation des CGI" -->
|
||||
<div class="form-group">
|
||||
<div class="col-xs-offset-1 col-xs-11">
|
||||
<input type="checkbox" name="cb_cgv" id="cb_cgv" class="styled">
|
||||
En cochant cette case, je reconnais avoir lu et accepté les <a href="/faq_view/2766" target="_blank">Conditions Générales de Vente ci-après</a>
|
||||
et je valide ma réservation par mon règlement.
|
||||
</input>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<div class="col-xs-offset-4 col-xs-4">
|
||||
<button class="btn btn-primary" type="submit" name="form.submitted">
|
||||
<span class="glyphicon glyphicon-ok"></span> Enregistrer et régler la réservation</button>
|
||||
</div>
|
||||
</div>
|
||||
<p><br/></p>
|
||||
</form>
|
||||
|
||||
</div>
|
||||
|
||||
<!-- autocomplete plugin -->
|
||||
<script src="https://code.jquery.com/ui/1.12.1/jquery-ui.js"></script>
|
||||
<script>
|
||||
$(document).ready(function() {
|
||||
// validate the form
|
||||
$('#sinscrire-form').formValidation({
|
||||
framework: 'bootstrap',
|
||||
fields: {
|
||||
cb_cgv: {
|
||||
validators: {
|
||||
notEmpty: {
|
||||
message: 'Veuillez accepter les Conditions Générales de Vente pour continuer.'
|
||||
}
|
||||
}
|
||||
},
|
||||
}
|
||||
})
|
||||
.find('[name="date_nais"], [name="obtenu_le"]').mask('00/00/0000');
|
||||
|
||||
$('#dept_nais').autocomplete({
|
||||
source: function (request, response) {
|
||||
$.ajax({
|
||||
url:'/ajax_dept_nais',
|
||||
dataType: 'json',
|
||||
data: {
|
||||
recherche: request.term,
|
||||
},
|
||||
success: function (data) {
|
||||
response( data );
|
||||
},
|
||||
});
|
||||
},
|
||||
minLength: 2,
|
||||
appendTo: "#sinscrire-form"
|
||||
});
|
||||
$('#code_postal').autocomplete({
|
||||
source: function (request, response) {
|
||||
$.ajax({
|
||||
url:'/ajax_codepostal',
|
||||
dataType: 'json',
|
||||
data: {
|
||||
recherche: request.term,
|
||||
},
|
||||
success: function (data) {
|
||||
response( data );
|
||||
},
|
||||
});
|
||||
},
|
||||
minLength: 3,
|
||||
});
|
||||
});
|
||||
</script>
|
||||
|
||||
</div>
|
||||
</metal:block>
|
||||
28
monaem/templates/inscriptions/code_dispo.pt
Normal file
28
monaem/templates/inscriptions/code_dispo.pt
Normal file
@@ -0,0 +1,28 @@
|
||||
<metal:block use-macro="main_template">
|
||||
<div metal:fill-slot="content">
|
||||
|
||||
<div tal:repeat="item items">
|
||||
<div class="well">
|
||||
<h4 class="text-primary">
|
||||
<span tal:condition="item.type == 'semaine'" class="glyphicon glyphicon-option-horizontal"></span>
|
||||
<span tal:condition="item.type != 'semaine'" class="glyphicon glyphicon-option-vertical"></span>
|
||||
${item.jour}
|
||||
</h4>
|
||||
${layout.datesCode(item.date)}<br />
|
||||
Lieu : <b>${item.lieu1}</b><br />
|
||||
Prix TTC : ${layout.to_euro(tarif)}<br />
|
||||
<span class="text-danger" tal:condition="item.dispo=='Complet'"><b>${item.dispo}</b></span><br />
|
||||
<span class="text-success" tal:condition="item.dispo!='Complet'"><b>${item.dispo}</b></span><br />
|
||||
<br />
|
||||
<a href="${request.application_url}${url_cde}/${item.stage_id}" class="btn btn-primary" role="button"
|
||||
tal:condition="item.dispo != 'Complet'">
|
||||
<span class="glyphicon glyphicon-chevron-pencil"></span> Réserver</a>
|
||||
</div>
|
||||
</div>
|
||||
<br />
|
||||
<br />
|
||||
|
||||
</div><!-- content -->
|
||||
</metal:block>
|
||||
|
||||
|
||||
90
monaem/templates/inscriptions/macros.pt
Normal file
90
monaem/templates/inscriptions/macros.pt
Normal file
@@ -0,0 +1,90 @@
|
||||
<!-- See "Using ZPT macros in Pyramid" to define macro and use it in html -->
|
||||
|
||||
<div metal:define-macro="pap_stats">
|
||||
<!-- Google Anal -->
|
||||
<script>
|
||||
(function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
|
||||
(i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
|
||||
m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
|
||||
})(window,document,'script','https://www.google-analytics.com/analytics.js','ga');
|
||||
|
||||
ga('create', 'UA-16495937-2', 'auto');
|
||||
ga('send', 'pageview');
|
||||
|
||||
</script>
|
||||
|
||||
<!-- Facebook Pixel Code -->
|
||||
<script>
|
||||
!function(f,b,e,v,n,t,s){if(f.fbq)return;n=f.fbq=function(){n.callMethod?
|
||||
n.callMethod.apply(n,arguments):n.queue.push(arguments)};if(!f._fbq)f._fbq=n;
|
||||
n.push=n;n.loaded=!0;n.version='2.0';n.queue=[];t=b.createElement(e);t.async=!0;
|
||||
t.src=v;s=b.getElementsByTagName(e)[0];s.parentNode.insertBefore(t,s)}(window,
|
||||
document,'script','//connect.facebook.net/en_US/fbevents.js');
|
||||
|
||||
fbq('init', '882636555157751');
|
||||
fbq('track', "PageView");
|
||||
fbq('track', 'ViewContent');
|
||||
</script>
|
||||
<noscript><img height="1" width="1" style="display:none"
|
||||
src="https://www.facebook.com/tr?id=882636555157751&ev=PageView&noscript=1"
|
||||
/></noscript>
|
||||
<!-- End Facebook Pixel Code -->
|
||||
|
||||
<!-- Twitter universal website tag code -->
|
||||
<script>
|
||||
!function(e,t,n,s,u,a){e.twq||(s=e.twq=function(){s.exe?s.exe.apply(s,arguments):s.queue.push(arguments);
|
||||
},s.version='1.1',s.queue=[],u=t.createElement(n),u.async=!0,u.src='//static.ads-twitter.com/uwt.js',
|
||||
a=t.getElementsByTagName(n)[0],a.parentNode.insertBefore(u,a))}(window,document,'script');
|
||||
// Insert Twitter Pixel ID and Standard Event data below
|
||||
twq('init','nw95q');
|
||||
twq('track','PageView');
|
||||
</script>
|
||||
<!-- End Twitter universal website tag code -->
|
||||
|
||||
</div>
|
||||
<div metal:define-macro="pem_stats">
|
||||
<!-- Global site tag (gtag.js) - Google Analytics -->
|
||||
<script async src="https://www.googletagmanager.com/gtag/js?id=UA-16495937-5"></script>
|
||||
<!-- Event snippet for PEM 125 Vente conversion page -->
|
||||
<script>
|
||||
gtag('event', 'conversion', {
|
||||
'send_to': 'AW-942374039/vuR9CNej2X8Ql_mtwQM',
|
||||
'transaction_id': ''
|
||||
});
|
||||
</script>
|
||||
|
||||
</div>
|
||||
<div metal:define-macro="pas_stats">
|
||||
<!-- Global site tag (gtag.js) - Google Analytics -->
|
||||
<script async src="https://www.googletagmanager.com/gtag/js?id=UA-16495937-5"></script>
|
||||
<!-- Event snippet for Passerelle Moto conversion page -->
|
||||
<script>
|
||||
gtag('event', 'conversion', {
|
||||
'send_to': 'AW-942374039/oFUaCKPg3H8Ql_mtwQM',
|
||||
'transaction_id': ''
|
||||
});
|
||||
</script>
|
||||
</div>
|
||||
<div metal:define-macro="prs_stats">
|
||||
<!-- Global site tag (gtag.js) - Google Analytics -->
|
||||
<script async src="https://www.googletagmanager.com/gtag/js?id=UA-16495937-5"></script>
|
||||
<!-- Event snippet for Pass Rousseau conversion page -->
|
||||
<script>
|
||||
gtag('event', 'conversion', {
|
||||
'send_to': 'AW-942374039/Y081CPbW3H8Ql_mtwQM',
|
||||
'transaction_id': ''
|
||||
});
|
||||
</script>
|
||||
</div>
|
||||
|
||||
<div metal:define-macro="b96_stats">
|
||||
<!-- Global site tag (gtag.js) - Google Analytics -->
|
||||
<script async src="https://www.googletagmanager.com/gtag/js?id=UA-16495937-5"></script>
|
||||
<!-- Event snippet for B96 conversion page -->
|
||||
<script>
|
||||
gtag('event', 'conversion', {
|
||||
'send_to': 'AW-942374039/M0rTCLbz1aABEJf5rcED',
|
||||
'transaction_id': ''
|
||||
});
|
||||
</script>
|
||||
</div>
|
||||
470
monaem/templates/inscriptions/pap_cde.pt
Normal file
470
monaem/templates/inscriptions/pap_cde.pt
Normal file
@@ -0,0 +1,470 @@
|
||||
<metal:block use-macro="main_template">
|
||||
<div metal:fill-slot="content">
|
||||
|
||||
<div class="alert alert-danger" tal:condition="message" tal:content="message" />
|
||||
|
||||
<div class="row">
|
||||
<br />
|
||||
<p>Je m’inscris au stage de RECUPERATION DE POINTS qui aura lieu : <br />
|
||||
du <b>${stage.debut.strftime("%d-%m-%Y")}</b> à <b>${stage.debut.strftime("%Hh%M")}</b> au <b>${stage.fin.strftime("%d-%m-%Y")}</b><br />
|
||||
à : <b>${stage.lieu1} - ${stage.lieu2}</b>
|
||||
</p>
|
||||
<ul class="nav nav-tabs">
|
||||
<li class="active"><a href="#id-tab" data-toggle="tab">Identification <i class="fa"></i></a></li>
|
||||
<li tal:condition="etape > 1"><a href="#permis-tab" data-toggle="tab">Votre permis de conduire <i class="fa"></i></a></li>
|
||||
<li tal:condition="etape > 2"><a href="#resa-tab" data-toggle="tab">Réservation <i class="fa"></i></a></li>
|
||||
|
||||
</ul>
|
||||
<br />
|
||||
<form id="sinscrire-form" action="${url}" role="form" method="post"
|
||||
class="form-horizontal"
|
||||
data-fv-framework="bootstrap"
|
||||
data-fv-icon-valid="glyphicon glyphicon-ok"
|
||||
data-fv-icon-invalid="glyphicon glyphicon-remove"
|
||||
data-fv-icon-validating="glyphicon glyphicon-refresh">
|
||||
|
||||
<input type="hidden" id="etape" value="${etape}" />
|
||||
|
||||
<div class="tab-content">
|
||||
<div class="tab-pane active" id="id-tab">
|
||||
<br />
|
||||
|
||||
<div class="form-group">
|
||||
<label class="col-xs-4 control-label" for="civilite">Civilité</label>
|
||||
<div class="col-xs-8">
|
||||
<select class="form-control" id="civilite" name="civilite">
|
||||
<tal:block tal:repeat="item civilites">
|
||||
<option value="${item}" tal:attributes="selected item == civilite and 'selected' or None">${item}</option>
|
||||
</tal:block>
|
||||
</select>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="form-group">
|
||||
<label class="col-xs-4 control-label" for="nom">Nom d'usage</label>
|
||||
<div class="col-xs-8">
|
||||
<input class="form-control" type="text" id="nom" name="nom" value="${nom}" placeholder="Votre nom"
|
||||
data-fv-notempty="true"
|
||||
data-fv-notempty-message="Le nom est obligatoire"
|
||||
data-fv-stringlength="true"
|
||||
data-fv-stringlength-max="30"
|
||||
data-fv-stringlength-message="34 caractères maximum" />
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="form-group">
|
||||
<label class="col-xs-4 control-label" for="prenom">Prénom(s)</label>
|
||||
<div class="col-xs-8">
|
||||
<input class="form-control" type="text" id="prenom" name="prenom" value="${prenom}"
|
||||
placeholder="tel(s) qu’indiqué(s) sur votre pièce d’identité"
|
||||
data-fv-notempty="true"
|
||||
data-fv-notempty-message="Le prénom est obligatoire"
|
||||
data-fv-stringlength="true"
|
||||
data-fv-stringlength-max="37"
|
||||
data-fv-stringlength-message="37 caractères maximum" />
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="form-group">
|
||||
<label class="col-xs-4 control-label" for="nom">Nom de naissance</label>
|
||||
<div class="col-xs-8">
|
||||
<input class="form-control" type="text" id="nom_jf" name="nom_jf" value="${nom_jf}" placeholder="si différent du nom d'usage"
|
||||
data-fv-stringlength="true"
|
||||
data-fv-stringlength-max="30"
|
||||
data-fv-stringlength-message="34 caractères maximum" />
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="form-group">
|
||||
<label class="col-xs-4 control-label" for="date_nais">Date de naissance</label>
|
||||
<div class="col-xs-8">
|
||||
<input class="form-control" type="text" id="date_nais" name="date_nais" value="${date_nais}" placeholder="JJ/MM/AAAA"
|
||||
data-fv-notempty="true"
|
||||
data-fv-notempty-message="La date de naissance est obligatoire"
|
||||
data-fv-date="true"
|
||||
data-fv-date-format="DD/MM/YYYY"
|
||||
data-fv-date-message="La date de naissance n'est pas valide (JJ/MM/AAAA)" />
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="form-group">
|
||||
<label class="col-xs-4 control-label" for="lieu_nais">Lieu de naissance</label>
|
||||
<div class="col-xs-8">
|
||||
<input class="form-control" type="text" id="lieu_nais" name="lieu_nais" value="${lieu_nais}"
|
||||
data-fv-notempty="true"
|
||||
data-fv-notempty-message="Le lieu de naissance est obligatoire"
|
||||
data-fv-stringlength="true"
|
||||
data-fv-stringlength-max="26"
|
||||
data-fv-stringlength-message="26 caractères maximum" />
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="form-group">
|
||||
<label class="col-xs-4 control-label" for="dept_nais">Département ou pays de naissance</label>
|
||||
<div class="col-xs-8">
|
||||
<select class="form-control" id="dept_nais" name="dept_nais">
|
||||
<tal:block tal:repeat="item dept">
|
||||
<option value="${item.code}" tal:attributes="selected item.code == dept_nais and 'selected' or None">
|
||||
${item.code} - ${item.libelle}</option>
|
||||
</tal:block>
|
||||
</select>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- COORDONNÉES -->
|
||||
<div class="form-group">
|
||||
<label class="col-xs-4 control-label" for="adres1">Adresse</label>
|
||||
<div class="col-xs-8">
|
||||
<input class="form-control" type="text" id="adres1" name="adres1" value="${adres1}" placeholder="Votre adresse"
|
||||
data-fv-notempty="true"
|
||||
data-fv-notempty-message="L'adresse est obligatoire"
|
||||
data-fv-stringlength="true"
|
||||
data-fv-stringlength-max="40"
|
||||
data-fv-stringlength-message="40 caractères maximum" />
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="form-group">
|
||||
<label class="col-xs-4 control-label" for="adres2"></label>
|
||||
<div class="col-xs-8">
|
||||
<input class="form-control" type="text" id="adres2" name="adres2" value="${adres2}" placeholder="(facultatif)"
|
||||
data-fv-stringlength="true"
|
||||
data-fv-stringlength-max="40"
|
||||
data-fv-stringlength-message="40 caractères maximum" />
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="form-group">
|
||||
<label class="control-label col-xs-4" for="code_postal">Code postal - Ville</label>
|
||||
<div class="col-xs-8">
|
||||
<input class="form-control" type="text" id="code_postal" name="code_postal" value="${code_postal}"
|
||||
placeholder="5 caractères maximum"
|
||||
data-fv-notempty="true"
|
||||
data-fv-notempty-message="Le code postal est obligatoire">
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="col-xs-4 control-label" for="no_tel">Téléphone portable</label>
|
||||
<div class="col-xs-6">
|
||||
<input class="form-control phoneNumber" type="text" id="no_tel" name="no_tel" value="${no_tel}"
|
||||
data-fv-notempty="true"
|
||||
data-fv-notempty-message="Le numéro de téléphone est obligatoire"
|
||||
data-fv-phone="true"
|
||||
data-fv-phone-country="FR"
|
||||
data-fv-phone-message="Le numéro de téléphone n'est pas vailde" />
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="col-xs-4 control-label" for="mail">Email</label>
|
||||
<div class="col-xs-8">
|
||||
<input class="form-control" type="text" id="mail" name="mail" value="${mail}"
|
||||
data-fv-notempty="true"
|
||||
data-fv-notempty-message="L'adresse email est obligatoire"
|
||||
data-fv-emailaddress="true"
|
||||
data-fv-emailaddress-message="L'adresse email n'est pas valide" />
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- case a cocher "Acceptation des infos" -->
|
||||
<div class="form-group">
|
||||
<div class="col-xs-offset-4 col-xs-7">
|
||||
<input type="checkbox" name="cb_spam" value="cb_spam" id="cb_spam"
|
||||
tal:attributes="checked cb_spam == 'oui' and 'checked' or None">
|
||||
J'accepte de recevoir des informations et offres commerciales éventuelles liées à la sécurité routière.</input>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="form-group">
|
||||
<div class="col-xs-offset-4 col-xs-8">
|
||||
<button class="btn btn-primary" type="submit" name="form.next1">
|
||||
<span class="glyphicon glyphicon-chevron-right"></span> Suivant</button>
|
||||
</div>
|
||||
</div>
|
||||
</div> <!-- id-tab -->
|
||||
|
||||
|
||||
<div class="tab-pane" id="permis-tab">
|
||||
<br />
|
||||
<div class="well well-sm">
|
||||
<ul>
|
||||
<li>Il est possible d’effectuer un stage même si vous êtes en rétention ou suspension de permis, dans ce cas vous trouverez les informations nécessaires sur votre notification de suspension ou votre avis de rétention.</li>
|
||||
<li>Il est possible d’effectuer un stage même si votre solde de point est nul mais uniquement si vous n’avez pas reçu de « lettre 48SI » notifiant l’invalidation du permis </li>
|
||||
<li>Dans les cas n°1 et n° 2, le stage permet de récupérer jusqu’à 4 points sur votre permis de conduire, dans la limite du plafond autorisé et sous condition du respect d’un an et un jour entre deux stages »</li></ul>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="col-xs-4 control-label" for="no_permis">Numéro de permis</label>
|
||||
<div class="col-xs-8">
|
||||
<input class="form-control" type="text" id="no_permis" name="no_permis" value="${no_permis}"
|
||||
data-fv-notempty="true"
|
||||
data-fv-notempty-message="Le numéro de permis est obligatoire"
|
||||
data-fv-stringlength="true"
|
||||
data-fv-stringlength-max="20"
|
||||
data-fv-stringlength-message="20 caractères maximum" />
|
||||
<p class="help-block">
|
||||
Comment trouver mon <a href="/faq_view/2764" target="_blank">numéro de permis</a> ?</p>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="form-group">
|
||||
<label class="col-xs-4 control-label" for="date_nais">Délivré (imprimé) le</label>
|
||||
<div class="col-xs-8">
|
||||
<input class="form-control" type="text" id="obtenu_le" name="obtenu_le" value="${obtenu_le}" placeholder="JJ/MM/AAAA"
|
||||
data-fv-notempty="true"
|
||||
data-fv-notempty-message="La date de délivrance du permis est obligatoire"
|
||||
data-fv-date="true"
|
||||
data-fv-date-format="DD/MM/YYYY"
|
||||
data-fv-date-message="La date de délivrance du permis n'est pas valide (JJ/MM/AAAA)" />
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="form-group">
|
||||
<label class="col-xs-4 control-label" for="lieu_permis">Préfecture de délivrance</label>
|
||||
<div class="col-xs-8">
|
||||
<select class="form-control" id="lieu_permis" name="lieu_permis">
|
||||
<tal:block tal:repeat="item dept">
|
||||
<option value="${item.libelle}" tal:attributes="selected item.libelle == lieu_permis and 'selected' or None">
|
||||
${item.code} - ${item.libelle}</option>
|
||||
</tal:block>
|
||||
</select>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<h3>Mon stage</h3>
|
||||
<!-- Type de stage -->
|
||||
<div class="form-group">
|
||||
<div class="col-xs-offset-1 col-xs-8S">
|
||||
<!-- *** CAS 1 *** -->
|
||||
<div class="radio">
|
||||
<label>
|
||||
<input type="radio" name="type_stage" value="CAS-1"
|
||||
tal:attributes="checked type_stage == 'CAS-1' and 'checked' or None"/>
|
||||
<strong>Stage volontaire de récupération de points, cas n°1</strong>
|
||||
</label>
|
||||
<div id="CAS-1" class="type-stage-panel ">
|
||||
<p>destiné aux conducteurs désirant retrouver le bénéfice de points suite à la perte de ceux-ci à l'occasion d'infractions (art. L. 223-6, alinéa 2, et R. 223-8 du code la route).</p>
|
||||
<div class="form-group">
|
||||
<input type="checkbox" name="cb_cas1" id="cb_cas1" checked > J'atteste ne pas avoir participé à un stage volontaire au cours des douze derniers mois.</input>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<!-- *** CAS 2 *** -->
|
||||
<div class="radio">
|
||||
<label>
|
||||
<input type="radio" name="type_stage" value="CAS-2"
|
||||
tal:attributes="checked type_stage == 'CAS-2' and 'checked' or None" />
|
||||
<strong>Stage obligatoire suite à la réception de la lettre 48N, cas n°2</strong>
|
||||
</label>
|
||||
<div id="CAS-2" class="type-stage-panel">
|
||||
<p>destiné aux conducteurs qui ont commis pendant le délai probatoire une infraction ayant donné lieu à une perte d'au moins trois points (art. L 223-6 et R. 223-4 du code de la route). </p>
|
||||
<div class="form-group">
|
||||
<input type="checkbox" name="cb_cas2" id="cb_cas2" checked > Je souhaite faire un stage suite à la réception de la lettre 48N.</input>
|
||||
</div>
|
||||
<p>Veuillez renseigner les informations figurant sur votre lettre 48N que je dois apporter lors du stage :</p>
|
||||
<div class="form-group">
|
||||
<div class="col-xs-6">
|
||||
<input class="form-control" type="text" id="infraction_lieu" name="infraction_lieu" value="${infraction_lieu}"
|
||||
placeholder="Lieu de l'infraction"
|
||||
data-fv-notempty="true"
|
||||
data-fv-notempty-message="Le lieu d'infraction est obligatoire"
|
||||
data-fv-stringlength="true"
|
||||
data-fv-stringlength-max="30"
|
||||
data-fv-stringlength-message="30 caractères maximum" />
|
||||
</div>
|
||||
<div class="col-xs-3">
|
||||
<input class="form-control" type="text" id="infraction_le" name="infraction_le" value="${infraction_le}"
|
||||
placeholder="Date de l'infraction JJ/MM/AAAA"
|
||||
data-fv-date="true"
|
||||
data-fv-date-format="DD/MM/YYYY"
|
||||
data-fv-date-message="La date de l'infraction n'est pas valide (JJ/MM/AAAA)" />
|
||||
</div>
|
||||
<div class="col-xs-3">
|
||||
<input class="form-control" type="text" id="infraction_a" name="infraction_a" value="${infraction_a}"
|
||||
placeholder="Heure au format 00:00"
|
||||
data-fv-regexp="true"
|
||||
data-fv-regexp-regexp="^(2[0-3]|[01]?[0-9]):([0-5]?[0-9])$"
|
||||
data-fv-regexp-message="L'heure de l'infraction doit au format 00:00" />
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<!-- *** CAS 3 *** -->
|
||||
<div class="radio">
|
||||
<label>
|
||||
<input type="radio" name="type_stage" value="CAS-3"
|
||||
tal:attributes="checked type_stage == 'CAS-3' and 'checked' or None" />
|
||||
<strong>Stage obligatoire d'alternative aux poursuites, cas n°3</strong>
|
||||
</label>
|
||||
<div id="CAS-3" class="type-stage-panel">
|
||||
<p>proposé par le Procureur de la République ou en exécution d'une composition pénale (2° de l'article 41-1 et 5° de l'article 41-2 du code de procédure pénale).</p>
|
||||
<div class="form-group">
|
||||
<input type="checkbox" name="cb_cas3" id="cb_cas3" checked> Je souhaite faire un stage dans le cadre d'une peine complémentaire.</input>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<!-- *** CAS 4 *** -->
|
||||
<div class="radio">
|
||||
<label>
|
||||
<input type="radio" name="type_stage" value="CAS-4"
|
||||
tal:attributes="checked type_stage == 'CAS-4' and 'checked' or None" />
|
||||
<strong>Stage obligatoire dans le cadre d'une peine complémentaire, cas n°4</strong>
|
||||
</label>
|
||||
<div id="CAS-4" class="type-stage-panel">
|
||||
<p>ou obligation imposée dans le cadre du sursis avec mise à l'épreuve (art. 131-35-1 et R. 132-45 du codé pénal)</p>
|
||||
<div class="form-group">
|
||||
<input type="checkbox" name="cb_cas4" id="cb_cas4" checked> Je souhaite faire un stage dans le cadre d'une peine complémentaire.</input>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="form-group">
|
||||
<div class="col-xs-offset-1 col-xs-4">
|
||||
<button class="btn btn-primary" type="submit" name="form.next2">
|
||||
<span class="glyphicon glyphicon-chevron-right"></span> Suivant</button>
|
||||
</div>
|
||||
</div>
|
||||
</div> <!-- permis-tab -->
|
||||
|
||||
<div class="tab-pane" id="resa-tab">
|
||||
<br />
|
||||
<div class="form-group">
|
||||
<label class="col-xs-4 control-label" for="type">Comment avez-vous connu notre site ?</label>
|
||||
<div class="col-xs-8">
|
||||
<select class="form-control" id="origine" name="origine">
|
||||
<tal:block tal:repeat="item origines">
|
||||
<option value="${item.LIBELLE}" tal:attributes="selected item.LIBELLE == origine and 'selected' or None">${item.LIBELLE}</option>
|
||||
</tal:block>
|
||||
</select>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="col-xs-4 control-label">Montant du stage</label>
|
||||
<div class="col-xs-8">
|
||||
<p class="form-control-static text-danger"><b>${layout.to_euro(montant)}</b></p>
|
||||
</div>
|
||||
</div>
|
||||
<!-- case a cocher "Acceptation des CGI" -->
|
||||
<div class="form-group">
|
||||
<div class="col-xs-offset-4 col-xs-7">
|
||||
<div class="checkbox">
|
||||
<input type="checkbox" name="cb_cgv" id="cb_cgv" class="styled">
|
||||
En cochant cette case, je reconnais avoir lu et accepté les <a href="/faq_view/2763" target="_blank">Conditions Générales de Vente ci-après</a>
|
||||
et je valide mon inscription par mon règlement.
|
||||
</input>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<div class="col-xs-offset-4 col-xs-4">
|
||||
<button class="btn btn-primary" type="submit" name="form.submitted">
|
||||
<span class="glyphicon glyphicon-ok"></span> Enregistrer et régler l'inscription</button>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div> <!-- resa-tab -->
|
||||
</div>
|
||||
<p><br/></p>
|
||||
</form>
|
||||
|
||||
</div>
|
||||
|
||||
<script src="https://code.jquery.com/ui/1.12.1/jquery-ui.js"></script>
|
||||
<script>
|
||||
$(document).ready(function() {
|
||||
// validate the form
|
||||
$('#sinscrire-form').formValidation({
|
||||
framework: 'bootstrap',
|
||||
icon: {
|
||||
valid: 'glyphicon glyphicon-ok',
|
||||
invalid: 'glyphicon glyphicon-remove',
|
||||
validating: 'glyphicon glyphicon-refresh'
|
||||
},
|
||||
fields: {
|
||||
cb_cgv: {
|
||||
validators: {
|
||||
notEmpty: {
|
||||
message: 'Veuillez accepter les Conditions Générales de Vente pour continuer.'
|
||||
}
|
||||
}
|
||||
},
|
||||
type_stage: {
|
||||
validators: {
|
||||
notEmpty: {
|
||||
message: 'Veuillez sélectionner un CAS de stage.'
|
||||
}
|
||||
}
|
||||
},
|
||||
cb_cas1: {
|
||||
validators: {
|
||||
notEmpty: {
|
||||
message: 'Veuillez confirmer votre sélection en cochant cette case.'
|
||||
}
|
||||
}
|
||||
},
|
||||
cb_cas2: {
|
||||
validators: {
|
||||
notEmpty: {
|
||||
message: 'Veuillez confirmer votre sélection en cochant cette case.'
|
||||
}
|
||||
}
|
||||
},
|
||||
cb_cas3: {
|
||||
validators: {
|
||||
notEmpty: {
|
||||
message: 'Veuillez confirmer votre sélection en cochant cette case.'
|
||||
}
|
||||
}
|
||||
},
|
||||
cb_cas4: {
|
||||
validators: {
|
||||
notEmpty: {
|
||||
message: 'Veuillez confirmer votre sélection en cochant cette case.'
|
||||
}
|
||||
}
|
||||
},
|
||||
}
|
||||
})
|
||||
.find('[name="date_nais"], [name="obtenu_le"]').mask('00/00/0000');
|
||||
|
||||
if ($("#etape").val() == 2) {
|
||||
$('ul.nav li a[href="#permis-tab"]').tab('show');
|
||||
} else {
|
||||
if ($("#etape").val() == 3) {
|
||||
$('ul.nav li a[href="#resa-tab"]').tab('show');
|
||||
} else {
|
||||
if ($("#etape").val() == 4) {
|
||||
$('ul.nav li a[href="#confirm-tab"]').tab('show');
|
||||
}
|
||||
}
|
||||
}
|
||||
$("input[name=type_stage]").change(function() {
|
||||
var cas = $(this).val();
|
||||
$(".type-stage-panel").hide();
|
||||
$("#"+cas).show();
|
||||
});
|
||||
$(document).on('click.bs.tab.data-api', '[data-toggle="tab"], [data-toggle="pill"]', function (e) {
|
||||
e.preventDefault()
|
||||
// show next tab on button "next" click
|
||||
$('ul.nav li a[href="' + $(this).attr('href') + '"]').tab('show');
|
||||
})
|
||||
$('#code_postal').autocomplete({
|
||||
source: function (request, response) {
|
||||
$.ajax({
|
||||
url:'/ajax_codepostal',
|
||||
dataType: 'json',
|
||||
data: {
|
||||
recherche: request.term,
|
||||
},
|
||||
success: function (data) {
|
||||
response( data );
|
||||
},
|
||||
});
|
||||
},
|
||||
minLength: 3,
|
||||
});
|
||||
});
|
||||
</script>
|
||||
|
||||
</div>
|
||||
</metal:block>
|
||||
371
monaem/templates/inscriptions/pasa2_cde.pt
Normal file
371
monaem/templates/inscriptions/pasa2_cde.pt
Normal file
@@ -0,0 +1,371 @@
|
||||
<metal:block use-macro="main_template">
|
||||
<div metal:fill-slot="content">
|
||||
|
||||
<div class="alert alert-danger" tal:condition="message" tal:content="message" />
|
||||
|
||||
<div class="row">
|
||||
<div class="col-md-6">
|
||||
<p>
|
||||
Je m’inscris au stage de PASSERELLE A2 vers A qui aura lieu : <br />
|
||||
le <b>${stage.debut.strftime("%d-%m-%Y")}</b> à <b>${stage.debut.strftime("%Hh%M")}</b> <br />
|
||||
à : <b>${stage.lieu1} - ${stage.lieu2}</b>
|
||||
</p>
|
||||
</div>
|
||||
<div class="col-md-6 alert alert-danger">
|
||||
<p>
|
||||
<b>A cause de la crise sanitaire, nous ne pouvons plus réaliser de prêt de casque ou de gants pour les motards</b>
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<ul class="nav nav-tabs">
|
||||
<li class="active"><a href="#id-tab" data-toggle="tab">Identification <i class="fa"></i></a></li>
|
||||
<li tal:condition="etape > 1"><a href="#permis-tab" data-toggle="tab">Votre permis de conduire <i class="fa"></i></a></li>
|
||||
<li tal:condition="etape > 2"><a href="#resa-tab" data-toggle="tab">Réservation <i class="fa"></i></a></li>
|
||||
|
||||
</ul>
|
||||
<br />
|
||||
<form id="sinscrire-form" action="${url}" role="form" method="post"
|
||||
class="form-horizontal"
|
||||
data-fv-framework="bootstrap"
|
||||
data-fv-icon-valid="glyphicon glyphicon-ok"
|
||||
data-fv-icon-invalid="glyphicon glyphicon-remove"
|
||||
data-fv-icon-validating="glyphicon glyphicon-refresh">
|
||||
|
||||
<input type="hidden" id="etape" value="${etape}" />
|
||||
|
||||
<div class="tab-content">
|
||||
<div class="tab-pane active" id="id-tab">
|
||||
<br />
|
||||
|
||||
<div class="form-group">
|
||||
<label class="col-xs-4 control-label" for="civilite">Civilité</label>
|
||||
<div class="col-xs-8">
|
||||
<select class="form-control" id="civilite" name="civilite">
|
||||
<tal:block tal:repeat="item civilites">
|
||||
<option value="${item}" tal:attributes="selected item == civilite and 'selected' or None">${item}</option>
|
||||
</tal:block>
|
||||
</select>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="form-group">
|
||||
<label class="col-xs-4 control-label" for="nom">Nom d'usage</label>
|
||||
<div class="col-xs-8">
|
||||
<input class="form-control" type="text" id="nom" name="nom" value="${nom}" placeholder="Votre nom"
|
||||
data-fv-notempty="true"
|
||||
data-fv-notempty-message="Le nom est obligatoire"
|
||||
data-fv-stringlength="true"
|
||||
data-fv-stringlength-max="30"
|
||||
data-fv-stringlength-message="34 caractères maximum" />
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="form-group">
|
||||
<label class="col-xs-4 control-label" for="prenom">Prénom(s)</label>
|
||||
<div class="col-xs-8">
|
||||
<input class="form-control" type="text" id="prenom" name="prenom" value="${prenom}"
|
||||
placeholder="tel(s) qu’indiqué(s) sur votre pièce d’identité"
|
||||
data-fv-notempty="true"
|
||||
data-fv-notempty-message="Le prénom est obligatoire"
|
||||
data-fv-stringlength="true"
|
||||
data-fv-stringlength-max="37"
|
||||
data-fv-stringlength-message="37 caractères maximum" />
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="form-group">
|
||||
<label class="col-xs-4 control-label" for="nom">Nom de naissance</label>
|
||||
<div class="col-xs-8">
|
||||
<input class="form-control" type="text" id="nom_jf" name="nom_jf" value="${nom_jf}" placeholder="si différent du nom d'usage"
|
||||
data-fv-stringlength="true"
|
||||
data-fv-stringlength-max="30"
|
||||
data-fv-stringlength-message="34 caractères maximum" />
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="form-group">
|
||||
<label class="col-xs-4 control-label" for="date_nais">Date de naissance</label>
|
||||
<div class="col-xs-8">
|
||||
<input class="form-control" type="text" id="date_nais" name="date_nais" value="${date_nais}" placeholder="JJ/MM/AAAA"
|
||||
data-fv-notempty="true"
|
||||
data-fv-notempty-message="La date de naissance est obligatoire"
|
||||
data-fv-date="true"
|
||||
data-fv-date-format="DD/MM/YYYY"
|
||||
data-fv-date-message="La date de naissance n'est pas valide (JJ/MM/AAAA)" />
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="form-group">
|
||||
<label class="col-xs-4 control-label" for="lieu_nais">Lieu de naissance</label>
|
||||
<div class="col-xs-8">
|
||||
<input class="form-control" type="text" id="lieu_nais" name="lieu_nais" value="${lieu_nais}"
|
||||
data-fv-notempty="true"
|
||||
data-fv-notempty-message="Le lieu de naissance est obligatoire"
|
||||
data-fv-stringlength="true"
|
||||
data-fv-stringlength-max="26"
|
||||
data-fv-stringlength-message="26 caractères maximum" />
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="form-group">
|
||||
<label class="col-xs-4 control-label" for="dept_nais">Département ou pays de naissance</label>
|
||||
<div class="col-xs-8">
|
||||
<select class="form-control" id="dept_nais" name="dept_nais">
|
||||
<tal:block tal:repeat="item dept">
|
||||
<option value="${item.code}" tal:attributes="selected item.code == dept_nais and 'selected' or None">
|
||||
${item.code} - ${item.libelle}</option>
|
||||
</tal:block>
|
||||
</select>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- COORDONNÉES -->
|
||||
<div class="form-group">
|
||||
<label class="col-xs-4 control-label" for="adres1">Adresse</label>
|
||||
<div class="col-xs-8">
|
||||
<input class="form-control" type="text" id="adres1" name="adres1" value="${adres1}" placeholder="Votre adresse"
|
||||
data-fv-notempty="true"
|
||||
data-fv-notempty-message="L'adresse est obligatoire"
|
||||
data-fv-stringlength="true"
|
||||
data-fv-stringlength-max="40"
|
||||
data-fv-stringlength-message="40 caractères maximum" />
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="form-group">
|
||||
<label class="col-xs-4 control-label" for="adres2"></label>
|
||||
<div class="col-xs-8">
|
||||
<input class="form-control" type="text" id="adres2" name="adres2" value="${adres2}" placeholder="(facultatif)"
|
||||
data-fv-stringlength="true"
|
||||
data-fv-stringlength-max="40"
|
||||
data-fv-stringlength-message="40 caractères maximum" />
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="form-group">
|
||||
<label class="control-label col-xs-4" for="code_postal">Code postal - Ville</label>
|
||||
<div class="col-xs-8">
|
||||
<input class="form-control" type="text" id="code_postal" name="code_postal" value="${code_postal}"
|
||||
placeholder="5 caractères maximum"
|
||||
data-fv-notempty="true"
|
||||
data-fv-notempty-message="Le code postal est obligatoire">
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="col-xs-4 control-label" for="no_tel">Téléphone portable</label>
|
||||
<div class="col-xs-6">
|
||||
<input class="form-control phoneNumber" type="text" id="no_tel" name="no_tel" value="${no_tel}"
|
||||
data-fv-notempty="true"
|
||||
data-fv-notempty-message="Le numéro de téléphone est obligatoire"
|
||||
data-fv-phone="true"
|
||||
data-fv-phone-country="FR"
|
||||
data-fv-phone-message="Le numéro de téléphone n'est pas vailde" />
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="form-group">
|
||||
<label class="col-xs-4 control-label" for="mail">Email</label>
|
||||
<div class="col-xs-8">
|
||||
<input class="form-control" type="text" id="mail" name="mail" value="${mail}"
|
||||
data-fv-notempty="true"
|
||||
data-fv-notempty-message="L'adresse email est obligatoire"
|
||||
data-fv-emailaddress="true"
|
||||
data-fv-emailaddress-message="L'adresse email n'est pas valide" />
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- case a cocher "Acceptation des infos" -->
|
||||
<div class="form-group">
|
||||
<div class="col-xs-offset-4 col-xs-8">
|
||||
<input type="checkbox" name="cb_spam" value="cb_spam" id="cb_spam"
|
||||
tal:attributes="checked cb_spam == 'oui' and 'checked' or None">
|
||||
J'accepte de recevoir des informations et offres commerciales éventuelles liées à la sécurité routière.</input>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="form-group">
|
||||
<div class="col-xs-offset-4 col-xs-8">
|
||||
<button class="btn btn-primary" type="submit" name="form.next1">
|
||||
<span class="glyphicon glyphicon-chevron-right"></span> Suivant</button>
|
||||
</div>
|
||||
</div>
|
||||
</div> <!-- id-tab -->
|
||||
|
||||
|
||||
<div class="tab-pane" id="permis-tab">
|
||||
<br />
|
||||
<div class="form-group">
|
||||
<label class="col-xs-3 control-label" for="no_permis">Numéro NEPH</label>
|
||||
<div class="col-xs-9">
|
||||
<input class="form-control" type="text" id="no_permis" name="no_permis" value="${no_permis}"
|
||||
data-fv-notempty="true"
|
||||
data-fv-notempty-message="Le numéro NEPH est obligatoire"
|
||||
data-fv-stringlength="true"
|
||||
data-fv-stringlength-max="20"
|
||||
data-fv-stringlength-message="20 caractères maximum" />
|
||||
<p class="help-block">
|
||||
Comment trouver mon <a href="/faq_view/2764" target="_blank">numéro NEPH </a> ?</p>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="form-group">
|
||||
<label class="col-xs-3 control-label" for="date_nais">Permis A2 obtenu le</label>
|
||||
<div class="col-xs-9">
|
||||
<input class="form-control" type="text" id="obtenu_le" name="obtenu_le" value="${obtenu_le}" placeholder="JJ/MM/AAAA"
|
||||
data-fv-notempty="true"
|
||||
data-fv-notempty-message="La date de délivrance du permis est obligatoire"
|
||||
data-fv-date="true"
|
||||
data-fv-date-format="DD/MM/YYYY"
|
||||
data-fv-date-message="La date de délivrance du permis n'est pas valide (JJ/MM/AAAA)" />
|
||||
<p class="help-block">
|
||||
La date est inscrite au dos de votre permis sur la colonne 10 de la ligne Moto A2</p>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="form-group">
|
||||
<label class="col-xs-3 control-label" for="lieu_permis">Lieu d'obtention</label>
|
||||
<div class="col-xs-9">
|
||||
<select class="form-control" id="lieu_permis" name="lieu_permis">
|
||||
<tal:block tal:repeat="item dept">
|
||||
<option value="${item.libelle}" tal:attributes="selected item.libelle == lieu_permis and 'selected' or None">
|
||||
${item.code} - ${item.libelle}</option>
|
||||
</tal:block>
|
||||
</select>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="form-group">
|
||||
<div class="col-xs-offset-3 col-xs-9">
|
||||
<input type="checkbox" name="cb_permisA2" id="cb_permisA2" checked="checked"> J’atteste avoir un permis de conduire de catégorie A2 depuis au moins 2 ans au jour de la formation (possibilité de réaliser la formation 3 mois avant ce délai) et je dois l’apporter pour pouvoir suivre la formation </input>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<div class="col-xs-offset-3 col-xs-9">
|
||||
<input type="checkbox" name="cb_capital" id="cb_capital" checked="checked"> Je confirme que le capital points de mon permis de conduire est au moins égal à 1 point.</input>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="form-group">
|
||||
<div class="col-xs-offset-3 col-xs-9">
|
||||
<button class="btn btn-primary" type="submit" name="form.next2">
|
||||
<span class="glyphicon glyphicon-chevron-right"></span> Suivant</button>
|
||||
</div>
|
||||
</div>
|
||||
</div> <!-- permis-tab -->
|
||||
|
||||
<div class="tab-pane" id="resa-tab">
|
||||
<br />
|
||||
<div class="form-group">
|
||||
<label class="col-xs-4 control-label" for="type">Comment avez-vous connu notre site ?</label>
|
||||
<div class="col-xs-8">
|
||||
<select class="form-control" id="origine" name="origine">
|
||||
<tal:block tal:repeat="item origines">
|
||||
<option value="${item.LIBELLE}" tal:attributes="selected item.LIBELLE == origine and 'selected' or None">${item.LIBELLE}</option>
|
||||
</tal:block>
|
||||
</select>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="col-xs-4 control-label">Montant du stage</label>
|
||||
<div class="col-xs-8">
|
||||
<p class="form-control-static text-danger"><b>${layout.to_euro(montant)}</b></p>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<p>
|
||||
IMPORTANT : Au cours de cette formation proposée, vous serez amené à manœuvrer et conduire une motocyclette seul(e) sans moniteur derrière vous, avec les risques et périls liés à la conduite d’un véhicule 2 roues.
|
||||
Aussi, si la moto école est assurée pour elle-même et ses élèves contre les dommages causés aux tiers (responsabilité civile), l'élève lui, lorsqu'il chute en cours de formation ou d'examen, n'est pas assuré pour les dommages corporels subis (car il est responsable de ses propres erreurs Cf art.4 - Loi du 5 juillet 1985). Les protections habituelles (Sécurité Sociale + Mutuelles) peuvent alors s’avérer insuffisantes, notamment en cas d'invalidité. L’élève a la possibilité de souscrire un contrat individuel afin d’accroître sa protection.
|
||||
Voir par exemple <a href=" http://www.kick-off.amv.fr/html/amv_kickoff.asp" target="_blank">le contrat proposé par AMV</a>. En acceptant les conditions générales de ventes, vous reconnaissez avoir reçu toute l’information nécessaire à votre appréciation sur les conditions de formation et d’assurance.
|
||||
</p>
|
||||
<!-- case a cocher "Acceptation des CGI" -->
|
||||
<div class="form-group">
|
||||
<div class="col-xs-offset-1 col-xs-11">
|
||||
<input type="checkbox" name="cb_cgv" id="cb_cgv" class="styled">
|
||||
En cochant cette case, je reconnais avoir lu et accepté les <a href="/faq_view/2766" target="_blank">Conditions Générales de Vente ci-après</a>
|
||||
et je valide mon inscription par mon règlement.
|
||||
</input>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<div class="col-xs-offset-4 col-xs-8">
|
||||
<button class="btn btn-primary" type="submit" name="form.submitted">
|
||||
<span class="glyphicon glyphicon-ok"></span> Enregistrer et régler l'inscription</button>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div> <!-- resa-tab -->
|
||||
</div>
|
||||
<p><br/></p>
|
||||
</form>
|
||||
|
||||
</div>
|
||||
|
||||
<script src="https://code.jquery.com/ui/1.12.1/jquery-ui.js"></script>
|
||||
<script>
|
||||
$(document).ready(function() {
|
||||
// validate the form
|
||||
$('#sinscrire-form').formValidation({
|
||||
framework: 'bootstrap',
|
||||
fields: {
|
||||
cb_cgv: {
|
||||
validators: {
|
||||
notEmpty: {
|
||||
message: 'Veuillez accepter les Conditions Générales de Vente pour continuer.'
|
||||
}
|
||||
}
|
||||
},
|
||||
cb_permisA2: {
|
||||
validators: {
|
||||
notEmpty: {
|
||||
message: 'Un permis A2 valable est requis pour effectuer ce stage.'
|
||||
}
|
||||
}
|
||||
},
|
||||
cb_capital: {
|
||||
validators: {
|
||||
notEmpty: {
|
||||
message: 'Un capital de points est requis pour effectuer ce stage.'
|
||||
}
|
||||
}
|
||||
},
|
||||
}
|
||||
})
|
||||
.find('[name="date_nais"], [name="obtenu_le"]').mask('00/00/0000');
|
||||
|
||||
if ($("#etape").val() == 2) {
|
||||
$('ul.nav li a[href="#permis-tab"]').tab('show');
|
||||
} else {
|
||||
if ($("#etape").val() == 3) {
|
||||
$('ul.nav li a[href="#resa-tab"]').tab('show');
|
||||
} else {
|
||||
if ($("#etape").val() == 4) {
|
||||
$('ul.nav li a[href="#confirm-tab"]').tab('show');
|
||||
}
|
||||
}
|
||||
}
|
||||
$(document).on('click.bs.tab.data-api', '[data-toggle="tab"], [data-toggle="pill"]', function (e) {
|
||||
e.preventDefault()
|
||||
// show next tab on button "next" click
|
||||
$('ul.nav li a[href="' + $(this).attr('href') + '"]').tab('show');
|
||||
})
|
||||
$('#code_postal').autocomplete({
|
||||
source: function (request, response) {
|
||||
$.ajax({
|
||||
url:'/ajax_codepostal',
|
||||
dataType: 'json',
|
||||
data: {
|
||||
recherche: request.term,
|
||||
},
|
||||
success: function (data) {
|
||||
response( data );
|
||||
},
|
||||
});
|
||||
},
|
||||
minLength: 3,
|
||||
});
|
||||
});
|
||||
</script>
|
||||
|
||||
</div>
|
||||
</metal:block>
|
||||
163
monaem/templates/inscriptions/passr_cde.pt
Normal file
163
monaem/templates/inscriptions/passr_cde.pt
Normal file
@@ -0,0 +1,163 @@
|
||||
<metal:block use-macro="main_template">
|
||||
<div metal:fill-slot="content">
|
||||
|
||||
<div class="alert alert-danger" tal:condition="message" tal:content="message" />
|
||||
|
||||
<div class="row">
|
||||
<br />
|
||||
<p>Je m’inscris au <b>PASS ROUSSEAU</b> pour un montant de <b>${layout.to_euro(montant)}</b>.</p>
|
||||
<br />
|
||||
<form id="sinscrire-form" action="${url}" role="form" method="post" class="form-horizontal"
|
||||
data-fv-framework="bootstrap"
|
||||
data-fv-icon-valid="glyphicon glyphicon-ok"
|
||||
data-fv-icon-invalid="glyphicon glyphicon-remove"
|
||||
data-fv-icon-validating="glyphicon glyphicon-refresh">
|
||||
|
||||
<div class="form-group">
|
||||
<label class="col-xs-4 control-label" for="civilite">Civilité</label>
|
||||
<div class="col-xs-8">
|
||||
<select class="form-control" id="civilite" name="civilite">
|
||||
<tal:block tal:repeat="item civilites">
|
||||
<option value="${item}" tal:attributes="selected item == civilite and 'selected' or None">${item}</option>
|
||||
</tal:block>
|
||||
</select>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="form-group">
|
||||
<label class="col-xs-4 control-label" for="nom">Nom</label>
|
||||
<div class="col-xs-8">
|
||||
<input class="form-control" type="text" id="nom" name="nom" value="${nom}" placeholder="Votre nom"
|
||||
data-fv-notempty="true"
|
||||
data-fv-notempty-message="Le nom est obligatoire"
|
||||
data-fv-stringlength="true"
|
||||
data-fv-stringlength-max="30"
|
||||
data-fv-stringlength-message="34 caractères maximum" />
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="form-group">
|
||||
<label class="col-xs-4 control-label" for="prenom">Prénom(s)</label>
|
||||
<div class="col-xs-8">
|
||||
<input class="form-control" type="text" id="prenom" name="prenom" value="${prenom}"
|
||||
placeholder="tel(s) qu’indiqué(s) sur votre pièce d’identité"
|
||||
data-fv-notempty="true"
|
||||
data-fv-notempty-message="Le prénom est obligatoire"
|
||||
data-fv-stringlength="true"
|
||||
data-fv-stringlength-max="37"
|
||||
data-fv-stringlength-message="37 caractères maximum" />
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="form-group">
|
||||
<label class="col-xs-4 control-label" for="date_nais">Date de naissance</label>
|
||||
<div class="col-xs-8">
|
||||
<input class="form-control" type="text" id="date_nais" name="date_nais" value="${date_nais}" placeholder="JJ/MM/AAAA"
|
||||
data-fv-notempty="true"
|
||||
data-fv-notempty-message="La date de naissance est obligatoire"
|
||||
data-fv-date="true"
|
||||
data-fv-date-format="DD/MM/YYYY"
|
||||
data-fv-date-message="La date de naissance n'est pas valide (JJ/MM/AAAA)" />
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="form-group">
|
||||
<label class="col-xs-4 control-label" for="codpost">Code postal</label>
|
||||
<div class="col-xs-8">
|
||||
<input class="form-control" type="text" id="codpost" name="codpost" value="${codpost}"
|
||||
data-fv-notempty="true"
|
||||
data-fv-notempty-message="Le code postal est obligatoire"
|
||||
data-fv-stringlength="true"
|
||||
data-fv-stringlength-max="5"
|
||||
data-fv-stringlength-message="5 caractères maximum" />
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="form-group">
|
||||
<label class="col-xs-4 control-label" for="no_tel_dom">Téléphone</label>
|
||||
<div class="col-xs-8">
|
||||
<input class="form-control phoneNumber" type="text" id="no_tel_dom" name="no_tel_dom" value="${no_tel_dom}"
|
||||
data-fv-notempty="true"
|
||||
data-fv-notempty-message="Le numéro de téléphone est obligatoire"
|
||||
data-fv-phone="true"
|
||||
data-fv-phone-country="FR"
|
||||
data-fv-phone-message="Ce numéro de téléphone n'est pas vailde" />
|
||||
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="form-group">
|
||||
<label class="col-xs-4 control-label" for="mail">Email</label>
|
||||
<div class="col-xs-8">
|
||||
<input class="form-control" type="text" id="mail" name="mail" value="${mail}"
|
||||
data-fv-notempty="true"
|
||||
data-fv-notempty-message="L'adresse email est obligatoire"
|
||||
data-fv-emailaddress="true"
|
||||
data-fv-emailaddress-message="L'adresse email n'est pas valide" />
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="form-group">
|
||||
<label class="col-xs-4 control-label" for="permis_demande">Permis souhaité</label>
|
||||
<div class="col-xs-8">
|
||||
<select class="form-control" id="permis_demande" name="permis_demande">
|
||||
<tal:block tal:repeat="item permis">
|
||||
<option value="${item.CAT}" tal:attributes="selected item.CAT == permis_demande and 'selected' or None">${item.CAT} | ${item.LIB}</option>
|
||||
</tal:block>
|
||||
</select>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- case a cocher "Acceptation des infos" -->
|
||||
<div class="form-group">
|
||||
<div class="col-xs-offset-1 col-xs-7">
|
||||
<div class="checkbox">
|
||||
<input type="checkbox" name="cb_spam" value="cb_spam" id="cb_spam"
|
||||
tal:attributes="checked cb_spam == 'oui' and 'checked' or None">
|
||||
J'accepte de recevoir des informations et offres commerciales éventuelles liées à la sécurité routière.</input>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- case a cocher "Acceptation des CGI" -->
|
||||
<div class="form-group">
|
||||
<div class="col-xs-offset-1 col-xs-11">
|
||||
<div class="checkbox">
|
||||
<input type="checkbox" name="cb_cgv" id="cb_cgv" class="styled">
|
||||
En cochant cette case, je reconnais avoir lu et accepté les <a href="/faq_view/2765" target="_blank">Conditions Générales de Vente ci-après</a>
|
||||
et je valide mon inscription par mon règlement.
|
||||
</input>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<div class="col-xs-offset-4 col-xs-8">
|
||||
<button class="btn btn-primary" type="submit" name="form.submitted">
|
||||
<span class="glyphicon glyphicon-ok"></span> Enregistrer et régler l'inscription</button>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
<br />
|
||||
</div>
|
||||
|
||||
<script>
|
||||
$(document).ready(function() {
|
||||
// validate the form
|
||||
$('#sinscrire-form').formValidation({
|
||||
framework: 'bootstrap',
|
||||
fields: {
|
||||
cb_cgv: {
|
||||
validators: {
|
||||
notEmpty: {
|
||||
message: 'Veuillez accepter les Conditions Générales de Vente pour continuer.'
|
||||
}
|
||||
}
|
||||
},
|
||||
}
|
||||
})
|
||||
.find('[name="date_nais"]').mask('00/00/0000');
|
||||
});
|
||||
</script>
|
||||
|
||||
</div>
|
||||
</metal:block>
|
||||
374
monaem/templates/inscriptions/pem_cde.pt
Normal file
374
monaem/templates/inscriptions/pem_cde.pt
Normal file
@@ -0,0 +1,374 @@
|
||||
<metal:block use-macro="main_template">
|
||||
<div metal:fill-slot="content">
|
||||
|
||||
<div class="alert alert-danger" tal:condition="message" tal:content="message" />
|
||||
|
||||
<div class="row">
|
||||
<div class="col-md-6">
|
||||
<p>
|
||||
Je m’inscris au stage de PRISE EN MAIN 125 qui aura lieu : <br />
|
||||
le <b>${stage.debut.strftime("%d-%m-%Y")}</b> à <b>${stage.debut.strftime("%Hh%M")}</b> <br />
|
||||
à : <b>${stage.lieu1} - ${stage.lieu2}</b>
|
||||
</p>
|
||||
</div>
|
||||
<div class="col-md-6 alert alert-danger">
|
||||
<p>
|
||||
<b>A cause de la crise sanitaire, nous ne pouvons plus réaliser de prêt de casque ou de gants pour les motards</b>
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<ul class="nav nav-tabs">
|
||||
<li class="active"><a href="#id-tab" data-toggle="tab">Identification <i class="fa"></i></a></li>
|
||||
<li tal:condition="etape > 1"><a href="#permis-tab" data-toggle="tab">Votre permis de conduire <i class="fa"></i></a></li>
|
||||
<li tal:condition="etape > 2"><a href="#resa-tab" data-toggle="tab">Réservation <i class="fa"></i></a></li>
|
||||
|
||||
</ul>
|
||||
<br />
|
||||
<form id="sinscrire-form" action="${url}" role="form" method="post" class="form-horizontal"
|
||||
data-fv-framework="bootstrap"
|
||||
data-fv-icon-valid="glyphicon glyphicon-ok"
|
||||
data-fv-icon-invalid="glyphicon glyphicon-remove"
|
||||
data-fv-icon-validating="glyphicon glyphicon-refresh">
|
||||
|
||||
<input type="hidden" id="etape" value="${etape}" />
|
||||
|
||||
<div class="tab-content">
|
||||
<div class="tab-pane active" id="id-tab">
|
||||
<br />
|
||||
|
||||
<div class="form-group">
|
||||
<label class="col-xs-4 control-label" for="civilite">Civilité</label>
|
||||
<div class="col-xs-8">
|
||||
<select class="form-control" id="civilite" name="civilite">
|
||||
<tal:block tal:repeat="item civilites">
|
||||
<option value="${item}" tal:attributes="selected item == civilite and 'selected' or None">${item}</option>
|
||||
</tal:block>
|
||||
</select>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="form-group">
|
||||
<label class="col-xs-4 control-label" for="nom">Nom d'usage</label>
|
||||
<div class="col-xs-8">
|
||||
<input class="form-control" type="text" id="nom" name="nom" value="${nom}" placeholder="Votre nom"
|
||||
data-fv-notempty="true"
|
||||
data-fv-notempty-message="Le nom est obligatoire"
|
||||
data-fv-stringlength="true"
|
||||
data-fv-stringlength-max="30"
|
||||
data-fv-stringlength-message="34 caractères maximum" />
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="form-group">
|
||||
<label class="col-xs-4 control-label" for="prenom">Prénom(s)</label>
|
||||
<div class="col-xs-8">
|
||||
<input class="form-control" type="text" id="prenom" name="prenom" value="${prenom}"
|
||||
placeholder="tel(s) qu’indiqué(s) sur votre pièce d’identité"
|
||||
data-fv-notempty="true"
|
||||
data-fv-notempty-message="Le prénom est obligatoire"
|
||||
data-fv-stringlength="true"
|
||||
data-fv-stringlength-max="37"
|
||||
data-fv-stringlength-message="37 caractères maximum" />
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="form-group">
|
||||
<label class="col-xs-4 control-label" for="nom">Nom de naissance</label>
|
||||
<div class="col-xs-8">
|
||||
<input class="form-control" type="text" id="nom_jf" name="nom_jf" value="${nom_jf}" placeholder="si différent du nom d'usage"
|
||||
data-fv-stringlength="true"
|
||||
data-fv-stringlength-max="30"
|
||||
data-fv-stringlength-message="34 caractères maximum" />
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="form-group">
|
||||
<label class="col-xs-4 control-label" for="date_nais">Date de naissance</label>
|
||||
<div class="col-xs-8">
|
||||
<input class="form-control" type="text" id="date_nais" name="date_nais" value="${date_nais}" placeholder="JJ/MM/AAAA"
|
||||
data-fv-notempty="true"
|
||||
data-fv-notempty-message="La date de naissance est obligatoire"
|
||||
data-fv-date="true"
|
||||
data-fv-date-format="DD/MM/YYYY"
|
||||
data-fv-date-message="La date de naissance n'est pas valide (JJ/MM/AAAA)" />
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="form-group">
|
||||
<label class="col-xs-4 control-label" for="lieu_nais">Lieu de naissance</label>
|
||||
<div class="col-xs-8">
|
||||
<input class="form-control" type="text" id="lieu_nais" name="lieu_nais" value="${lieu_nais}"
|
||||
data-fv-notempty="true"
|
||||
data-fv-notempty-message="Le lieu de naissance est obligatoire"
|
||||
data-fv-stringlength="true"
|
||||
data-fv-stringlength-max="26"
|
||||
data-fv-stringlength-message="26 caractères maximum" />
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="form-group">
|
||||
<label class="col-xs-4 control-label" for="dept_nais">Département ou pays de naissance</label>
|
||||
<div class="col-xs-8">
|
||||
<select class="form-control" id="dept_nais" name="dept_nais">
|
||||
<tal:block tal:repeat="item dept">
|
||||
<option value="${item.code}" tal:attributes="selected item.code == dept_nais and 'selected' or None">
|
||||
${item.code} - ${item.libelle}</option>
|
||||
</tal:block>
|
||||
</select>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- COORDONNÉES -->
|
||||
<div class="form-group">
|
||||
<label class="col-xs-4 control-label" for="adres1">Adresse</label>
|
||||
<div class="col-xs-8">
|
||||
<input class="form-control" type="text" id="adres1" name="adres1" value="${adres1}" placeholder="Votre adresse"
|
||||
data-fv-notempty="true"
|
||||
data-fv-notempty-message="L'adresse est obligatoire"
|
||||
data-fv-stringlength="true"
|
||||
data-fv-stringlength-max="40"
|
||||
data-fv-stringlength-message="40 caractères maximum" />
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="form-group">
|
||||
<label class="col-xs-4 control-label" for="adres2"></label>
|
||||
<div class="col-xs-8">
|
||||
<input class="form-control" type="text" id="adres2" name="adres2" value="${adres2}" placeholder="(facultatif)"
|
||||
data-fv-stringlength="true"
|
||||
data-fv-stringlength-max="40"
|
||||
data-fv-stringlength-message="40 caractères maximum" />
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="form-group">
|
||||
<label class="control-label col-xs-4" for="code_postal">Code postal - Ville</label>
|
||||
<div class="col-xs-8">
|
||||
<input class="form-control" type="text" id="code_postal" name="code_postal" value="${code_postal}"
|
||||
placeholder="5 caractères maximum"
|
||||
data-fv-notempty="true"
|
||||
data-fv-notempty-message="Le code postal est obligatoire">
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="col-xs-4 control-label" for="no_tel">Téléphone portable</label>
|
||||
<div class="col-xs-6">
|
||||
<input class="form-control phoneNumber" type="text" id="no_tel" name="no_tel" value="${no_tel}"
|
||||
data-fv-notempty="true"
|
||||
data-fv-notempty-message="Le numéro de téléphone est obligatoire"
|
||||
data-fv-phone="true"
|
||||
data-fv-phone-country="FR"
|
||||
data-fv-phone-message="Le numéro de téléphone n'est pas vailde" />
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="form-group">
|
||||
<label class="col-xs-4 control-label" for="mail">Email</label>
|
||||
<div class="col-xs-8">
|
||||
<input class="form-control" type="text" id="mail" name="mail" value="${mail}"
|
||||
data-fv-notempty="true"
|
||||
data-fv-notempty-message="L'adresse email est obligatoire"
|
||||
data-fv-emailaddress="true"
|
||||
data-fv-emailaddress-message="L'adresse email n'est pas valide" />
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- case a cocher "Acceptation des infos" -->
|
||||
<div class="form-group">
|
||||
<div class="col-xs-offset-3 col-xs-7">
|
||||
<div class="checkbox">
|
||||
<input type="checkbox" name="cb_spam" value="cb_spam" id="cb_spam"
|
||||
tal:attributes="checked cb_spam == 'oui' and 'checked' or None">
|
||||
J'accepte de recevoir des informations et offres commerciales éventuelles liées à la sécurité routière.</input>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="form-group">
|
||||
<div class="col-xs-offset-4 col-xs-8">
|
||||
<button class="btn btn-primary" type="submit" name="form.next1">
|
||||
<span class="glyphicon glyphicon-chevron-right"></span> Suivant</button>
|
||||
</div>
|
||||
</div>
|
||||
</div> <!-- id-tab -->
|
||||
|
||||
|
||||
<div class="tab-pane" id="permis-tab">
|
||||
<br />
|
||||
<div class="form-group">
|
||||
<label class="col-xs-4 control-label" for="no_permis">Numéro NEPH</label>
|
||||
<div class="col-xs-8">
|
||||
<input class="form-control" type="text" id="no_permis" name="no_permis" value="${no_permis}"
|
||||
data-fv-notempty="true"
|
||||
data-fv-notempty-message="Le numéro NEPH est obligatoire"
|
||||
data-fv-stringlength="true"
|
||||
data-fv-stringlength-max="20"
|
||||
data-fv-stringlength-message="20 caractères maximum" />
|
||||
<p class="help-block">
|
||||
Comment trouver mon <a href="/faq_view/2764" target="_blank">numéro NEPH</a> ?</p>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="form-group">
|
||||
<label class="col-xs-4 control-label" for="date_nais">Permis B obtenu le</label>
|
||||
<div class="col-xs-8">
|
||||
<input class="form-control" type="text" id="obtenu_le" name="obtenu_le" value="${obtenu_le}" placeholder="JJ/MM/AAAA"
|
||||
data-fv-notempty="true"
|
||||
data-fv-notempty-message="La date de délivrance du permis B est obligatoire"
|
||||
data-fv-date="true"
|
||||
data-fv-date-format="DD/MM/YYYY"
|
||||
data-fv-date-message="La date de délivrance du permis n'est pas valide (JJ/MM/AAAA)" />
|
||||
<p class="help-block">
|
||||
La date est inscrite au dos de votre permis sur la colonne 10 de la ligne Permis B</p>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="form-group">
|
||||
<label class="col-xs-4 control-label" for="lieu_permis">Lieu d'obtention</label>
|
||||
<div class="col-xs-8">
|
||||
<select class="form-control" id="lieu_permis" name="lieu_permis">
|
||||
<tal:block tal:repeat="item dept">
|
||||
<option value="${item.libelle}" tal:attributes="selected item.libelle == lieu_permis and 'selected' or None">
|
||||
${item.code} - ${item.libelle}</option>
|
||||
</tal:block>
|
||||
</select>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="form-group">
|
||||
<div class="col-xs-offset-4 col-xs-8">
|
||||
<input type="checkbox" name="cb_permisB" id="cb_permisB" checked="checked">
|
||||
J’atteste avoir un permis de conduire français de catégorie B depuis au moins 2 ans au jour de la formation (possibilité de réaliser la formation 1 mois avant ce délai) et je dois l’apporter pour pouvoir suivre la formation.</input>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<div class="col-xs-offset-4 col-xs-8">
|
||||
<input type="checkbox" name="cb_capital" id="cb_capital" checked="checked">
|
||||
Je confirme que le capital points de mon permis de conduire est au moins égal à 1 point.</input>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="form-group">
|
||||
<div class="col-xs-offset-4 col-xs-8">
|
||||
<button class="btn btn-primary" type="submit" name="form.next2">
|
||||
<span class="glyphicon glyphicon-chevron-right"></span> Suivant</button>
|
||||
</div>
|
||||
</div>
|
||||
</div> <!-- permis-tab -->
|
||||
|
||||
<div class="tab-pane" id="resa-tab">
|
||||
<br />
|
||||
<div class="form-group">
|
||||
<label class="col-xs-4 control-label" for="type">Comment avez-vous connu notre site ?</label>
|
||||
<div class="col-xs-8">
|
||||
<select class="form-control" id="origine" name="origine">
|
||||
<tal:block tal:repeat="item origines">
|
||||
<option value="${item.LIBELLE}" tal:attributes="selected item.LIBELLE == origine and 'selected' or None">${item.LIBELLE}</option>
|
||||
</tal:block>
|
||||
</select>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="col-xs-4 control-label">Montant du stage</label>
|
||||
<div class="col-xs-6">
|
||||
<p class="form-control-static text-danger"><b>${layout.to_euro(montant)}</b></p>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<p>
|
||||
IMPORTANT : Au cours de cette formation proposée, vous serez amené à manœuvrer et conduire une motocyclette seul(e) sans moniteur derrière vous, avec les risques et périls liés à la conduite d’un véhicule 2 roues.
|
||||
Aussi, si la moto école est assurée pour elle-même et ses élèves contre les dommages causés aux tiers (responsabilité civile), l'élève lui, lorsqu'il chute en cours de formation ou d'examen, n'est pas assuré pour les dommages corporels subis (car il est responsable de ses propres erreurs Cf art.4 - Loi du 5 juillet 1985). Les protections habituelles (Sécurité Sociale + Mutuelles) peuvent alors s’avérer insuffisantes, notamment en cas d'invalidité. L’élève a la possibilité de souscrire un contrat individuel afin d’accroître sa protection.
|
||||
Voir par exemple <a href=" http://www.kick-off.amv.fr/html/amv_kickoff.asp" target="_blank">le contrat proposé par AMV</a>. En acceptant les conditions générales de ventes, vous reconnaissez avoir reçu toute l’information nécessaire à votre appréciation sur les conditions de formation et d’assurance.
|
||||
</p>
|
||||
<!-- case a cocher "Acceptation des CGI" -->
|
||||
<div class="form-group">
|
||||
<div class="col-xs-offset-1 col-xs-11">
|
||||
<input type="checkbox" name="cb_cgv" id="cb_cgv" class="styled">
|
||||
En cochant cette case, je reconnais avoir lu et accepté les <a href="/faq_view/2765" target="_blank">Conditions Générales de Vente ci-après</a>
|
||||
et je valide mon inscription par mon règlement.
|
||||
</input>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<div class="col-xs-offset-4 col-xs-8">
|
||||
<button class="btn btn-primary" type="submit" name="form.submitted">
|
||||
<span class="glyphicon glyphicon-ok"></span> Enregistrer et régler l'inscription</button>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div> <!-- resa-tab -->
|
||||
</div>
|
||||
<p><br/></p>
|
||||
</form>
|
||||
|
||||
</div>
|
||||
|
||||
<script src="https://code.jquery.com/ui/1.12.1/jquery-ui.js"></script>
|
||||
<script>
|
||||
$(document).ready(function() {
|
||||
// validate the form
|
||||
$('#sinscrire-form').formValidation({
|
||||
framework: 'bootstrap',
|
||||
fields: {
|
||||
cb_cgv: {
|
||||
validators: {
|
||||
notEmpty: {
|
||||
message: 'Veuillez accepter les Conditions Générales de Vente pour continuer.'
|
||||
}
|
||||
}
|
||||
},
|
||||
cb_permisB: {
|
||||
validators: {
|
||||
notEmpty: {
|
||||
message: 'Un permis B valable est requis pour effectuer ce stage.'
|
||||
}
|
||||
}
|
||||
},
|
||||
cb_capital: {
|
||||
validators: {
|
||||
notEmpty: {
|
||||
message: 'Un capital de points est requis pour effectuer ce stage.'
|
||||
}
|
||||
}
|
||||
},
|
||||
}
|
||||
})
|
||||
.find('[name="date_nais"], [name="obtenu_le"]').mask('00/00/0000');
|
||||
|
||||
if ($("#etape").val() == 2) {
|
||||
$('ul.nav li a[href="#permis-tab"]').tab('show');
|
||||
} else {
|
||||
if ($("#etape").val() == 3) {
|
||||
$('ul.nav li a[href="#resa-tab"]').tab('show');
|
||||
} else {
|
||||
if ($("#etape").val() == 4) {
|
||||
$('ul.nav li a[href="#confirm-tab"]').tab('show');
|
||||
}
|
||||
}
|
||||
}
|
||||
$(document).on('click.bs.tab.data-api', '[data-toggle="tab"], [data-toggle="pill"]', function (e) {
|
||||
e.preventDefault()
|
||||
// show next tab on button "next" click
|
||||
$('ul.nav li a[href="' + $(this).attr('href') + '"]').tab('show');
|
||||
})
|
||||
$('#code_postal').autocomplete({
|
||||
source: function (request, response) {
|
||||
$.ajax({
|
||||
url:'/ajax_codepostal',
|
||||
dataType: 'json',
|
||||
data: {
|
||||
recherche: request.term,
|
||||
},
|
||||
success: function (data) {
|
||||
response( data );
|
||||
},
|
||||
});
|
||||
},
|
||||
minLength: 3,
|
||||
});
|
||||
});
|
||||
</script>
|
||||
|
||||
</div>
|
||||
</metal:block>
|
||||
43
monaem/templates/inscriptions/pem_dispo.pt
Normal file
43
monaem/templates/inscriptions/pem_dispo.pt
Normal file
@@ -0,0 +1,43 @@
|
||||
<metal:block use-macro="main_template">
|
||||
<div metal:fill-slot="content">
|
||||
|
||||
<div class="container">
|
||||
<p>
|
||||
Prix : <span class='text-primary'>${layout.to_euro(tarif)}</span><br />
|
||||
${lieu1_label} : <span class='text-primary'>${lieu1}</span><br />
|
||||
<span tal:condition="lieu2">Lieu B : <span class='text-primary'>${lieu2}</span></span>
|
||||
</p>
|
||||
<div id="calendar"></div>
|
||||
<br />
|
||||
<br />
|
||||
</div>
|
||||
|
||||
<script>
|
||||
$(document).ready(function() {
|
||||
var datePlan = '${datePlan}';
|
||||
|
||||
$('#calendar').fullCalendar({
|
||||
locale: 'fr',
|
||||
header: {
|
||||
left: 'agendaWeek month',
|
||||
center: 'prev title next',
|
||||
right: 'today'
|
||||
},
|
||||
allDaySlot: false,
|
||||
defaultView: 'month',
|
||||
defaultDate: moment(datePlan),
|
||||
hiddenDays: [0], // hide sunday
|
||||
height: 'auto',
|
||||
minTime: "08:00:00",
|
||||
maxTime: "18:00:00",
|
||||
timeFormat: 'H:mm',
|
||||
displayEventTime: false,
|
||||
events:${fullcalendar_events},
|
||||
});
|
||||
});
|
||||
</script>
|
||||
|
||||
</div><!-- content -->
|
||||
</metal:block>
|
||||
|
||||
|
||||
146
monaem/templates/layouts/global_layout.pt
Normal file
146
monaem/templates/layouts/global_layout.pt
Normal file
@@ -0,0 +1,146 @@
|
||||
<!DOCTYPE html>
|
||||
<html xmlns="https://www.w3.org/1999/xhtml"
|
||||
xmlns:metal="http://xml.zope.org/namespaces/metal"
|
||||
xmlns:tal="http://xml.zope.org/namespaces/tal"
|
||||
lang="fr">
|
||||
<head>
|
||||
<title>${page_title}</title>
|
||||
<meta charset="utf-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=yes">
|
||||
<meta name="apple-mobile-web-app-capable" content="yes">
|
||||
<meta name="apple-mobile-web-app-status-bar-style" content="black-translucent">
|
||||
<meta name="apple-mobile-web-app-title" content="Marietton">
|
||||
<link rel="apple-touch-icon" href="${request.static_url('monaem:static/favicon.png')}">
|
||||
<meta name="mobile-web-app-capable" content="yes">
|
||||
<link rel="manifest" href="${request.static_url('monaem:static/manifest.json')}">
|
||||
|
||||
<!-- Bootstrap core + Plug-ins CSS -->
|
||||
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css">
|
||||
<link href="//code.jquery.com/ui/1.12.1/themes/base/jquery-ui.css" rel="stylesheet">
|
||||
<link href="${request.static_url('monaem:static/dist/formvalidation/css/formValidation.min.css')}" rel="stylesheet">
|
||||
<link href="//cdnjs.cloudflare.com/ajax/libs/fullcalendar/3.9.0/fullcalendar.min.css" rel="stylesheet">
|
||||
<!-- Custom CSS -->
|
||||
<link href="${request.static_url('monaem:static/css/style.less')}" type="text/css" rel="stylesheet/less">
|
||||
|
||||
<!-- Bootstrap core JavaScript -->
|
||||
<!-- jQuery (necessary for Bootstrap's JavaScript plugins) -->
|
||||
<script src="https://code.jquery.com/jquery-3.2.1.min.js"></script>
|
||||
<script src="//maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js"></script>
|
||||
|
||||
<!-- FormValidation plugin -->
|
||||
<script src="${request.static_url('monaem:static/dist/formvalidation/js/formValidation.min.js')}"></script>
|
||||
<script src="${request.static_url('monaem:static/dist/formvalidation/js/framework/bootstrap.min.js')}"></script>
|
||||
<script src="${request.static_url('monaem:static/dist/formvalidation/js/language/fr_FR.js')}" type="text/javascript" ></script>
|
||||
<!-- Include Mask plugin -->
|
||||
<script src="//cdnjs.cloudflare.com/ajax/libs/jquery.mask/1.14.16/jquery.mask.min.js"></script>
|
||||
|
||||
<!-- Bootstrap Fullcalendar plugin -->
|
||||
<script src="//cdnjs.cloudflare.com/ajax/libs/moment.js/2.15.1/moment.min.js"></script>
|
||||
<script src="//cdnjs.cloudflare.com/ajax/libs/moment.js/2.15.1/locale/fr.js"></script>
|
||||
<script src="//cdnjs.cloudflare.com/ajax/libs/fullcalendar/3.1.0/fullcalendar.min.js"></script>
|
||||
<script src="//cdnjs.cloudflare.com/ajax/libs/fullcalendar/3.3.1/locale/fr.js"></script>
|
||||
|
||||
<!-- Less -->
|
||||
<script src="//cdnjs.cloudflare.com/ajax/libs/less.js/2.5.3/less.min.js" type="text/javascript"></script>
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<!-- HEADER -->
|
||||
<nav id="mainnav" class="navbar navbar-default navbar-fixed-top">
|
||||
<div class="container">
|
||||
<div class="navbar-header">
|
||||
<button type="button" class="navbar-toggle" data-toggle="collapse" data-target="#myNavbar">
|
||||
<span class="icon-bar"></span>
|
||||
<span class="icon-bar"></span>
|
||||
<span class="icon-bar"></span>
|
||||
</button>
|
||||
<a href="${request.application_url}" alt="Accueil">
|
||||
<img src="${request.static_url('monaem:static/img/logo.png')}" class="logo" alt="Mon espace Marietton" /></a>
|
||||
</div>
|
||||
<div class="collapse navbar-collapse" id="myNavbar" tal:condition="not layout.isAnonymous()">
|
||||
<ul class="nav navbar-nav navbar-right">
|
||||
${panel('dropdown_menu_panel')}
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
</nav>
|
||||
|
||||
<br />
|
||||
<br />
|
||||
<br />
|
||||
<div class="container">
|
||||
<h1 tal:condition="page_title">${page_title}</h1>
|
||||
|
||||
<div id="messages"
|
||||
tal:attributes="class request.is_xhr and 'ajax-replace' or None">
|
||||
<div tal:repeat="queue ('', 'info', 'success', 'warning', 'danger')"
|
||||
tal:omit-tag="">
|
||||
<div class="alert alert-${queue or 'info'}"
|
||||
tal:define="messages request.session.pop_flash(queue)"
|
||||
tal:condition="messages"
|
||||
tal:repeat="message messages">
|
||||
<button type="button" class="close" data-dismiss="alert">×</button>
|
||||
${structure:message}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<br />
|
||||
<div metal:define-slot="content" />
|
||||
</div>
|
||||
|
||||
<footer class="footer text-center">
|
||||
<p>© 2016
|
||||
<a href="https://www.marietton.com" title="Contact" target="_blank">
|
||||
Marietton</a> |
|
||||
<a href="https://www.marietton.com/contact.php" title="Contact" target="_blank">
|
||||
Nous contacter</a> |
|
||||
<a href="/faq_view/1" target="_blank">Mentions légales</a>
|
||||
</p>
|
||||
</footer>
|
||||
|
||||
<!-- Global site tag (gtag.js) - Google Analytics -->
|
||||
<script async src="https://www.googletagmanager.com/gtag/js?id=UA-16495937-5"></script>
|
||||
<script>
|
||||
window.dataLayer = window.dataLayer || [];
|
||||
function gtag(){dataLayer.push(arguments);}
|
||||
gtag('js', new Date());
|
||||
|
||||
gtag('config', 'UA-16495937-5');
|
||||
gtag('config', 'AW-942374039');
|
||||
</script>
|
||||
<div tal:condition="request.path.find('pap_cde') > 0">
|
||||
<!-- Event snippet for Permis à points conversion page -->
|
||||
<script>
|
||||
gtag('event', 'conversion', {
|
||||
'send_to': 'AW-942374039/ScOOCIfi3H8Ql_mtwQM',
|
||||
'transaction_id': ''
|
||||
});
|
||||
</script>
|
||||
<!-- Facebook Pixel Code -->
|
||||
<script>
|
||||
!function(f,b,e,v,n,t,s){if(f.fbq)return;n=f.fbq=function(){n.callMethod?
|
||||
n.callMethod.apply(n,arguments):n.queue.push(arguments)};if(!f._fbq)f._fbq=n;
|
||||
n.push=n;n.loaded=!0;n.version='2.0';n.queue=[];t=b.createElement(e);t.async=!0;
|
||||
t.src=v;s=b.getElementsByTagName(e)[0];s.parentNode.insertBefore(t,s)}(window,
|
||||
document,'script','//connect.facebook.net/en_US/fbevents.js');
|
||||
|
||||
fbq('init', '882636555157751');
|
||||
fbq('track', "PageView");
|
||||
fbq('track', 'ViewContent');
|
||||
</script>
|
||||
<noscript>
|
||||
<img height="1" width="1" style="display:none" src="https://www.facebook.com/tr?id=882636555157751&ev=PageView&noscript=1" />
|
||||
</noscript>
|
||||
<!-- Twitter universal website tag code -->
|
||||
<script>
|
||||
!function(e,t,n,s,u,a){e.twq||(s=e.twq=function(){s.exe?s.exe.apply(s,arguments):s.queue.push(arguments);
|
||||
},s.version='1.1',s.queue=[],u=t.createElement(n),u.async=!0,u.src='//static.ads-twitter.com/uwt.js',
|
||||
a=t.getElementsByTagName(n)[0],a.parentNode.insertBefore(u,a))}(window,document,'script');
|
||||
// Insert Twitter Pixel ID and Standard Event data below
|
||||
twq('init','nw95q');
|
||||
twq('track','PageView');
|
||||
</script>
|
||||
</div>
|
||||
|
||||
</body>
|
||||
</html>
|
||||
20
monaem/templates/panels/dropdown_menu_panel.pt
Normal file
20
monaem/templates/panels/dropdown_menu_panel.pt
Normal file
@@ -0,0 +1,20 @@
|
||||
<li class="dropdown" tal:condition="logged_in">
|
||||
<a href="#" class="dropdown-toggle" data-toggle="dropdown">${logged_in_name}<b class="caret"></b></a>
|
||||
|
||||
<ul class="dropdown-menu">
|
||||
<li class="dropdown-header">
|
||||
Code élève : ${logged_in}<br />
|
||||
Catégorie : ${logged_in_permis}<br />
|
||||
${logged_in_email}
|
||||
</li>
|
||||
|
||||
<li class="divider"></li>
|
||||
<li><a href="${request.application_url}/changer_mot_de_passe"><span class="glyphicon glyphicon-send"></span> Changer mon mot de passe</a></li>
|
||||
<li><a href="${request.application_url}/changer_coordonnees"><span class="glyphicon glyphicon-envelope"></span> Changer mes coordonnées</a></li>
|
||||
<li><a href="${request.application_url}/agence"><span class="glyphicon glyphicon-map-marker"></span> Mon agence</a></li>
|
||||
<li tal:condition="layout.isAdmin()">
|
||||
<a href="${request.application_url}/member_search"><span class="glyphicon glyphicon-search"></span> Rechercher élève</a>
|
||||
</li>
|
||||
<li><a href="${request.application_url}/logout"><span class="glyphicon glyphicon-off"></span> Se déconnecter</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
79
monaem/templates/reglement/crediter.pt
Normal file
79
monaem/templates/reglement/crediter.pt
Normal file
@@ -0,0 +1,79 @@
|
||||
<metal:block use-macro="main_template">
|
||||
<div metal:fill-slot="content">
|
||||
|
||||
<div class="row col-md-7">
|
||||
<h3>1 - Sélectionner une quantité</h3>
|
||||
<form id="crediter-form" action="${url}" method="post"
|
||||
class="form-horizontal"
|
||||
data-fv-framework="bootstrap"
|
||||
data-fv-icon-valid="glyphicon glyphicon-ok"
|
||||
data-fv-icon-invalid="glyphicon glyphicon-remove"
|
||||
data-fv-icon-validating="glyphicon glyphicon-refresh">
|
||||
|
||||
<table class="table table-striped table-bordered">
|
||||
<tr>
|
||||
<th>Désignation</th>
|
||||
<th>Prix TTC</th>
|
||||
<th>Quantité</th>
|
||||
</tr>
|
||||
<tr tal:repeat="item items">
|
||||
<td tal:content="item.LIB" />
|
||||
<td align="right">
|
||||
<span tal:content="layout.to_euro(item.PUTTC)" />
|
||||
</td>
|
||||
<td>
|
||||
<select class="form-control" id="${item.REF}" name="${item.REF}">
|
||||
<tal:block tal:repeat="i [x for x in range(0,9)]">
|
||||
<option tal:condition="str(i)==qtes[repeat.item.index]" selected>${i}</option>
|
||||
<option tal:condition="str(i)!=qtes[repeat.item.index]">${i}</option>
|
||||
</tal:block>
|
||||
</select>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
<div class="form-group">
|
||||
<button class="btn btn-primary" type="submit" name="form.submitted">
|
||||
<span class="glyphicon glyphicon-refresh"></span> Calculer le montant total</button>
|
||||
</div>
|
||||
|
||||
<!-- lire le total calculer -->
|
||||
<div tal:condition="mttotal">
|
||||
<h3>2 - Régler</h3>
|
||||
<h4>Montant total à régler : <b><span class="text-danger">${layout.to_euro(mttotal)}</span></b></h4>
|
||||
<!-- case a cocher "Accepter CGV" -->
|
||||
<div class="form-group">
|
||||
<div class="checkbox">
|
||||
<input type="checkbox" name="cb_cgv" id="cb_binaire" class="styled" />
|
||||
<label for="cb_binaire">En cochant cette case, je reconnais avoir lu et accepté les <a href="http://www.marietton.com/files/CGV-Marietton.pdf">Conditions Générales de Vente</a>.</label>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="form-group">
|
||||
<button class="btn btn-primary" type="submit" name="regler.submitted">
|
||||
<span class="glyphicon glyphicon-euro"></span> Régler</button>
|
||||
<img src="${request.static_url('monaem:static/img/CB.gif')}" alt="CB logo" title="CB logo" />
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
|
||||
<script>
|
||||
$(document).ready(function() {
|
||||
$('#crediter-form').formValidation({
|
||||
fields: {
|
||||
cb_cgv: {
|
||||
validators: {
|
||||
notEmpty: {
|
||||
message: 'Veuillez accepter les Conditions Générales de Vente pour continuer.'
|
||||
}
|
||||
}
|
||||
},
|
||||
}
|
||||
});
|
||||
});
|
||||
</script>
|
||||
</div><!-- content -->
|
||||
</metal:block>
|
||||
|
||||
|
||||
153
monaem/templates/reglement/reglement.pt
Normal file
153
monaem/templates/reglement/reglement.pt
Normal file
@@ -0,0 +1,153 @@
|
||||
<metal:block use-macro="main_template">
|
||||
<div metal:fill-slot="content">
|
||||
|
||||
<div><img src="${request.static_url('monaem:static/img/CA-e-transaction.png')}" class="logo Crédit Agricole" alt="logo Crédit Agricole" /></div>
|
||||
<h3>Montant à payer : <span class="text-danger">${layout.to_euro(sum_to_pay)}</span></h3>
|
||||
|
||||
<div class="row">
|
||||
<div id="step1" class="col-md-6">
|
||||
<form id="calculate-reglement-form" action="${url}" method="post">
|
||||
<h4>1. Choisissez le mode de paiement :</h4>
|
||||
<!-- total à payer <= 300 euros ? -->
|
||||
<div class="form-group" tal:condition="sum_to_pay < 300">
|
||||
<div class="radio">
|
||||
<label>
|
||||
<input type="radio" value="1" name="nfois" checked ="checked">Comptant<br />
|
||||
<input type="radio" value="3" name="nfois" disabled>En 3 fois sans frais (à partir de 300 €)
|
||||
</label>
|
||||
</div>
|
||||
</div>
|
||||
<!-- total à payer >= 300 euros ? -->
|
||||
<div class="form-group" tal:condition="sum_to_pay >= 300">
|
||||
<div class="radio">
|
||||
<label>
|
||||
<span tal:condition="nfois == '1'">
|
||||
<input type="radio" value="1" name="nfois" checked="checked"> Comptant <br />
|
||||
</span>
|
||||
<span tal:condition="nfois != '1'">
|
||||
<input type="radio" value="1" name="nfois"> Comptant <br />
|
||||
</span>
|
||||
</label>
|
||||
</div>
|
||||
<div class="radio">
|
||||
<label>
|
||||
<span tal:condition="nfois == '3'">
|
||||
<input type="radio" value="1" name="nfois" checked="checked"> En 3 fois sans frais (à partir de 300 €) <br />
|
||||
</span>
|
||||
<span tal:condition="nfois != '3'">
|
||||
<input type="radio" value="3" name="nfois"> En 3 fois sans frais (à partir de 300 €) <br />
|
||||
</span>
|
||||
</label>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="form-group">
|
||||
<button class="btn btn-primary" type="submit" name="form.submitted">
|
||||
<span class="glyphicon glyphicon-refresh"></span> Calculer
|
||||
</button>
|
||||
<img src="${request.static_url('monaem:static/img/CB.gif')}" alt="CB logo" title="CB logo" />
|
||||
</div>
|
||||
</form>
|
||||
</div><!-- step1 -->
|
||||
</div> <!-- row 1 -->
|
||||
|
||||
<div class="row">
|
||||
<div class="col-md-6" tal:condition="pay_ok">
|
||||
<div tal:condition="nfois == '1'">
|
||||
<p>Vous avez choisi le mode de <strong>paiement comptant</strong>.</p>
|
||||
</div>
|
||||
|
||||
<div tal:condition="nfois == '3'">
|
||||
<p>Vous paierez cette facture <strong>en 3 fois sans frais</strong>.</p>
|
||||
|
||||
<table class="table table-striped table-condensed" tal:condition="schedule_dates and schedule_sums">
|
||||
<tr>
|
||||
<th>Echéances</th>
|
||||
<th>Montant prélevé</th>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>${schedule_dates[0]}</td>
|
||||
<td>${layout.to_euro(schedule_sums[0]/100)}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>${schedule_dates[1]}</td>
|
||||
<td>${layout.to_euro(schedule_sums[1]/100)}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>${schedule_dates[2]}</td>
|
||||
<td>${layout.to_euro(schedule_sums[1]/100)}</td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
</div> <!-- pay_ok -->
|
||||
</div> <!-- row 2 -->
|
||||
|
||||
<div class="row">
|
||||
<div id="step2" class="col-md-8" tal:condition="pbx_total > 0">
|
||||
<h4>2. Réglez :</h4>
|
||||
<p class="text-danger" tal:condition="nfois == '3'">
|
||||
Attention, vous ne pouvez pas régler une facture en 3 fois avec une <b>e-carte bleue à usage unique</b> !
|
||||
</p>
|
||||
|
||||
<!-- appel systeme PAYBOX -->
|
||||
<form action="${url_paybox}" method="POST">
|
||||
<input type="hidden" name="PBX_SITE" value="${pbx_site}" />
|
||||
<input type="hidden" name="PBX_RANG" value="${pbx_rang}" />
|
||||
<input type="hidden" name="PBX_IDENTIFIANT" value="${pbx_identifiant}" />
|
||||
|
||||
<input type="hidden" name="PBX_TOTAL" value="${pbx_total}" />
|
||||
<input type="hidden" name="PBX_DEVISE" value="${pbx_devise}" />
|
||||
<input type="hidden" name="PBX_CMD" value="${pbx_cmd}" />
|
||||
<input type="hidden" name="PBX_PORTEUR" value="${pbx_porteur}" />
|
||||
<input type="hidden" name="PBX_RETOUR" value="${pbx_retour}" />
|
||||
<input type="hidden" name="PBX_DATEVALMAX" value="${pbx_datevalmax}" />
|
||||
<input type="hidden" name="PBX_REPONDRE_A" value="${pbx_repondre_a}" />
|
||||
<input type="hidden" name="PBX_HASH" value="${pbx_hash}" />
|
||||
<input type="hidden" name="PBX_TIME" value="${pbx_time}" />
|
||||
<input type="hidden" name="PBX_HMAC" value="${pbx_hmac}" />
|
||||
|
||||
<div class="form-group">
|
||||
<button class="btn btn-primary" type="submit" id="pay">
|
||||
<span class="glyphicon glyphicon-ok"></span> Procéder au paiement sécurisé
|
||||
</button>
|
||||
</div>
|
||||
</form>
|
||||
|
||||
</div><!-- step2 -->
|
||||
</div> <!-- row 3-->
|
||||
<br />
|
||||
<br />
|
||||
|
||||
<script>
|
||||
$(document).ready(function () {
|
||||
|
||||
$(".select_bill").change(
|
||||
function () {
|
||||
if ($(".select_bill:checked").length) {
|
||||
$('button#calculate').prop('disabled', false);
|
||||
} else {
|
||||
$('button#calculate').prop('disabled', true);
|
||||
}
|
||||
});
|
||||
|
||||
});
|
||||
</script>
|
||||
|
||||
<!-- intégrer les macros Google analytics -->
|
||||
<div tal:condition="ref == 'PAP'">
|
||||
<div metal:use-macro="snippets.macros['pap_stats']"></div>
|
||||
</div>
|
||||
<div tal:condition="ref == 'PEM'">
|
||||
<div metal:use-macro="snippets.macros['pem_stats']"></div>
|
||||
</div>
|
||||
<div tal:condition="ref == 'PAS'">
|
||||
<div metal:use-macro="snippets.macros['pas_stats']"></div>
|
||||
</div>
|
||||
<div tal:condition="ref == 'PRS'">
|
||||
<div metal:use-macro="snippets.macros['prs_stats']"></div>
|
||||
</div>
|
||||
<div tal:condition="ref == 'B96'">
|
||||
<div metal:use-macro="snippets.macros['b96_stats']"></div>
|
||||
</div>
|
||||
</div>
|
||||
</metal:block>
|
||||
22
monaem/templates/reglement/reglement_acc.pt
Normal file
22
monaem/templates/reglement/reglement_acc.pt
Normal file
@@ -0,0 +1,22 @@
|
||||
<metal:block use-macro="main_template">
|
||||
<metal:js metal:fill-slot="additional_scripts">
|
||||
|
||||
</metal:js>
|
||||
<div metal:fill-slot="content">
|
||||
|
||||
<br />
|
||||
<p>
|
||||
<b>Votre paiement a été accepté par notre banque</b>.<br />
|
||||
<br />
|
||||
Votre compte bancaire ou postal sera débité prochainement.<br />
|
||||
Votre compte client sera mis à jour. <br />
|
||||
</p>
|
||||
|
||||
<br />
|
||||
[ <a href="${request.application_url}">Revenir à la page d'accueil</a> ]
|
||||
<br />
|
||||
<br />
|
||||
<br />
|
||||
</div>
|
||||
</metal:block>
|
||||
|
||||
24
monaem/templates/reglement/reglement_ann.pt
Normal file
24
monaem/templates/reglement/reglement_ann.pt
Normal file
@@ -0,0 +1,24 @@
|
||||
<metal:block use-macro="main_template">
|
||||
<metal:js metal:fill-slot="additional_scripts">
|
||||
|
||||
</metal:js>
|
||||
<div metal:fill-slot="content">
|
||||
|
||||
<br />
|
||||
<p>
|
||||
<b>Vous avez interrompu la procédure de paiement</b>.<br />
|
||||
<br />
|
||||
Votre compte bancaire ou postal n'a pas été affecté.<br />
|
||||
Votre compte client reste inchangé.<br />
|
||||
<br />
|
||||
Il vous sera possible de recommencer votre règlement ultérieurement.
|
||||
</p>
|
||||
|
||||
<br />
|
||||
[ <a href="${request.application_url}">Revenir à la page d'accueil</a> ]
|
||||
<br />
|
||||
<br />
|
||||
<br />
|
||||
</div>
|
||||
</metal:block>
|
||||
|
||||
21
monaem/templates/reglement/reglement_ref.pt
Normal file
21
monaem/templates/reglement/reglement_ref.pt
Normal file
@@ -0,0 +1,21 @@
|
||||
<metal:block use-macro="main_template">
|
||||
<metal:js metal:fill-slot="additional_scripts">
|
||||
|
||||
</metal:js>
|
||||
<div metal:fill-slot="content">
|
||||
|
||||
<br />
|
||||
<p>
|
||||
<b>Votre paiement n'a pas été accepté par PAYBOX</b>.
|
||||
<br />
|
||||
Vous pouvez attendre un moment et renouveler votre opération de paiement.
|
||||
</p>
|
||||
|
||||
<br />
|
||||
[ <a href="${request.application_url}">Revenir à la page d'accueil</a> ]
|
||||
<br />
|
||||
<br />
|
||||
<br />
|
||||
</div>
|
||||
</metal:block>
|
||||
|
||||
55
monaem/templates/reservation/carnet_rdv.pt
Normal file
55
monaem/templates/reservation/carnet_rdv.pt
Normal file
@@ -0,0 +1,55 @@
|
||||
<metal:block use-macro="main_template">
|
||||
<div metal:fill-slot="content">
|
||||
|
||||
<div class="alert alert-warning" tal:condition="not items">
|
||||
Vous n'avez pas de rendez-vous en cours.
|
||||
</div>
|
||||
<br />
|
||||
|
||||
<div class="form-group">
|
||||
<a href="${ajoutRDVB}" tal:condition="ajoutRDVB" class="btn btn-primary" role="button">
|
||||
<span class="glyphicon glyphicon-plus"></span> un rendez-vous</a>
|
||||
<a href="${ajoutPlateau}" tal:condition="ajoutPlateau" class="btn btn-primary" role="button">
|
||||
<span class="glyphicon glyphicon-plus"></span> leçon PLATEAU</a>
|
||||
<a href="${ajoutRoute}" tal:condition="ajoutRoute" class="btn btn-primary" role="button">
|
||||
<span class="glyphicon glyphicon-plus"></span> leçon ROUTE</a>
|
||||
<a href="${ajoutTA}" tal:condition="ajoutTA" class="btn btn-warning" role="button">
|
||||
<span class="glyphicon glyphicon-plus"></span> exam BLANC</a>
|
||||
</div>
|
||||
<div tal:condition="items">
|
||||
<table class="table table-striped table-bordered">
|
||||
<tr>
|
||||
<th>Date</th>
|
||||
<th>Heure</th>
|
||||
<th>Durée</th>
|
||||
<th></th>
|
||||
<th>Lieu</th>
|
||||
<th></th>
|
||||
</tr>
|
||||
|
||||
<tr tal:repeat="item items">
|
||||
<td>${item.DATE_CLAIR}</td>
|
||||
<td>${item.HEURE}</td>
|
||||
<td><span class="glyphicon glyphicon-time"></span> ${item.qte}</td>
|
||||
<td tal:condition="item.nompren">${item.CD_MON}<br />${item.nompren.capitalize()}</td>
|
||||
<td tal:condition="not item.nompren">${item.CD_MON}</td>
|
||||
<td tal:condition="item.statut!=3">${item.OBS}</td>
|
||||
<td tal:condition="item.statut==3" class="text-danger">DECOMMANDE MOINS DE 48 HEURES</td>
|
||||
<td tal:condition="item.DATE >= now and (item.planning=='B' or item.planning=='B78') and item.statut!=3">
|
||||
<a href="${request.application_url}/rdvb_del/${item.pla_ligne}" class="btn btn-danger btn-sm" role="button">
|
||||
<span class="glyphicon glyphicon-trash"></span> Annuler le RDV</a>
|
||||
</td>
|
||||
<td tal:condition="item.DATE.date() >= now.date() and item.planning=='A' and item.statut!=3 and item.nompren!='Circuit'">
|
||||
<a href="${request.application_url}/rdva_del/${item.pla_ligne}" class="btn btn-danger btn-sm" role="button">
|
||||
<span class="glyphicon glyphicon-trash"></span> Annuler le RDV</a>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
<p class="text-center text-danger"><i>Toute leçon non décommandée 48h à l'avance sera considérée comme due.</i></p>
|
||||
</div>
|
||||
<br />
|
||||
<br />
|
||||
</div><!-- content -->
|
||||
</metal:block>
|
||||
|
||||
|
||||
77
monaem/templates/reservation/extrait_compte.pt
Normal file
77
monaem/templates/reservation/extrait_compte.pt
Normal file
@@ -0,0 +1,77 @@
|
||||
<metal:block use-macro="main_template">
|
||||
<div metal:fill-slot="content">
|
||||
|
||||
<div class="alert alert-warning" tal:condition="not items">
|
||||
Vous n'avez pas d'en cours.
|
||||
</div>
|
||||
|
||||
<div tal:condition="items">
|
||||
|
||||
<p tal:condition="solde > 0 and confirm_rdv==False">
|
||||
<h3>Solde au <span tal:replace="today" /> : <b><span class="text-danger" tal:content="remain_to_pay" /></b></h3>
|
||||
<a href="${request.application_url}/reglement/CPT/${solde}/1" class="btn btn-primary" role="button">
|
||||
<span class="glyphicon glyphicon-euro"></span> Régler</a>
|
||||
<img src="${request.static_url('monaem:static/img/CB.gif')}" alt="CB logo" title="CB logo" />
|
||||
|
||||
</p>
|
||||
|
||||
<div class="alert alert-warning" tal:condition="not: member_has_email">
|
||||
Veuillez renseigner votre courriel dans la rubrique <a href="/changer_coordonnees">'Changer mes coordonnées'</a> pour accéder au réglement par carte bancaire. Celui-ci est nécessaire à la réception de la confirmation de paiement.
|
||||
</div>
|
||||
|
||||
<table class="table table-striped table-bordered">
|
||||
<tr>
|
||||
<th>Date</th>
|
||||
<th>Désignation</th>
|
||||
<th>Montant à Payer</th>
|
||||
<th>Montant Réglé</th>
|
||||
<th>Mode régl.</th>
|
||||
</tr>
|
||||
|
||||
<tr tal:repeat="item items">
|
||||
<td tal:content="item.DATE.strftime('%d/%m/%Y')"></td>
|
||||
<td tal:content="item.INTITULE"></td>
|
||||
<td align="right" tal:content="layout.to_euroz(item.DEBIT)"> </td>
|
||||
<td align="right" tal:content="layout.to_euroz(item.CREDIT)"> </td>
|
||||
<td tal:content="item.lib4"> </td>
|
||||
</tr>
|
||||
<!-- ligne Prise en chage -->
|
||||
<tr tal:condition="pec_montant">
|
||||
<td> </td>
|
||||
<td>${pec_designation}</td>
|
||||
<td align="right"></td>
|
||||
<td align="right">${layout.to_euroz(pec_montant)}</td>
|
||||
<td> </td>
|
||||
</tr>
|
||||
<!-- ligne Totaux -->
|
||||
<tr>
|
||||
<td> </td>
|
||||
<td align="right"><b>Total</b></td>
|
||||
<td align="right"><b><span tal:content="sum_to_pay" /></b></td>
|
||||
<td align="right"><b><span tal:content="sum_paid" /></b></td>
|
||||
<td> </td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
<p tal:condition="confirm_rdv">
|
||||
<h3>Solde au <span tal:replace="today" /> : <b><span class="text-danger" tal:content="remain_to_pay" /></b></h3>
|
||||
<a tal:condition="solde > 0"
|
||||
href="${request.application_url}/reglement/CPT/${solde}/1" class="btn btn-primary" role="button">
|
||||
<span class="glyphicon glyphicon-euro"></span> Régler</a>
|
||||
<img src="${request.static_url('monaem:static/img/CB.gif')}" alt="CB logo" title="CB logo" />
|
||||
|
||||
<a
|
||||
href="${request.application_url}/carnet_rdv" class="btn btn-primary" role="button">
|
||||
<span class="glyphicon glyphicon-calendar"></span> Prendre un autre rendez-vous</a>
|
||||
<a
|
||||
href="${request.application_url}/carnet_rdv" class="btn btn-default" role="button">
|
||||
<span class="glyphicon glyphicon-list"></span> Retour au carnet de RDV</a>
|
||||
</p>
|
||||
|
||||
|
||||
<br />
|
||||
</div>
|
||||
</div><!-- content -->
|
||||
</metal:block>
|
||||
|
||||
|
||||
53
monaem/templates/reservation/rdva_add.pt
Normal file
53
monaem/templates/reservation/rdva_add.pt
Normal file
@@ -0,0 +1,53 @@
|
||||
<metal:block use-macro="main_template">
|
||||
<div metal:fill-slot="content">
|
||||
|
||||
<div class="alert alert-danger" tal:condition="message" tal:content="message" />
|
||||
|
||||
<div class="row">
|
||||
<form id="rdva_add-form" method="post" class="form-horizontal"
|
||||
data-fv-framework="bootstrap"
|
||||
data-fv-icon-valid="glyphicon glyphicon-ok"
|
||||
data-fv-icon-invalid="glyphicon glyphicon-remove"
|
||||
data-fv-icon-validating="glyphicon glyphicon-refresh">
|
||||
|
||||
<div class="form-group">
|
||||
<label class="col-xs-4 control-label">Horaire du </label>
|
||||
<div class="col-xs-8">
|
||||
<p class="form-control-static">${date_rdv}</p>
|
||||
<p class="text-danger" tal:condition="delaiOK==False">
|
||||
Attention, si vous réservez ce créneau, vous ne pourrez pas l'annuler par la suite à cause du délai de 48h.
|
||||
Par contre, il sera supprimé automatiquement si vous ne le confirmez pas.
|
||||
</p>
|
||||
</div>
|
||||
<label class="col-xs-4 control-label">Durée</label>
|
||||
<div class="col-xs-8">
|
||||
<p class="form-control-static">${duree} h</p>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="col-xs-offset-4 col-xs-8">
|
||||
<p class="text-danger">
|
||||
Cette réservation est valable pendant 15 minutes. Elle ne sera confirmée que si votre compte est entièrement réglé dans ce délai.
|
||||
</p>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<div class="col-xs-offset-4 col-xs-8">
|
||||
<a href="${request.application_url}/carnet_rdv" class="btn btn-default" role="button">
|
||||
<span class="glyphicon glyphicon-chevron-left"></span> Retour</a>
|
||||
<button class="btn btn-primary" type="submit" name="form.submitted">
|
||||
<span class="glyphicon glyphicon-add"></span> Réserver cette leçon</button>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
</div> <!-- row -->
|
||||
<br />
|
||||
<br />
|
||||
|
||||
<script>
|
||||
$(document).ready(function() {
|
||||
$('#rdva_add-form').formValidation();
|
||||
});
|
||||
</script>
|
||||
|
||||
</div>
|
||||
</metal:block>
|
||||
49
monaem/templates/reservation/rdva_del.pt
Normal file
49
monaem/templates/reservation/rdva_del.pt
Normal file
@@ -0,0 +1,49 @@
|
||||
<metal:block use-macro="main_template">
|
||||
<div metal:fill-slot="content">
|
||||
|
||||
<div class="row">
|
||||
<form id="rdva_del-form" method="post" class="form-horizontal"
|
||||
data-fv-framework="bootstrap"
|
||||
data-fv-icon-valid="glyphicon glyphicon-ok"
|
||||
data-fv-icon-invalid="glyphicon glyphicon-remove"
|
||||
data-fv-icon-validating="glyphicon glyphicon-refresh">
|
||||
|
||||
<div class="form-group">
|
||||
<label class="col-xs-4 control-label">Rendez-vous du</label>
|
||||
<div class="col-xs-8">
|
||||
<p class="form-control-static">${item.DATE.strftime('%d-%m-%Y')}</p>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="col-xs-4 control-label">Lieu</label>
|
||||
<div class="col-xs-8">
|
||||
<p class="form-control-static">${item.LIEU}</p>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-xs-offset-4 col-xs-8">
|
||||
<p class="text-danger" tal:condition="delaiOK == False">
|
||||
Conformément à nos CGV, toute heure non décommandée 48h ouvrables à l’avance ne peut être annulée et ne sera pas remboursable. Cependant, si vous confirmez la suppression, nous ferons tout notre possible pour trouver un autre élève qui accepterait ce créneau afin qu’il ne vous soit pas facturé.
|
||||
</p>
|
||||
</div>
|
||||
|
||||
<div class="form-group">
|
||||
<div class="col-xs-offset-4 col-xs-8">
|
||||
<a href="${request.application_url}/carnet_rdv" class="btn btn-default" role="button">
|
||||
<span class="glyphicon glyphicon-chevron-left"></span> Je conserve ma leçon</a>
|
||||
<button class="btn btn-danger" type="submit" name="form.submitted">
|
||||
<span class="glyphicon glyphicon-remove"></span> Je valide la demande d'annulation</button>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
<br />
|
||||
<br />
|
||||
</div> <!-- row -->
|
||||
|
||||
<script>
|
||||
$(document).ready(function() {
|
||||
$('#rdva_del-form').formValidation();
|
||||
});
|
||||
</script>
|
||||
|
||||
</div>
|
||||
</metal:block>
|
||||
56
monaem/templates/reservation/rdva_dispo.pt
Normal file
56
monaem/templates/reservation/rdva_dispo.pt
Normal file
@@ -0,0 +1,56 @@
|
||||
<metal:block use-macro="main_template">
|
||||
<div metal:fill-slot="content">
|
||||
<div class="container">
|
||||
|
||||
<div class="alert alert-warning" tal:condition="message" tal:content="message" />
|
||||
<!-- Pas d'horaires disponibles -->
|
||||
<div tal:condition="nb_events == 0">
|
||||
<p class="text-danger">Aucun horaire disponible en ligne. Veuillez contacter <a href="/agence">votre agence</a> pour plus de disponibilités.</p>
|
||||
</div>
|
||||
<div tal:condition="nb_events">
|
||||
<p><span class="text-danger">${nb_events} horaire(s) disponible(s)</span> en ligne. Pour plus de disponibilités, veuillez contacter <a href="/agence">votre agence</a> .</p>
|
||||
<br />
|
||||
<H4>
|
||||
<span class="label" style="background-color:LightBlue; color:black;">Vos rendez-vous</span>
|
||||
<span class="label" style="background-color:LightGreen; color:black;">Horaire disponible</span>
|
||||
</H4>
|
||||
<div id="calendar"></div>
|
||||
</div>
|
||||
<br />
|
||||
|
||||
</div>
|
||||
|
||||
<br />
|
||||
<br />
|
||||
|
||||
<script>
|
||||
$(document).ready(function() {
|
||||
var datePlan = '${datePlan}';
|
||||
|
||||
$('#calendar').fullCalendar({
|
||||
schedulerLicenseKey: 'GPL-My-Project-Is-Open-Source',
|
||||
locale: 'fr',
|
||||
header: {
|
||||
left: 'agendaWeek month',
|
||||
center: 'prev title next',
|
||||
right: 'today'
|
||||
},
|
||||
allDaySlot: false,
|
||||
defaultView: 'agendaWeek',
|
||||
defaultDate: moment(datePlan),
|
||||
slotDuration: '00:60:00',
|
||||
hiddenDays: [0], // hide sunday
|
||||
height: 'auto',
|
||||
minTime: "06:00:00",
|
||||
maxTime: "21:00:00",
|
||||
timeFormat: 'H:0',
|
||||
displayEventTime: true,
|
||||
events:${fullcalendar_events},
|
||||
});
|
||||
});
|
||||
</script>
|
||||
|
||||
</div><!-- content -->
|
||||
</metal:block>
|
||||
|
||||
|
||||
57
monaem/templates/reservation/rdvb_add.pt
Normal file
57
monaem/templates/reservation/rdvb_add.pt
Normal file
@@ -0,0 +1,57 @@
|
||||
<metal:block use-macro="main_template">
|
||||
<div metal:fill-slot="content">
|
||||
|
||||
<div class="alert alert-danger" tal:condition="message" tal:content="message" />
|
||||
|
||||
<div class="row">
|
||||
<form id="rdvb_add-form" method="post" class="form-horizontal"
|
||||
data-fv-framework="bootstrap"
|
||||
data-fv-icon-valid="glyphicon glyphicon-ok"
|
||||
data-fv-icon-invalid="glyphicon glyphicon-remove"
|
||||
data-fv-icon-validating="glyphicon glyphicon-refresh">
|
||||
|
||||
<div class="form-group">
|
||||
<label class="col-xs-4 control-label">Horaire du </label>
|
||||
<div class="col-xs-8">
|
||||
<p class="form-control-static">${item.DATE.strftime('%d-%m-%Y')} à ${item.NoPlan} h</p>
|
||||
<p class="text-danger" tal:condition="delaiOK==False">
|
||||
Attention, si vous réservez ce créneau, vous ne pourrez pas l'annuler par la suite à cause du délai de 48h.
|
||||
Par contre, il sera supprimé automatiquement si vous ne le confirmez pas.
|
||||
</p>
|
||||
</div>
|
||||
<label class="col-xs-4 control-label">Durée</label>
|
||||
<div class="col-xs-8">
|
||||
<p class="form-control-static">${item.QTE} h</p>
|
||||
</div>
|
||||
<label class="col-xs-4 control-label">Avec moniteur</label>
|
||||
<div class="col-xs-8">
|
||||
<p class="form-control-static">${item.moniteur}</p>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="col-xs-offset-4 col-xs-8">
|
||||
<p class="text-danger">
|
||||
Cette réservation est valable pendant 15 minutes. Elle ne sera confirmée que si votre compte est entièrement réglé dans ce délai.
|
||||
</p>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<div class="col-xs-offset-4 col-xs-8">
|
||||
<a href="${request.application_url}/rdvb_dispo" class="btn btn-default" role="button">
|
||||
<span class="glyphicon glyphicon-chevron-left"></span> Retour</a>
|
||||
<button class="btn btn-primary" type="submit" name="form.submitted">
|
||||
<span class="glyphicon glyphicon-add"></span> Réserver ce RDV</button>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
</div> <!-- row -->
|
||||
<br />
|
||||
<br />
|
||||
|
||||
<script>
|
||||
$(document).ready(function() {
|
||||
$('#rdvb_add-form').formValidation();
|
||||
});
|
||||
</script>
|
||||
|
||||
</div>
|
||||
</metal:block>
|
||||
53
monaem/templates/reservation/rdvb_del.pt
Normal file
53
monaem/templates/reservation/rdvb_del.pt
Normal file
@@ -0,0 +1,53 @@
|
||||
<metal:block use-macro="main_template">
|
||||
<div metal:fill-slot="content">
|
||||
|
||||
<div class="row">
|
||||
<form id="rdvb_del-form" method="post" class="form-horizontal"
|
||||
data-fv-framework="bootstrap"
|
||||
data-fv-icon-valid="glyphicon glyphicon-ok"
|
||||
data-fv-icon-invalid="glyphicon glyphicon-remove"
|
||||
data-fv-icon-validating="glyphicon glyphicon-refresh">
|
||||
|
||||
<div class="form-group">
|
||||
<label class="col-xs-4 control-label">Rendez-vous du </label>
|
||||
<div class="col-xs-8">
|
||||
<p class="form-control-static">${item.DATE.strftime('%d-%m-%Y')} à ${item.NoPlan} h</p>
|
||||
</div>
|
||||
<div tal:condition="item.QTE != ''">
|
||||
<label class="col-xs-4 control-label">Durée</label>
|
||||
<div class="col-xs-8">
|
||||
<p class="form-control-static">${item.QTE}</p>
|
||||
</div>
|
||||
</div>
|
||||
<label class="col-xs-4 control-label">Avec moniteur</label>
|
||||
<div class="col-xs-8">
|
||||
<p class="form-control-static">${item.moniteur}</p>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-xs-offset-4 col-xs-8">
|
||||
<p class="text-danger" tal:condition="delaiOK == False">
|
||||
Conformément à nos CGV, toute heure non décommandée 48h ouvrables à l’avance ne peut être annulée et ne sera pas remboursable. Cependant, si vous confirmez la suppression, nous ferons tout notre possible pour trouver un autre élève qui accepterait ce créneau afin qu’il ne vous soit pas facturé.
|
||||
</p>
|
||||
</div>
|
||||
|
||||
<div class="form-group">
|
||||
<div class="col-xs-offset-4 col-xs-8">
|
||||
<a href="${request.application_url}/carnet_rdv" class="btn btn-default" role="button">
|
||||
<span class="glyphicon glyphicon-chevron-left"></span> Je conserve ma leçon</a>
|
||||
<button class="btn btn-danger" type="submit" name="form.submitted">
|
||||
<span class="glyphicon glyphicon-remove"></span> Je valide la demande d'annulation</button>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
<br />
|
||||
<br />
|
||||
</div> <!-- row -->
|
||||
|
||||
<script>
|
||||
$(document).ready(function() {
|
||||
$('#rdvb_del-form').formValidation();
|
||||
});
|
||||
</script>
|
||||
|
||||
</div>
|
||||
</metal:block>
|
||||
56
monaem/templates/reservation/rdvb_dispo.pt
Normal file
56
monaem/templates/reservation/rdvb_dispo.pt
Normal file
@@ -0,0 +1,56 @@
|
||||
<metal:block use-macro="main_template">
|
||||
<div metal:fill-slot="content">
|
||||
<div class="container">
|
||||
|
||||
<div class="alert alert-warning" tal:condition="message" tal:content="message" />
|
||||
<br />
|
||||
<!-- Pas d'horaires disponibles -->
|
||||
<div tal:condition="nb_events == 0">
|
||||
<p class="text-danger">Aucun horaire disponible en ligne. Veuillez contacter <a href="/agence">votre agence</a> pour plus de disponibilités.</p>
|
||||
</div>
|
||||
<div tal:condition="nb_events">
|
||||
<p class="text-succes">${nb_events} horaire(s) disponible(s) en ligne. Pour plus de disponibilités, veuillez contacter <a href="/agence">votre agence</a> .</p>
|
||||
<H4>
|
||||
<span class="label" style="background-color:LightBlue; color:black;">Vos rendez-vous</span>
|
||||
<span class="label" style="background-color:LightGreen; color:black;">Horaire disponible</span>
|
||||
</H4>
|
||||
<div id="calendar"></div>
|
||||
</div>
|
||||
<br />
|
||||
|
||||
</div>
|
||||
|
||||
<br />
|
||||
<br />
|
||||
|
||||
<script>
|
||||
$(document).ready(function() {
|
||||
var datePlan = '${datePlan}';
|
||||
|
||||
$('#calendar').fullCalendar({
|
||||
schedulerLicenseKey: 'GPL-My-Project-Is-Open-Source',
|
||||
locale: 'fr',
|
||||
header: {
|
||||
left: 'agendaWeek month',
|
||||
center: 'prev title next',
|
||||
right: 'today'
|
||||
},
|
||||
allDaySlot: false,
|
||||
defaultView: 'month',
|
||||
defaultDate: moment(datePlan),
|
||||
slotDuration: '00:60:00',
|
||||
hiddenDays: [0], // hide sunday
|
||||
height: 'auto',
|
||||
minTime: "06:00:00",
|
||||
maxTime: "21:00:00",
|
||||
timeFormat: 'H:',
|
||||
displayEventTime: true,
|
||||
events:${fullcalendar_events},
|
||||
});
|
||||
});
|
||||
</script>
|
||||
|
||||
</div><!-- content -->
|
||||
</metal:block>
|
||||
|
||||
|
||||
Reference in New Issue
Block a user