Files
2023-06-22 10:34:18 +02:00

533 lines
22 KiB
XML

<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="form-group">
<label class="control-label col-xs-4" for="CIVILITE">Civilité</label>
<div class="col-xs-3">
<select class="form-control CIVILITE" name="CIVILITE" id="CIVILITE">
<option value="M." tal:attributes="selected eleve.CIVILITE == 'M.' and 'selected' or None">M.</option>
<option value="Mme" tal:attributes="selected eleve.CIVILITE == 'Mme' and 'selected' or None">Mme</option>
<option value="Mlle" tal:attributes="selected eleve.CIVILITE == 'Mlle' and 'selected' or None">Mlle</option>
</select>
</div>
</div>
<div class="form-group">
<label class="control-label col-xs-4" for="NOM">Nom</label>
<div class="col-xs-5">
<input class="form-control" type="text" id="NOM" name="NOM" value="${eleve.NOM}"
placeholder="45 caractères maximum"
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="30 caractères maximum" />
</div>
</div>
<div class="form-group">
<label class="control-label col-xs-4" for="PRENOM">Prénom</label>
<div class="col-xs-5">
<input class="form-control" type="text" id="PRENOM" name="PRENOM" value="${eleve.PRENOM}"
placeholder="45 caractères maximum"
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" id="nom_jf_form">
<label class="col-xs-4 control-label">Nom de naissance</label>
<div class="col-xs-5" id="nom_jf_field">
<input class="form-control" type="text" name="NOM_JF"
data-fv-stringlength="true"
data-fv-stringlength-max="30"
data-fv-stringlength-message="30 caractères maximum"
value="${eleve.NOM_JF}" placeholder="Nom de naissance"/>
</div>
</div>
<div class="form-group">
<label class="control-label col-xs-4" for="CODEPOST">Code postal</label>
<div class="col-xs-5">
<input class="form-control" type="text" id="CODEPOST" name="CODEPOST" value="${code_postal}"
placeholder="5 caractères maximum"
data-fv-stringlength="true"
data-fv-notempty="true"
data-fv-notempty-message="Le code postal est obligatoire" />
</div>
</div>
<div class="form-group">
<label class="control-label col-xs-4" for="adresse_no_voie">Numéro d'adresse</label>
<div class="col-xs-3">
<div class="input-group">
<input class="form-control" type="text" id="adresse_no_voie" name="adresse_no_voie" value="${eleve.adresse_no_voie}"
data-fv-stringlength="true"
data-fv-stringlength-max="4"
data-fv-stringlength-message="4 caractères maximum" />
</div>
</div>
<label class="control-label col-xs-2" for="adresse_extension">Extension</label>
<div class="col-xs-3">
<div class="input-group">
<input class="form-control" type="text"
data-fv-stringlength="true"
data-fv-stringlength-max="10"
data-fv-stringlength-message="10 caractères maximum"
id="adresse_extension" name="adresse_extension" value="${eleve.adresse_extension}"
/>
</div>
</div>
</div>
<div class="form-group ">
<label class="control-label col-xs-4" for="adresse_type_voie">Type de voie</label>
<div class="col-xs-3">
<div class="input-group">
<input class="form-control" type="text"
data-fv-stringlength="true"
data-fv-stringlength-max="20"
data-fv-stringlength-message="20 caractères maximum"
id="adresse_type_voie" name="adresse_type_voie" value="${eleve.adresse_type_voie}"
/>
</div>
</div>
<label class="control-label col-xs-2" for="adresse_nom_voie">Nom de voie</label>
<div class="col-xs-3">
<div class="input-group">
<input class="form-control" type="text" id="adresse_nom_voie" name="adresse_nom_voie" value="${eleve.adresse_nom_voie}"
data-fv-stringlength="true"
data-fv-stringlength-max="40"
data-fv-stringlength-message="40 caractères maximum"
data-fv-notempty="true"
data-fv-notempty-message="Nom de voie obligatoire" />
</div>
</div>
</div>
<div class="form-group">
<label class="control-label col-xs-4" for="TEL">Téléphone fixe</label>
<div class="col-xs-3">
<div class="input-group">
<input class="form-control" type="text" id="TEL" name="TEL" value="${eleve.TEL}"
data-fv-phone="true"
data-fv-phone-country="FR"
data-fv-phone-message="Numéro de téléphone non valide" />
<span class="input-group-addon" tal:condition="eleve.TEL">
<a href="tel:${eleve.TEL}"><span class="glyphicon glyphicon-earphone"></span></a></span>
</div>
</div>
<label class="control-label col-xs-2" for="TEL2">mobile</label>
<div class="col-xs-3">
<div class="input-group">
<input class="form-control" type="text" id="TEL2" name="TEL2" value="${eleve.TEL2}"
data-fv-phone="true"
data-fv-phone-country="FR"
data-fv-phone-message="Numéro de téléphone non valide" />
<span class="input-group-addon" tal:condition="eleve.TEL2">
<a href="tel:${eleve.TEL2}"><span class="glyphicon glyphicon-earphone"></span></a></span>
</div>
</div>
</div>
<div class="form-group">
<label class="control-label col-xs-4" for="TEL3">Téléphone père</label>
<div class="col-xs-3">
<div class="input-group">
<input class="form-control" type="text" id="TEL3" name="TEL3" value="${eleve.TEL3}"
data-fv-phone="true"
data-fv-phone-country="FR"
data-fv-phone-message="Numéro de téléphone non valide" />
<span class="input-group-addon" tal:condition="eleve.TEL3">
<a href="tel:${eleve.TEL3}"><span class="glyphicon glyphicon-earphone"></span></a></span>
</div>
</div>
<label class="control-label col-xs-2" for="TEL4">mère</label>
<div class="col-xs-3">
<div class="input-group">
<input class="form-control" type="text" id="TEL4" name="TEL4" value="${eleve.TEL4}"
data-fv-phone="true"
data-fv-phone-country="FR"
data-fv-phone-message="Numéro de téléphone non valide" />
<span class="input-group-addon" tal:condition="eleve.TEL4">
<a href="tel:${eleve.TEL4}"><span class="glyphicon glyphicon-earphone"></span></a></span>
</div>
</div>
</div>
<div class="form-group">
<label class="col-xs-4 control-label">Adresse email élève</label>
<div class="col-xs-6">
<input class="form-control" type="text" name="email"
value="${eleve.email}" placeholder="50 caractères maximum"
data-fv-notempty="true"
data-fv-stringlength="true"
data-fv-stringlength-max="50"
data-fv-stringlength-message="50 caractères maximum"
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="PROFESSION">Profession</label>
<div class="col-xs-6">
<input class="form-control" type="text" name="PROFESSION" id="PROFESSION"
value="${eleve.PROFESSION}" placeholder="20 caractères maximum"
data-fv-notempty="false"
data-fv-stringlength="true"
data-fv-stringlength-max="20"
data-fv-stringlength-message="20 caractères maximum"
data-fv-notempty-message="La profession est obligatoire" />
</div>
</div>
<div class="form-group">
<label class="control-label col-xs-4" for="TYPE_ENTREPRISE">Type élève</label>
<div class="col-xs-3">
<select class="form-control TYPE_ENTREPRISE" name="TYPE_ENTREPRISE" id="TYPE_ENTREPRISE">
<option value="P" tal:attributes="selected eleve.TYPE_ENTREPRISE == 'P' and 'selected' or None">Particulier</option>
<option value="E" tal:attributes="selected eleve.TYPE_ENTREPRISE == 'E' and 'selected' or None">Entreprise</option>
</select>
</div>
</div>
<div class="form-group">
<label class="col-xs-4 control-label" for="NATION">Nationalité</label>
<div class="col-xs-6">
<select class="form-control NATION" name="NATION" >
<option tal:repeat="item nations" value="${item.pays}" tal:attributes="selected eleve.NATION == item.pays or item.pays == 'FRANCE' and 'selected' or None">${item.pays}</option>
</select>
</div>
</div>
<div class="form-group">
<label class="col-xs-4 control-label" for="DATE_NAIS">Date de naissance</label>
<div class="col-xs-6">
<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-6">
<input class="form-control" type="text" id="LIEU_NAIS" name="LIEU_NAIS" value="${eleve.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-6">
<select class="form-control DEPT_NAIS" name="DEPT_NAIS" >
<option tal:repeat="item dept_nais" value="${item.code}" tal:attributes="selected eleve.DEPT_NAIS == item.code and 'selected' or None">${item.code}</option>
</select>
</div>
</div>
<div class="form-group">
<label class="control-label col-xs-4" for="PERMIS_DEMANDE">Permis demandé</label>
<div class="col-xs-3">
<select class="form-control" id="PERMIS_DEMANDE" name="PERMIS_DEMANDE" tal:attributes="disabled not can_change_permis and 'disabled' or None" >
<div tal:repeat="item permis">
<option value="${item.CAT}" tal:attributes="selected eleve.PERMIS_DEMANDE==item.CAT and 'selected' or None">${item.CAT}</option>
</div>
</select>
</div>
</div>
<div class="form-group">
<label class="control-label col-xs-4" for="FORMULE">Formule</label>
<div class="col-xs-3">
<select class="form-control" name="FORMULE" id="FORMULE">
<option value="">---NR---</option>
<div tal:repeat="item formules">
<option value="${item.FORMULE}" tal:attributes="selected eleve.FORMULE == item.FORMULE and 'selected' or None">${item.FORMULE}</option>
</div>
</select>
</div>
</div>
<div class="form-group">
<label class="control-label col-xs-4" for="NePasSpammer"></label>
<div class="col-xs-6">
<input type="checkbox" name="NePasSpammer" value="oui" id="NePasSpammer"
tal:attributes="checked eleve.NePasSpammer == 1 and 'checked' or None">
Ne pas spammer (CNIL)</input>
</div>
</div>
<!--? entreprise infos for student type E -->
<div class="entreprise_infos hidden" id="entreprise_infos" >
<div class="form-group text-center">
<h4 class="text-primary"><b>INFORMATION SUPPLEMENTAIRE</b></h4>
</div>
<div class="form-group">
<label class="control-label col-xs-4" for="NOM_ENTREPRISE">Nom de l'entreprise</label>
<div class="col-xs-6">
<input class="form-control" type="text" id="NOM_ENTREPRISE" name="NOM_ENTREPRISE" value="${eleve.NOM_ENTREPRISE}"
placeholder="45 caractères maximum"
data-fv-notempty="true"
data-fv-notempty-message="Le nom de l'entreprise est obligatoire"
data-fv-stringlength="true"
data-fv-stringlength-max="25"
data-fv-stringlength-message="25 caractères maximum"
/>
</div>
</div>
<div class="form-group">
<label class="control-label col-xs-4" for="no_facture">No facture</label>
<div class="col-xs-6">
<input class="form-control" type="text" id="facture_no" name="facture_no" value="${eleve.facture_no}"
placeholder="45 caractères maximum"
data-fv-stringlength="true"
data-fv-stringlength-max="10"
data-fv-stringlength-message="10 caractères maximum"/>
</div>
</div>
<div class="form-group" >
<label class="control-label col-xs-4" for="encours_societe">Encours autorisé</label>
<div class="col-xs-6">
<input class="form-control" tal:attributes="disabled code != 9 and 'disabled' or None" type="text" id="encours_societe" name="encours_societe" value="${eleve.encours_societe}"
placeholder="45 caractères maximum"
data-fv-stringlength="true"
data-fv-stringlength-max="45"
data-fv-stringlength-message="45 caractères maximum"
data-fv-notempty="true"
data-fv-numeric="true"
data-fv-numeric-thousands-separator=''
data-fv-numeric-decimal-separator='.'
data-fv-numeric-message = "Entrer un montant validé"
data-fv-notempty-message="Encours autorisé est obligatoire"
/>
</div>
</div>
<div class="form-group">
<label class="control-label col-xs-4" for="NePasRelancer">Ne pas relancer si compte < 0</label>
<div class="col-xs-6">
<input type="checkbox" name="NePasRelancer" value="oui" id="NePasRelancer"
tal:attributes="checked eleve.NePasRelancer == 1 and 'checked' or None">
</input>
</div>
</div>
</div>
<div class="form-group">
<div class="col-xs-offset-4 col-xs-5">
<a class="btn btn-default" tal:condition="eleve.CD_CLI != 0" href="${request.application_url}/fiche_eleve/${eleve.CD_CLI}">
<span class="glyphicon glyphicon-chevron-left"></span> Annuler</a>
<a class="btn btn-default" tal:condition="eleve.CD_CLI == 0" href="${request.application_url}/eleves">
<span class="glyphicon glyphicon-chevron-left"></span> Annuler</a>
<button class="btn btn-primary" type="submit" name="form.submitted">
<span class="glyphicon glyphicon-ok"></span>&nbsp;Enregistrer</button>
</div>
</div>
</form>
</div> <!-- row -->
<br />
<br />
<script>
$(document).ready(function() {
const notEmptyValidator = {
validators: {
notEmpty: {
message: 'Entrer le nom de naissance',
enable : true
}
}
};
$("#PERMIS_DEMANDE").change(function (){
$("#FORMULE").empty()
var permis = $(this).find("option:selected").val()
$.ajax({
url:'/ajax_valid_formules',
dataType: 'json',
data: {
permis: permis,
},
success: function (data) {
$('#FORMULE').append($('<option>', {
value: '',
text: '---NR---'
}))
for (var i = 0; i < data.length; i++) {
$('#FORMULE').append($('<option>', {
value: data[i].value,
text: data[i].data
}))
}
},
});
});
function loadDefaultCivility(){
var selVal = $( ".CIVILITE option:selected" ).val();
if(selVal === "Mme"){
fv.formValidation.addField('NOM_JF',notEmptyValidator)
}
else{
fv.formValidation.removeField('NOM_JF').resetField('NOM_JF')
$('#nom_jf_form').removeClass('has-feedback').removeClass('has-success').removeClass('has-error')
$('#nom_jf_field').html("<input class=\"form-control\" type=\"text\" name=\"NOM_JF\"\n" +
"value=\"${eleve.NOM_JF}\" placeholder=\"Nom de naissance\"/>")
}
}
function loadDefaultEntrepriseType(){
// For unique choice
var selVal = $( ".TYPE_ENTREPRISE option:selected" ).val();
if(selVal === "E"){
$('#entreprise_infos').show().removeClass('hidden')
}
else{
$('#entreprise_infos').hide()
}
}
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();
if(age < 18){
$('#representant_infos').show().removeClass('hidden')
}
else{
$('#representant_infos').hide()
}
return true;
}
else{
$('#representant_infos').hide()
return false
}
}
var valDateNaiss = $('#DATE_NAIS').val()
if(valDateNaiss){
compareDate(valDateNaiss);
}
var fv = $('#change-eleve-details-form').formValidation({
fields: {
DATE_NAIS: {
validators: {
callback: {
message: ' ',
callback: function(input) {
return compareDate(input)
}
}
}
},
},
}).data();
loadDefaultCivility();
loadDefaultEntrepriseType();
$("#CIVILITE" ).on('change',function() {
loadDefaultCivility();
});
$("#TYPE_ENTREPRISE").on('change',function() {
loadDefaultEntrepriseType();
});
$('#CODEPOST').autocomplete({
source: function (request, response) {
$.ajax({
url:'/ajax_codepostal',
dataType: 'json',
data: {
recherche: request.term,
},
success: function (data) {
response( data );
},
});
},
minLength: 1,
});
$('#representant_cp').autocomplete({
source: function (request, response) {
$.ajax({
url:'/ajax_codepostal',
dataType: 'json',
data: {
recherche: request.term,
},
success: function (data) {
response( data );
},
});
},
minLength: 1,
});
$('#formule').autocomplete({
source: function (request, response) {
$.ajax({
url:'/ajax_formules',
dataType: 'json',
data: {
recherche: request.term,
},
success: function (data) {
response(data);
},
});
},
minLength: 1,
});
$('#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,
});
$('form input').on('keypress', function(e) {
return e.which !== 13;
});
});
</script>
</div>
</metal:block>