initial upload

This commit is contained in:
2023-06-22 10:34:18 +02:00
parent 6df897b44d
commit 5c621cf669
1030 changed files with 355394 additions and 49 deletions

View 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('aem_gestion: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>

View 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>

View File

@@ -0,0 +1,62 @@
<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="user_edit-form" class="form-horizontal" action="${url}" method="post" tal:condition="individu"
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-2" for="cd_uti">Identifiant</label>
<div class="col-xs-2">
<p class="form-control-static">${individu.cd_uti}</p>
</div>
</div>
<div class="form-group">
<label class="control-label col-xs-2" for="intitule">Nom et prénom</label>
<div class="col-xs-5">
<p class="form-control-static">${individu.nom}</p>
</div>
</div>
<div class="form-group">
<label class="control-label col-xs-2" for="agence">Agence par défaut</label>
<div class="col-xs-4">
<select class="form-control" id="agence" name="agence">
<div tal:repeat="item agences">
<option value="${item.CODE}" tal:attributes="selected individu.agence==item.CODE and 'selected' or None">${item.CODE} | ${item.LIBELLE}</option>
</div>
</select>
</div>
</div>
<br />
<div class="form-group">
<div class="col-xs-offset-2 col-xs-10">
<div class="form-group">
<a class="btn btn-default" href="${request.application_url}/">
<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> Enregistrer</button>
</div>
</div>
</div>
</form>
<br />
<br />
</div> <!-- row -->
<script>
$(document).ready(function() {
$('#user_edit-form').formValidation();
$('form input').on('keypress', function(e) {
return e.which !== 13;
});
});
</script>
</div>
</metal:block>

View File

@@ -0,0 +1,63 @@
<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"
placeholder="45 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"
placeholder="45 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>&nbsp;Enregistrer</button>
</div>
</div>
</form>
<br />
<br />
<br />
</div> <!-- row -->
<script>
$(document).ready(function() {
$('#change-password-form').formValidation();
$('form input').on('keypress', function(e) {
return e.which !== 13;
});
});
</script>
</div>
</metal:block>

View 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>

View File

@@ -0,0 +1,45 @@
<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-3" for="login">Entrez votre code utilisateur</label>
<div class="col-sm-3">
<input class="form-control" type="text" name="login" placeholder="Le code utilisateur à 3 caractères"
data-fv-notempty="true"
data-fv-notempty-message="Le code utilisateur est obligatoire" />
</div>
</div>
<div class="form-group">
<div class="col-sm-offset-3 col-sm-3">
<button class="btn btn-primary" type="submit" name="form.submitted">
<span class="glyphicon glyphicon-send"></span>&nbsp;Envoyer</button>
</div>
</div>
</form>
<p>
Un lien permettant de redéfinir votre mot de passe vous sera transmis à l'adresse email enregistrée dans votre fiche utilisateur.
</p>
</div><!-- row -->
<br />
<br />
<br />
<script>
$(document).ready(function() {
$('#email_pwd-form').formValidation();
$('form input').on('keypress', function(e) {
return e.which !== 13;
});
});
</script>
</div>
</metal:block>

View File

@@ -0,0 +1,211 @@
<metal:block use-macro="main_template">
<div metal:fill-slot="content">
<div class="container-fluid text-center">
<br />
<!-- row 1 -->
<div class="row">
<div class="col-sm-3">
<a href="${request.application_url}/monplanning/codeMon/today">
<span class="glyphicon glyphicon-calendar logo-small"></span><br />
<h4>MON PLANNING</h4></a>
</div>
<div class="col-sm-3">
<a href="${request.application_url}/planningb">
<span class="glyphicon glyphicon-calendar logo-small"></span><br />
<h4>PLANNING AGENCE</h4></a>
</div>
<div class="col-sm-3">
<a href="${request.application_url}/plannings">
<span class="glyphicon glyphicon-calendar logo-small"></span><br />
<h4>LES PLANNINGS</h4></a>
</div>
<div class="col-sm-3">
<a href="${request.application_url}/examens_schd/today/B">
<span class="glyphicon glyphicon-blackboard logo-small"></span><br />
<h4>EXAMENS</h4></a>
</div>
</div>
<!-- row 2 -->
<div class="row">
<div class="col-sm-3">
<a href="${request.application_url}/eleves">
<span class="glyphicon glyphicon-search logo-small"></span>
<h4>RECHERCHE ELEVE</h4></a>
</div>
<div class="col-sm-3">
<a href="${request.application_url}/show_iframe/msgerie">
<span class="glyphicon glyphicon-envelope logo-small"></span>
<h4>MESSAGES <span class="badge">${nlus}</span></h4></a>
</div> <div class="col-sm-3">
<a href="${request.application_url}/show_iframe/smartcode">
<span class="glyphicon glyphicon-warning-sign logo-small"></span>
<h4>SMARTCODE</h4></a>
</div>
</div>
<!-- row 3 -->
<div class="row">
<div class="col-sm-3">
<a href="${request.application_url}/show_iframe/dessin">
<span class="glyphicon glyphicon-picture logo-primary"></span>
<h4>DESSIN</h4></a>
</div>
<div class="col-sm-3">
<a href="${request.application_url}/show_iframe/infos">
<span class="glyphicon glyphicon-question-sign logo-primary"></span>
<h4>AIDE & INFOS</h4></a>
</div>
<div class="col-sm-3">
<a href="${request.application_url}/show_iframe/pedagogie">
<span class="glyphicon glyphicon-education logo-primary"></span>
<h4>PEDAGOGIE</h4></a>
</div>
<div class="col-sm-3">
<a href="${request.application_url}/show_iframe/pedagoGL">
<span class="glyphicon glyphicon-road logo-primary"></span>
<h4>PEDAGOGIE GL</h4></a>
</div>
</div>
<!-- row 4 -->
<div class="row">
<div class="col-sm-3">
<a href="${request.application_url}/contacts_list">
<span class="glyphicon glyphicon-screenshot logo-success"></span><br />
<h4>CRM</h4></a>
</div>
<div class="col-sm-3" tal:condition="access >= 6 ">
<a href="${request.application_url}/jnl_caisse">
<span class="glyphicon glyphicon-modal-window logo-success"></span><br />
<h4>JNL CAISSE</h4></a>
</div>
<div class="col-sm-3" tal:condition="access >= 6 ">
<a href="${request.application_url}/last_emailing"><span class="glyphicon glyphicon-envelope logo-success"></span></a>
<h4>Rappels RDV et RESA</h4>
</div>
<div class="col-sm-3">
<a href="${request.application_url}/show_iframe/agences">
<span class="glyphicon glyphicon-map-marker logo-success"></span>
<h4>AGENCES</h4></a>
</div>
</div> <!-- row 4 -->
<div class="row">
<!-- Réussites aux examens par agence -->
<h2>Challenge réussite Marietton</h2>
<div class="col-md-6">
<!-- Bar chart année N-2 -->
<div id="barChart_annee_3" style="width: 100%; height: 500px;"></div>
</div>
<div class="col-md-6">
<!-- Bar chart année N-1 -->
<div id="barChart_annee_2" style="width: 100%; height: 500px;"></div>
</div>
</div>
<div class="row">
<div class="col-md-6">
<!-- Bar chart année N -->
<div id="barChart_annee_1" style="width: 100%; height: 500px;"></div>
</div>
<div class="col-md-6">
<div id="barChart_annee" style="width: 100%; height: 500px;"></div>
</div>
</div> <!-- row 5 -->
<div class="row">
<div class="col-md-6">
<br />
<br />
<a href="${request.application_url}/stats_exam1">
<span class="glyphicon glyphicon-stats logo-primary"></span><br />
<h4>HISTORIQUE par AGENCE</h4></a>
</div>
<div class="col-md-6">
<br />
<br />
<a href="${request.application_url}/stats_exam2">
<span class="glyphicon glyphicon-stats logo-primary"></span><br />
<h4>HISTORIQUE par MONITEUR</h4></a>
</div>
</div>
<br />
<br />
<br />
</div>
</div>
<div metal:fill-slot="additional_scripts">
<script type="text/javascript" src="https://www.gstatic.com/charts/loader.js"></script>
<script type="text/javascript">
google.charts.load("current", {packages:['corechart', 'bar']});
google.charts.setOnLoadCallback(drawChart);
var dataSet_annee_3 = ${bar_annee_3};
var dataSet_annee_2 = ${bar_annee_2};
var dataSet_annee_1 = ${bar_annee_1};
var dataSet_annee = ${bar_annee};
function drawChart() {
var data_annee_3 = google.visualization.arrayToDataTable(dataSet_annee_3);
var data_annee_2 = google.visualization.arrayToDataTable(dataSet_annee_2);
var data_annee_1 = google.visualization.arrayToDataTable(dataSet_annee_1);
var data_annee = google.visualization.arrayToDataTable(dataSet_annee);
var options_annee_3 = {
title: '${title_3}',
legend: 'none',
hAxis: {
viewWindow: {
min: 0,
max: 100
},
ticks: [0, 20, 40, 60, 80, 100] // display labels every 20
}
};
var options_annee_2 = {
title: '${title_2}',
legend: 'none',
hAxis: {
viewWindow: {
min: 0,
max: 100
},
ticks: [0, 20, 40, 60, 80, 100] // display labels every 20
}
};
var options_annee_1 = {
title: '${title_1}',
legend: 'none',
hAxis: {
viewWindow: {
min: 0,
max: 100
},
ticks: [0, 20, 40, 60, 80, 100] // display labels every 20
}
};
var options_annee = {
title: '${title}',
legend: 'none',
hAxis: {
viewWindow: {
min: 0,
max: 100
},
ticks: [0, 20, 40, 60, 80, 100] // display labels every 20
}
};
var chart_annee_3 = new google.visualization.BarChart(document.getElementById('barChart_annee_3'));
chart_annee_3.draw(data_annee_3, options_annee_3);
var chart_annee_2 = new google.visualization.BarChart(document.getElementById('barChart_annee_2'));
chart_annee_2.draw(data_annee_2, options_annee_2);
var chart_annee_1 = new google.visualization.BarChart(document.getElementById('barChart_annee_1'));
chart_annee_1.draw(data_annee_1, options_annee_1);
var chart_annee = new google.visualization.BarChart(document.getElementById('barChart_annee'));
chart_annee.draw(data_annee, options_annee);
}
</script>
</div>
</metal:block>

View File

@@ -0,0 +1,124 @@
<metal:block use-macro="main_template">
<div metal:fill-slot="content">
<div tal:condition="message" tal:content="message" class="alert alert-danger" />
<div class="col-md-offset-4 col-md-4 well">
<form id="login-form" role="form" action="${url}" method="post">
<input type="hidden" name="came_from" value="${came_from}"/>
<h3>Se connecter</h3>
<div class="form-group">
<input class="form-control" name="login" id="login" value="${login}" placeholder="Code utilisateur" type="text" />
<span style="font-size:11px;color:#8f0a03" id="error"></span>
</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 hidden" id="form-agence">
<select class="form-control" type="text" id="agence" name="agence" >
</select>
</div>
<div class="form-group">
<button id="submitButton" class="btn btn-primary" disabled="disabled" 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 />
</p>
<p class="text-right">${device}</p>
</form>
</div>
<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 utilisateur est obligatoire'
},
}
},
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();
}
});
$('#login').on('change input',function(e){
if(e.currentTarget.value.trim() != ''){
$.ajax({
url: "${request.application_url}/ajax_login",
type: "POST",
dataType: "json",
data:{
login: e.currentTarget.value.toUpperCase(),
},
success: function(data){
$('#submitButton').attr('disabled','disabled');
if(data.find == true){
$('#error').text('');
$('#agence').html('');
if(data.mobile){
$.each(data.agence,function(i,item){
$('#agence').append(new Option(item.libelle, item.code));
});
$('#form-agence').removeClass('hidden');
}
else{
$('#form-agence').addClass('hidden');
}
$('#submitButton').removeAttr('disabled');
}
else{
$('#login').parent().removeClass('has-success').addClass('has-error');
$('#error').text('Code utilisateur non trouvé');
$('#form-agence').addClass('hidden');
}
},
error: function(errMsg) {
$('#agence').html('');
$('#form-agence').addClass('hidden');
$('#submitButton').attr('disabled','disabled');
$('#error').text('Erreur de la connexion');
}
});
}
else{
$('#error').text('');
}
});
});
</script>
</div>
</metal:block>

View File

@@ -0,0 +1,45 @@
<metal:block use-macro="main_template">
<div metal:fill-slot="content">
<div class="row">
<div class="col-xs-3">
<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"
data-fv-notempty="true"
data-fv-notempty-message="Le mot de passe est obligatoire"
data-fv-stringlength="true"
data-fv-stringlength-min="6"
data-fv-stringlength-message="Le mot de passe doit avoir au moins 6 charactères" />
</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"
data-fv-identical="true"
data-fv-identical-field="new_password1"
data-fv-identical-message="Le mot de passe et sa confirmation ne sont pas identiques" />
</div>
<div class="form-group">
<button class="btn btn-primary" type="submit" name="form.submitted">Valider</button>
</div>
</form>
</div>
</div> <!-- row -->
<script>
$(document).ready(function() {
$('#change-password-form').formValidation();
});
</script>
</div>
</metal:block>