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,275 @@
<metal:block use-macro="main_template">
<div metal:fill-slot="content">
<div class="alert alert-success" tal:condition="message" tal:content="message" />
<form id="frm-motos_list" action="${url}" method="POST" class="form-horizontal">
<div class="form-group">
<div class="col-xs-5">
<a href="${url_retour}" 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" tal:condition="len(button_title)">
<span class="glyphicon glyphicon-chevron-right"></span>&nbsp;${button_title}</button>
</div>
<div class="col-xs-4">
<select class="form-control" id="cd_mon" name="cd_mon">
<div tal:repeat="item moniteurs">
<option value="${item.CD_MON}" tal:attributes="selected cd_mon == item.CD_MON and 'selected' or None">${item.NOM} - ${item.CD_MON}</option>
</div>
</select>
</div>
<div class="col-xs-3">
<button class="btn btn-primary" type="submit" name="form.circuit">
<span class="glyphicon glyphicon-pencil"></span>&nbsp;Mon. CIRCUIT</button>
</div>
</div>
<div class="form-group">
<div class="col-xs-12">
&nbsp;&nbsp;(Veuillez cocher un ou plusieurs élèves pour mettre à jour leur moniteur ou effectuer un suivi)
</div>
</div>
</form>
<table id="motos_list" class="table table-condensed table-bordered">
<thead>
<tr>
<th></th>
<th>Gr</th>
<th>Nv</th>
<th>Circ</th>
<th>Nom, Prénom</th>
<th>Solde</th>
<th>ETG</th>
<th>Fil.</th>
<th>Comment.</th>
<th>HCB</th>
<th>St</th>
<th></th>
</tr>
</thead>
</table>
<br />
<form id="frm-stageb_list" action="${url}" method="POST" class="form-horizontal">
<div class="form-group" style="margin-left:10px;">
<a class="btn btn-success" tal:condition="stage.VALIDE != 'O'" href="/motos_edit/${type}/${date}/${grp}/0"><span class="glyphicon glyphicon-user"></span>&nbsp;Ajouter éléve</a>
<button class="btn btn-primary" type="button" tal:condition="code == 9 and stage.VALIDE != 'O' " data-toggle="modal" data-target="#editPlanning" name="form.seance"><span class="glyphicon glyphicon-pencil"></span>&nbsp;Modifier planning</button>
<button class="btn btn-primary" type="button" tal:condition="code == 9 and stage.VALIDE != 'O' " data-toggle="modal" data-target="#validatePlanning"><span class="glyphicon glyphicon-check"></span>&nbsp;Valider planning</button>
</div>
</form>
<!--edit stage -->
<div class="modal fade" id="editPlanning" role="dialog" aria-labelledby="confirmCreateLabel" aria-hidden="true">
<div class="modal-dialog modal-lg">
<div class="modal-content ">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal" aria-hidden="true">&times;</button>
<h4 class="modal-title">Planning ${type} du ${date}</h4>
</div>
<div class="modal-body">
<!-- The form is placed inside the body of modal -->
<form id="edit-planning-moto" class="form-horizontal" action="" 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 col-xs-3">Groupe</label>
<div class="col-sm-8 col-md-7">
<select class="form-control" name="GROUPE" id="select-group" disabled>
<tal:block tal:repeat="key [x for x in groupe.keys()]">
<option tal:attributes="selected key==stage.GROUPE and 'selected' or None" value="${key}" >${groupe[key]}</option>
</tal:block>
</select>
</div>
</div>
<div class="form-group" id="form-code">
<label class="col-sm-3 control-label">Libellé </label>
<div class="col-sm-8 col-md-7">
<input type="text" class="form-control"
data-fv-notempty="true"
data-fv-notempty-message="Le libellé est obligatoire"
id="LIBELLE" name="LIBELLE" value="${stage.LIBELLE}" />
<span id="text-error-message" style="font-size:11px;color:#D9534F;"></span>
</div>
</div>
<div class="form-group" id="form-code">
<label class="col-md-3 col-sm-3 control-label" style="margin-top:8px">Total places Plateau : </label>
<div class="col-sm-8 col-md-2" style="margin-top:8px">
<input type="number" class="form-control" id="TOTAL" value="${stage.TOTAL}" name="TOTAL" />
<span id="text-error-message" style="font-size:11px;color:#D9534F;"></span>
</div>
<label class="col-sm-3 col-md-2 control-label" style="margin-top:8px" >Total plateau inscrits</label>
<div class="col-sm-8 col-md-3" style="margin-top:8px">
<input type="number" class="form-control" id="DISPO" value="${stage.TOTAL-stage.DISPO}" name="DISPO" disabled/>
<span id="text-error-message" style="font-size:11px;color:#D9534F;"></span>
</div>
</div>
<div class="form-group" id="form-code">
<label class="col-md-3 col-sm-3 control-label" style="margin-top:8px">Total places Route : </label>
<div class="col-sm-8 col-md-2" style="margin-top:8px">
<input type="number" class="form-control" id="ROUTE" value="${stage.ROUTE}" name="ROUTE" />
<span id="text-error-message" style="font-size:11px;color:#D9534F;"></span>
</div>
<label class="col-sm-3 col-md-2 control-label" style="margin-top:8px" >Total Route inscrits</label>
<div class="col-sm-8 col-md-3" style="margin-top:8px">
<input type="number" class="form-control" id="ROUTE_DISPO" value="${stage.ROUTE-stage.ROUTE_DISPO}" name="ROUTE_DISPO" disabled/>
<span id="text-error-message" style="font-size:11px;color:#D9534F;"></span>
</div>
</div>
<div class="form-group">
<div class="col-xs-8 col-xs-offset-3">
<button type="button" class="btn btn-default" data-dismiss="modal" style="margin-top:8px">Annuler</button>
<button type="button" id="deleteRdv" tal:condition="code == 9" class="btn btn-danger" data-dismiss="modal" data-toggle="modal" data-target="#deletePlanning" style="margin-top:8px">Supprimer</button>
<button type="submit" id="submitRdv" class="btn btn-primary" name="form.updated" style="margin-top:8px">Enregistrer</button>
</div>
</div>
</form>
</div>
</div>
</div>
</div>
<!-- validate -->
<div class="modal fade" tal:condition="code == 9" id="validatePlanning" tabindex="-1" role="dialog" aria-labelledby="modalLabel" aria-hidden="true">
<div class="modal-dialog" role="document">
<form action="" method="post" >
<div class="modal-content">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal" aria-label="Close">
<span aria-hidden="true">&times;</span>
</button>
<h4 class="modal-title" id="modalLabel">Validation</h4>
</div>
<div class="modal-body">
Après la validation, aucune modification ne sera possible.
</div>
<div class="modal-footer">
<button type="submit" class="btn btn-secondary" data-dismiss="modal">Fermer</button>
<button type="submit" class="btn btn-danger" name="form.validated" >Confirmer</button>
</div>
</div>
</form>
</div>
</div>
<!-- modal -->
<div class="modal fade" id="deletePlanning" tal:condition="code == 9" tabindex="-1" role="dialog" aria-labelledby="modalLabel" aria-hidden="true">
<div class="modal-dialog" role="document">
<form action="" method="post" >
<div class="modal-content">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal" aria-label="Close">
<span aria-hidden="true">&times;</span>
</button>
<h4 class="modal-title" id="modalLabel">Suppression</h4>
</div>
<div class="modal-body">
Confirmez-vous la supression de ce planning ?
</div>
<div class="modal-footer">
<button type="submit" class="btn btn-secondary" data-dismiss="modal">Fermer</button>
<button type="submit" class="btn btn-danger" name="form.deleted" >Confirmer</button>
</div>
</div>
</form>
</div>
</div>
<br />
</div><!-- content -->
<div metal:fill-slot="additional_scripts">
<script src="//gyrocode.github.io/jquery-datatables-checkboxes/1.2.11/js/dataTables.checkboxes.min.js"></script>
<script type="text/javascript">
var dataSet = ${dt_data};
$(document).ready(function() {
$.fn.dataTable.moment('DD/MM/YYYY');
var table = $('#motos_list').DataTable({
data: dataSet,
pageLength: 100,
bLengthChange: false,
language: {
url: 'https://cdn.datatables.net/plug-ins/1.10.16/i18n/French.json'
},
columnDefs: [
{ className: "text-center", "targets": [0,1,2,6,10] },
{ className: "text-right", "targets": [5] },
{ 'targets': 0,
'checkboxes': {
'selectRow': true
}
},
{ targets: 4,
"render": function (data, type, full, meta) {
// ajouter un link vers la fiche élève
return '<a href="/fiche_eleve/' + data.substr(0, 6) + '">' + data + '</a>';
},
},
{ targets: 11,
"render": function (data, type, full, meta) {
// ajouter un link vers le formulaire
return '<a href="/motos_edit/${type}/${date}/${grp}/' + full[0] +
'" class="btn btn-primary btn-sm"><span class="glyphicon glyphicon-pencil"></span>' + '</a>';
},
},
],
select: {
'style': 'multi'
},
order: [[1, 'asc']],
createdRow: function( row, data, dataIndex ) {
if ( data[5].slice(-1) == "E" ) {
$('td', row).eq(5).css('background-color', 'Orange');
}
if ( data[9] == "VAL" ) {
$('td', row).eq(9).css('background-color', 'LightGreen');
}
if ( data[10] > "1" ) {
$('td', row).eq(10).css('background-color', 'Crimson').css('color', 'white');
}
},
});
// Handle form submission event
$('#frm-motos_list').on('submit', function(e){
var form = this;
var rows_selected = table.column(0).checkboxes.selected();
// Iterate over all selected checkboxes
$.each(rows_selected, function(index, rowId){
// Create a hidden element
$(form).append(
$('<input>')
.attr('type', 'hidden')
.attr('name', 'id' + index)
.val(rowId)
);
});
});
$('#edit-planning-moto').formValidation({
fields: {
TOTAL: {
validators: {
callback: {
message: 'Total devrait superieur ou egalé à ce qui est inscrit',
callback: function(input) {
var dispo = parseInt(${stage.DISPO})
return dispo <= parseInt(input)
}
}
}
},
ROUTE: {
validators: {
callback: {
message: 'Total route devrait superieur ou egalé à ce qui est inscrit',
callback: function(input) {
var dispo = parseInt(${stage.ROUTE_DISPO})
return dispo <= parseInt(input)
}
}
}
},
}
});
});
</script>
</div>
</metal:block>