ajout de rdf_view.pt
This commit is contained in:
@@ -180,6 +180,17 @@ def get_rapport_by_no(request,nodossier,date_inter):
|
||||
results = request.dbsession.execute(query, {'societe': societe, 'nochantier': nochantier, 'date_inter': date_inter}).first()
|
||||
return results
|
||||
|
||||
def get_rapport_by_no_id(request,no_id):
|
||||
query = "SELECT * FROM dem_rdf WHERE no_id = :no_id;"
|
||||
results = request.dbsession.execute(query, {'no_id': no_id}).first()
|
||||
return results
|
||||
|
||||
def get_rapport_rdf(request):
|
||||
# les rapports deRDF
|
||||
query = "SELECT * FROM dem_rdf;"
|
||||
results = request.dbsession.execute(query, ).fetchall()
|
||||
return results
|
||||
|
||||
def insert_rapport(request,nodossier,logged_in):
|
||||
societe = nodossier[0:2]
|
||||
nochantier = nodossier[3:]
|
||||
|
||||
@@ -19,8 +19,11 @@ def includeme(config):
|
||||
config.add_route('dossier_selected', '/dossier_selected/{goto}/{date}/{nodossier}')
|
||||
config.add_route('dossier_view', '/dossier_view/{nodossier}')
|
||||
config.add_route('rdf_edit','/rdf_edit/{nodossier}/{date_inter}')
|
||||
config.add_route('rdf_list','/rdf_list')
|
||||
config.add_route('rdf_view','/rdf_view/{no_id}')
|
||||
config.add_route('suivi_edit','/suivi_edit/{nodossier}/{nolig}')
|
||||
config.add_route('upload_doc', '/upload_doc/{nodossier}')
|
||||
config.add_route('upload_img', '/upload_img/{nodossier}')
|
||||
# parametres
|
||||
config.add_route('parametres', '/parametres')
|
||||
config.add_route('connecter_a', '/connecter_a/{login}')
|
||||
|
||||
@@ -14,6 +14,11 @@
|
||||
<span class="glyphicon glyphicon-calendar logo-small"></span><br />
|
||||
<h4>PLANNING</h4></a>
|
||||
</div>
|
||||
<div class="col-sm-3">
|
||||
<a href="${request.application_url}/rdf_list">
|
||||
<span class="glyphicon glyphicon-tint logo-small"></span>
|
||||
<h4>RAPPORTS RDF</h4></a>
|
||||
</div>
|
||||
<div class="col-sm-3">
|
||||
<a href="${request.application_url}/chantier_lookup">
|
||||
<span class="glyphicon glyphicon-search logo-small"></span>
|
||||
|
||||
@@ -182,18 +182,19 @@
|
||||
</p>
|
||||
<table class="table table-bordered table-condensed" tal:condition="rapports">
|
||||
<tr>
|
||||
<th>Date Interv.</th>
|
||||
<th>Date Rapport</th>
|
||||
<th>No rapport</th>
|
||||
<th>Date interv.</th>
|
||||
<th>Date rapport</th>
|
||||
<th>Chantier</th>
|
||||
<th>No sinistre</th>
|
||||
<th>Modif le</th>
|
||||
</tr>
|
||||
<tr tal:repeat="rapport rapports">
|
||||
<td>
|
||||
<a href="/rdf_edit/${nodossier}/${rapport.date_inter.strftime('%Y-%m-%d')}">
|
||||
${rapport.date_inter.strftime('%d-%m-%Y')}</a>
|
||||
<a href="/rdf_view/${rapport.no_id}">${rapport.no_id}</a>
|
||||
</td>
|
||||
<td tal:condition="rapport.date_rapport">${rapport.date_rapport.strftime('%d-%m-%Y')}</td>
|
||||
<td>${rapport.date_inter.strftime('%Y-%m-%d')}</td>
|
||||
<td tal:condition="rapport.date_rapport">${rapport.date_rapport.strftime('%d-%m-%Y')}</td>
|
||||
<td tal:condition="not rapport.date_rapport"></td>
|
||||
<td>${rapport.C_QUALITE} ${rapport.C_NOM}</td>
|
||||
<td>${rapport.NOSIN}</td>
|
||||
|
||||
@@ -54,7 +54,7 @@
|
||||
</label>
|
||||
<label class="radio-inline">
|
||||
<input type="radio" name="statut_proprio" value="Non propriétaire"
|
||||
tal:attributes="checked rapport.statut_proprio=='Non Propriétaire'">Non propriétaire
|
||||
tal:attributes="checked rapport.statut_proprio=='Non propriétaire'">Non propriétaire
|
||||
</label>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
@@ -150,7 +150,7 @@
|
||||
</div>
|
||||
|
||||
<br />
|
||||
<h4 class="text-center">RAPPORT</h4>
|
||||
<h4 class="text-center text-primary">RAPPORT</h4>
|
||||
<div class="form-group">
|
||||
<label class="control-label" for="degats">Constatation des dégâts occasionnés</label>
|
||||
<textarea class="form-control" rows="6" cols="40" id="degats" name="degats"
|
||||
@@ -161,7 +161,7 @@
|
||||
</div>
|
||||
|
||||
<br />
|
||||
<h4 class="text-center">TRAVAUX relatifs à la DETECTION de la fuite</h4>
|
||||
<h4 class="text-center text-primary">TRAVAUX relatifs à la DETECTION de la fuite</h4>
|
||||
<div class="form-group">
|
||||
<label class="control-label" for="detection_fuite">Détection de la fuite : </label>
|
||||
<label class="radio-inline">
|
||||
@@ -199,7 +199,7 @@
|
||||
<div class="form-group">
|
||||
<label class="control-label">Recherche de réseaux : </label>
|
||||
<label class="checkbox-inline"><input type="checkbox" name="rech_magnetique" value="${rapport.rech_magnetique}"
|
||||
tal:attributes="checked rapport.rech_magnetique != 0 and 'checked' or None">Système électro magnétique<>/label>
|
||||
tal:attributes="checked rapport.rech_magnetique != 0 and 'checked' or None">Système électro magnétique</label>
|
||||
<label class="checkbox-inline"><input type="checkbox" name="rech_accoustique" value="${rapport.rech_accoustique}"
|
||||
tal:attributes="checked rapport.rech_accoustique != 0 and 'checked' or None">Système électro accoustique</label>
|
||||
</div>
|
||||
@@ -222,7 +222,7 @@
|
||||
</div>
|
||||
|
||||
<br />
|
||||
<h4 class="text-center">TRAVAUX relatifs à la REPARATION de la fuite</h4>
|
||||
<h4 class="text-center text-primary">TRAVAUX relatifs à la REPARATION de la fuite</h4>
|
||||
<div class="form-group">
|
||||
<label class="control-label" for="visite1ere">La réparation est-elle réalisée dans le cadre de la 1ère visite ? </label>
|
||||
<label class="radio-inline">
|
||||
@@ -282,13 +282,8 @@
|
||||
</div>
|
||||
|
||||
<br />
|
||||
<h4 class="text-center">PHOTOS</h4>
|
||||
<p>
|
||||
<a href="${request.application_url}/upload_doc/${nodossier}" class="btn btn-success" role="button">
|
||||
<span class="glyphicon glyphicon-cloud-upload"></span> Ajouter une photo</a>
|
||||
</p>
|
||||
|
||||
<h4 class="text-center">CONCLUSIONS</h4>
|
||||
<h4 class="text-center text-primary">CONCLUSIONS</h4>
|
||||
<div class="form-group">
|
||||
<label class="control-label" for="conclusions">Conclusions</label>
|
||||
<textarea class="form-control" rows="6" cols="40" id="conclusions" name="conclusions"
|
||||
|
||||
55
mondumas/templates/dossier/rdf_list.pt
Normal file
55
mondumas/templates/dossier/rdf_list.pt
Normal file
@@ -0,0 +1,55 @@
|
||||
<metal:block use-macro="main_template">
|
||||
<div metal:fill-slot="content">
|
||||
|
||||
<p>
|
||||
<a href="${request.application_url}/" class="btn btn-default" role="button">
|
||||
<span class="glyphicon glyphicon-chevron-left"></span> Retour</a>
|
||||
</p>
|
||||
|
||||
<table id="users_list" class="table table-striped table-bordered">
|
||||
<thead>
|
||||
<tr>
|
||||
<th>Dossier</th>
|
||||
<th>Date interv.</th>
|
||||
<th>Date rapport</th>
|
||||
<th>Chantier</th>
|
||||
<th>Client</th>
|
||||
<th>No sinistre</th>
|
||||
<th>Auteur</th>
|
||||
<th>Numéro</th>
|
||||
</tr>
|
||||
</thead>
|
||||
</table>
|
||||
|
||||
<br />
|
||||
<br />
|
||||
|
||||
<script type="text/javascript">
|
||||
var dataSet = ${dt_data};
|
||||
|
||||
$(document).ready(function() {
|
||||
$.fn.dataTable.moment('DD-MM-YYYY');
|
||||
$('#users_list').DataTable({
|
||||
data: dataSet,
|
||||
pageLength: 50,
|
||||
bLengthChange: false,
|
||||
language: {
|
||||
url: 'https://cdn.datatables.net/plug-ins/1.10.16/i18n/French.json'
|
||||
},
|
||||
columnDefs: [
|
||||
{ "targets": 0,
|
||||
"render": function (data, type, row, meta) {
|
||||
// ajouter un link vers le formulaire
|
||||
return '<a href="/rdf_view/' + row[7] + '">' + data + '</a>';
|
||||
},
|
||||
},
|
||||
]
|
||||
});
|
||||
|
||||
});
|
||||
</script>
|
||||
|
||||
</div><!-- content -->
|
||||
</metal:block>
|
||||
|
||||
|
||||
316
mondumas/templates/dossier/rdf_view.pt
Normal file
316
mondumas/templates/dossier/rdf_view.pt
Normal file
@@ -0,0 +1,316 @@
|
||||
<metal:block use-macro="main_template">
|
||||
<div metal:fill-slot="content">
|
||||
<br />
|
||||
<!-- ENTETE -->
|
||||
<div class="row">
|
||||
<h4>ADRESSE d'INTERVENTION</h4>
|
||||
<table class="table table-condensed ">
|
||||
<tr>
|
||||
<td>
|
||||
<p>
|
||||
<h4>${rapport.C_QUALITE} ${rapport.C_NOM}</h4>
|
||||
${rapport.C_ADR}<br />
|
||||
<span tal:condition="rapport.C_ADR2">${rapport.C_ADR2}<br /></span>
|
||||
${rapport.C_CP} ${rapport.C_VILLE}<br />
|
||||
</p>
|
||||
</td>
|
||||
<td>
|
||||
<p>
|
||||
Assureur : <b>${rapport.NOMCLI}</b><br />
|
||||
No Sinistre : ${rapport.NOSIN}
|
||||
<br />
|
||||
Téléphone : ${rapport.C_TEL1}<br />
|
||||
Mobile: ${rapport.C_TELP}<br />
|
||||
</p>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
</div> <!-- row -->
|
||||
|
||||
<div class="row">
|
||||
<form id="rdv_edit-form" action="${url}" 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="rapport">Compte-rendu : </label>
|
||||
<label class="radio-inline">
|
||||
<input type="radio" name="rapport" value="Définitif" disabled="disabled"
|
||||
tal:attributes="checked rapport.rapport=='Définitif'">Définitif
|
||||
</label>
|
||||
<label class="radio-inline">
|
||||
<input type="radio" name="rapport" value="Provisoire" disabled="disabled"
|
||||
tal:attributes="checked rapport.rapport=='Provisoire'">Provisoire
|
||||
</label>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="control-label" for="statut_proprio">Statut : </label>
|
||||
<label class="radio-inline">
|
||||
<input type="radio" name="statut_proprio" value="Propriétaire" disabled="disabled"
|
||||
tal:attributes="checked rapport.statut_proprio=='Propriétaire'">Propriétaire
|
||||
</label>
|
||||
<label class="radio-inline">
|
||||
<input type="radio" name="statut_proprio" value="Non propriétaire" disabled="disabled"
|
||||
tal:attributes="checked rapport.statut_proprio=='Non propriétaire'">Non propriétaire
|
||||
</label>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="control-label" for="comment">Caractéristique du risque sinistré :</label>
|
||||
<br /> ${rapport.caracteristique}
|
||||
</div>
|
||||
|
||||
<br />
|
||||
<h4 class="text-center text-primary">ANALYSE</h4>
|
||||
<div class="form-group">
|
||||
<label class="control-label" for="equipement">Les dommages sont-ils causés par un bien d'équipement ?</label>
|
||||
<br /> ${rapport.equipement}
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="control-label" for="reseau_int">Les dommages sont-ils causés par un réseau intérieur au bâtiment ?</label>
|
||||
<br /> ${rapport.reseau_int}
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="control-label" for="reseau_ext">Les dommages sont-ils causés par un réseau extérieur au bâtiment ?</label>
|
||||
<br /> ${rapport.reseau_ext}
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="control-label" for="anti_retour">Le bien sinistré est-il protégé par un dispositif anti-retour ? </label>
|
||||
<label class="radio-inline">
|
||||
<input type="radio" name="anti_retour" value="NON" disabled="disabled"
|
||||
tal:attributes="checked rapport.anti_retour=='NON'">NON
|
||||
</label>
|
||||
<label class="radio-inline">
|
||||
<input type="radio" name="anti_retour" value="OUI" disabled="disabled"
|
||||
tal:attributes="checked rapport.anti_retour=='OUI'">OUI
|
||||
</label>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="control-label" for="reseau_local">Localisation de ces réseaux intérieurs ou extérieurs</label>
|
||||
<br /> ${rapport.reseau_local}
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="control-label" for="element_clos">Les dommages sont-ils causés par un élément de clos du bâtiment ?</label>
|
||||
<br /> ${rapport.element_clos}
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="control-label" for="element_couvert">Les dommages sont-ils causés par un élément couvert du bâtiment ?</label>
|
||||
<br /> ${rapport.element_couvert}
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="control-label" for="voisin">Les dommages sont-ils causés par un bâtiment voisin ? </label>
|
||||
<label class="radio-inline">
|
||||
<input type="radio" name="voisin" value="NON" disabled="disabled"
|
||||
tal:attributes="checked rapport.voisin=='NON'">NON
|
||||
</label>
|
||||
<label class="radio-inline">
|
||||
<input type="radio" name="voisin" value="OUI" disabled="disabled"
|
||||
tal:attributes="checked rapport.voisin=='OUI'">OUI
|
||||
</label>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="control-label" for="voisin_adresse">Adresse du bâtiment</label>
|
||||
<br /> ${rapport.voisin_adresse}
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="control-label" for="voisin_coordonnees">Coordonnées propriétaire ou syndic</label>
|
||||
<br /> ${rapport.voisin_coordonnees}
|
||||
</div>
|
||||
|
||||
<br />
|
||||
<h4 class="text-center text-primary">RAPPORT</h4>
|
||||
<div class="form-group">
|
||||
<label class="control-label" for="degats">Constatation des dégâts occasionnés :</label>
|
||||
<br /> ${rapport.degats}
|
||||
</div>
|
||||
|
||||
<br />
|
||||
<h4 class="text-center text-primary">TRAVAUX relatifs à la DETECTION de la fuite</h4>
|
||||
<div class="form-group">
|
||||
<label class="control-label" for="detection_fuite">Détection de la fuite : </label>
|
||||
<label class="radio-inline">
|
||||
<input type="radio" name="detection_fuite" value="Destructif" disabled="disabled"
|
||||
tal:attributes="checked rapport.detection_fuite=='Destructif'">Destructif
|
||||
</label>
|
||||
<label class="radio-inline">
|
||||
<input type="radio" name="detection_fuite" value="Non destructif" disabled="disabled"
|
||||
tal:attributes="checked rapport.detection_fuite=='Non destructif'">Non destructif
|
||||
</label>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="control-label">Mesures d'humidité : </label>
|
||||
<label class="checkbox-inline" disabled><input type="checkbox" name="sonde_capa" value="${rapport.sonde_capa}" disabled
|
||||
tal:attributes="checked rapport.sonde_capa != 0 and 'checked' or None">Sonde capacitive</label>
|
||||
<label class="checkbox-inline" disabled><input type="checkbox" name="sonde_cond" value="${rapport.sonde_cond}" disabled
|
||||
tal:attributes="checked rapport.sonde_cond != 0 and 'checked' or None">Sonde à conductivité électrique</label>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="control-label">Test de réseaux : </label>
|
||||
<label class="checkbox-inline" disabled><input type="checkbox" name="test_mano" value="${rapport.test_mano}" disabled
|
||||
tal:attributes="checked rapport.test_mano != 0 and 'checked' or None">Système manométrique</label>
|
||||
<label class="checkbox-inline" disabled><input type="checkbox" name="test_gaz" value="${rapport.test_gaz}" disabled
|
||||
tal:attributes="checked rapport.test_gaz != 0 and 'checked' or None">Gaz traceur</label>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="control-label">Visualisation : </label>
|
||||
<label class="checkbox-inline" disabled><input type="checkbox" name="visu_camera" value="${rapport.visu_camera}" disabled
|
||||
tal:attributes="checked rapport.visu_camera != 0 and 'checked' or None">Caméra infrarouge</label>
|
||||
<label class="checkbox-inline" disabled><input type="checkbox" name="visu_endoscope" value="${rapport.visu_endoscope}" disabled
|
||||
tal:attributes="checked rapport.visu_endoscope != 0 and 'checked' or None">Endoscope à fibre optique</label>
|
||||
<label class="checkbox-inline" disabled><input type="checkbox" name="visu_tele" value="${rapport.visu_tele}" disabled
|
||||
tal:attributes="checked rapport.visu_tele != 0 and 'checked' or None">Endoscope à fibre optique</label>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="control-label">Recherche de réseaux : </label>
|
||||
<label class="checkbox-inline" disabled><input type="checkbox" name="rech_magnetique" value="${rapport.rech_magnetique}" disabled
|
||||
tal:attributes="checked rapport.rech_magnetique != 0 and 'checked' or None">Système électro magnétique</label>
|
||||
<label class="checkbox-inline" disabled><input type="checkbox" name="rech_accoustique" value="${rapport.rech_accoustique}" disabled
|
||||
tal:attributes="checked rapport.rech_accoustique != 0 and 'checked' or None">Système électro accoustique</label>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="control-label">Tests d'étanchéité : </label>
|
||||
<label class="checkbox-inline" disabled><input type="checkbox" name="test_accoustique" value="${rapport.test_accoustique}" disabled
|
||||
tal:attributes="checked rapport.test_accoustique != 0 and 'checked' or None">Ecoute électro accoustique</label>
|
||||
<label class="checkbox-inline" disabled><input type="checkbox" name="test_mise_en_eau" value="${rapport.test_mise_en_eau}" disabled
|
||||
tal:attributes="checked rapport.test_mise_en_eau != 0 and 'checked' or None">Mise en eau</label>
|
||||
<label class="checkbox-inline" disabled><input type="checkbox" name="test_fumigenes" value="${rapport.test_fumigenes}" disabled
|
||||
tal:attributes="checked rapport.test_fumigenes != 0 and 'checked' or None">Fumigènes</label>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="control-label" for="descr_detect">Descriptif de la détection</label>
|
||||
<br /> ${rapport.descr_detect}
|
||||
</div>
|
||||
|
||||
<br />
|
||||
<h4 class="text-center text-primary">TRAVAUX relatifs à la REPARATION de la fuite</h4>
|
||||
<div class="form-group">
|
||||
<label class="control-label" for="visite1ere">La réparation est-elle réalisée dans le cadre de la 1ère visite ? </label>
|
||||
<label class="radio-inline">
|
||||
<input type="radio" name="visite1ere" value="NON" disabled="disabled"
|
||||
tal:attributes="checked rapport.visite1ere=='NON'">NON
|
||||
</label>
|
||||
<label class="radio-inline">
|
||||
<input type="radio" name="visite1ere" value="OUI" disabled="disabled"
|
||||
tal:attributes="checked rapport.visite1ere=='OUI'">OUI
|
||||
</label>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="control-label" for="descr_repar">Descriptif de la solution de réparation</label>
|
||||
<br /> ${rapport.descr_repar}
|
||||
</div>
|
||||
|
||||
<p class="text-center"><b>Constation de situation de blocage</b></p>
|
||||
<div class="form-group">
|
||||
<label class="control-label" for="blocage_acces">Impossibilité d'accès dans le local où la recherche doi être réalisée </label>
|
||||
<label class="radio-inline">
|
||||
<input type="radio" name="blocage_acces" value="NON" disabled="disabled"
|
||||
tal:attributes="checked rapport.blocage_acces=='NON'">NON
|
||||
</label>
|
||||
<label class="radio-inline">
|
||||
<input type="radio" name="blocage_acces" value="OUI" disabled="disabled"
|
||||
tal:attributes="checked rapport.blocage_acces=='OUI'">OUI
|
||||
</label>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="control-label" for="blocage_rdf_differente">Nécessité de faire une recherchede fuite destructive dans le local du responsable différent de la victime </label>
|
||||
<label class="radio-inline">
|
||||
<input type="radio" name="blocage_rdf_differente" value="NON" disabled="disabled"
|
||||
tal:attributes="checked rapport.blocage_rdf_differente=='NON'">NON
|
||||
</label>
|
||||
<label class="radio-inline">
|
||||
<input type="radio" name="blocage_rdf_differente" value="OUI" disabled="disabled"
|
||||
tal:attributes="checked rapport.blocage_rdf_differente=='OUI'">OUI
|
||||
</label>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="control-label" for="blocage_rdf_infructueuse">Recherche de fuite infructueuse </label>
|
||||
<label class="radio-inline">
|
||||
<input type="radio" name="blocage_rdf_infructueuse" value="NON" disabled="disabled"
|
||||
tal:attributes="checked rapport.blocage_rdf_infructueuse=='NON'">NON
|
||||
</label>
|
||||
<label class="radio-inline">
|
||||
<input type="radio" name="blocage_rdf_infructueuse" value="OUI" disabled="disabled"
|
||||
tal:attributes="checked rapport.blocage_rdf_infructueuse=='OUI'">OUI
|
||||
</label>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="control-label" for="blocage_pluralite">Pluralité de locaux sinistrés autre que le local à l'origine de la fuite </label>
|
||||
<label class="radio-inline">
|
||||
<input type="radio" name="blocage_pluralite" value="NON" disabled="disabled"
|
||||
tal:attributes="checked rapport.blocage_pluralite=='NON'">NON
|
||||
</label>
|
||||
<label class="radio-inline">
|
||||
<input type="radio" name="blocage_pluralite" value="OUI" disabled="disabled"
|
||||
tal:attributes="checked rapport.blocage_pluralite=='OUI'">OUI
|
||||
</label>
|
||||
</div>
|
||||
|
||||
<br />
|
||||
<h4 class="text-center text-primary">PHOTOS</h4>
|
||||
<p>
|
||||
<a href="${request.application_url}/upload_img/${nodossier}" class="btn btn-success" role="button">
|
||||
<span class="glyphicon glyphicon-cloud-upload"></span> Ajouter une photo</a>
|
||||
</p>
|
||||
|
||||
<h4 class="text-center text-primary">CONCLUSIONS</h4>
|
||||
<div class="form-group">
|
||||
<br /> ${rapport.conclusions}
|
||||
</div>
|
||||
|
||||
<div class="col-sm-6">
|
||||
<p>
|
||||
Date du rapport : ${rapport.modif_le.strftime('%d-%m-%Y')}<br />
|
||||
Etabli par ${rapport.auteur_nom}
|
||||
</p>
|
||||
</div>
|
||||
<div class="col-sm-6">
|
||||
<label>Signature du client :</label>
|
||||
<div tal:condition="not rapport.signature_svg">
|
||||
<div id="signature"></div>
|
||||
</div>
|
||||
<div tal:condition="rapport.signature_svg">
|
||||
<p>
|
||||
<br />
|
||||
<div id="signature_img"></div>
|
||||
<br/>
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
<br/>
|
||||
<br/>
|
||||
<br/>
|
||||
<br/>
|
||||
<div class="form-group">
|
||||
<div class="form-group">
|
||||
<a class="btn btn-default" href="${request.route_url('dossier_view', nodossier=nodossier)}">
|
||||
<span class="glyphicon glyphicon-arrow-left"></span> Retour Dossier</a>
|
||||
<a class="btn btn-primary" href="/rdf_edit/${nodossier}/${rapport.date_inter.strftime('%Y-%m-%d')}">
|
||||
<span class="glyphicon glyphicon-pencil"></span> Modifier</a>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</form>
|
||||
</div> <!-- row -->
|
||||
<br />
|
||||
<br />
|
||||
<br />
|
||||
<script type="text/javascript">
|
||||
$(document).ready(function() {
|
||||
$sig = $("#signature").jSignature({color:"MidnightBlue","background-color":"LightYellow",width:350,height:150});
|
||||
|
||||
$('#save').click(function() {
|
||||
datapair = $sig.jSignature("getData","svg");
|
||||
$('#signature_svg').val(datapair);
|
||||
});
|
||||
|
||||
$('#clear').click(function() {
|
||||
$sig.jSignature("clear");
|
||||
});
|
||||
//afficher signature
|
||||
var dataString = 'data:' + '${rapport.signature_svg}'
|
||||
$('#signature_img').append("<img class='imported' src='" + dataString + "'></img>"); });
|
||||
</script>
|
||||
|
||||
</div>
|
||||
</metal:block>
|
||||
54
mondumas/templates/dossier/upload_img.pt
Normal file
54
mondumas/templates/dossier/upload_img.pt
Normal file
@@ -0,0 +1,54 @@
|
||||
<metal:block use-macro="main_template">
|
||||
<div metal:fill-slot="content">
|
||||
|
||||
<div class="row">
|
||||
|
||||
<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">
|
||||
|
||||
<div class="form-group">
|
||||
<label for="uploadfile">Veuillez séléctionner un fichier</label>
|
||||
<input id="uploadfile" name="filename" type="file" value="" required />
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<a class="btn btn-default" href="${request.route_url('dossier_view', nodossier=nodossier)}">
|
||||
<span class="glyphicon glyphicon-arrow-left"></span> Retiur au dossier</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>
|
||||
<ul>
|
||||
<li>Seuls les documents au format <b>PDF, 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> <!-- row -->
|
||||
|
||||
<h3>Documents déjà téléchargés dans le dossier</h3>
|
||||
<ul>
|
||||
<div tal:repeat="detail docs_attaches">
|
||||
<li>
|
||||
<span class="glyphicon glyphicon-file" tal:condition="detail.nomfichier[-3:]=='pdf'"></span>
|
||||
<span class="glyphicon glyphicon-picture" tal:condition="detail.nomfichier[-3:]=='jpg'"></span>
|
||||
<a href="${docs_url}${detail.nomrep}/${detail.societe}/${detail.nomfichier}"
|
||||
target="popup"
|
||||
onclick="window.open('${docs_url}${detail.nomrep}/${detail.societe}/${detail.nomfichier},'popup','width=900,height=768'); return false;">
|
||||
${detail.nomfichier}
|
||||
</a>
|
||||
- crée le ${detail.cree_le.strftime('%d-%m-%Y')} par ${detail.usermaj}
|
||||
</li>
|
||||
</div>
|
||||
</ul>
|
||||
|
||||
<script type="text/javascript">
|
||||
$('#uploadButton').on('click', function(){
|
||||
$('i.gly-spin').removeClass('gly-spin');
|
||||
$('i').addClass('gly-spin');
|
||||
});
|
||||
</script>
|
||||
|
||||
</div>
|
||||
</metal:block>
|
||||
@@ -321,6 +321,72 @@ def upload_doc(request):
|
||||
'docs_url': request.static_url(request.registry.settings['mondumas.devfac_url']),
|
||||
}
|
||||
|
||||
@view_config(route_name='upload_img', renderer='../templates/dossier/upload_img.pt', permission='view')
|
||||
def upload_img(request):
|
||||
logged_in = request.authenticated_userid.upper()
|
||||
nodossier = request.matchdict['nodossier']
|
||||
societe = nodossier[0:2]
|
||||
nochantier = nodossier[3:]
|
||||
|
||||
url = request.route_url("upload_img", nodossier=nodossier)
|
||||
message = ""
|
||||
|
||||
dossier = get_dossier_by_no(request, nodossier)
|
||||
if dossier is None:
|
||||
request.session.flash(u"Le dossier no %s est introuvable" % (nodossier), 'danger')
|
||||
return HTTPFound(location=request.route_url("dossier_lookup"))
|
||||
|
||||
# lire tous les documents attachés
|
||||
docs_attaches = get_docs_attaches(request, 'DOCS_ATTACHES', nodossier)
|
||||
|
||||
if 'form.submitted' in request.params:
|
||||
# récupère le fichier lui-même
|
||||
input_file = request.POST['filename'].file
|
||||
# récupère son nom
|
||||
input_name = request.POST['filename'].filename
|
||||
# récupère son extension
|
||||
input_ext = input_name.split('.')[-1]
|
||||
|
||||
# controler l'extension
|
||||
ext_allowed = ['jpeg','jpg','png','pdf']
|
||||
if input_ext.lower() not in ext_allowed :
|
||||
request.session.flash("Le format de ce fichier n'est pas valide. Téléchargement impossible.", 'warning')
|
||||
else:
|
||||
# récupère le nom du fichier et ajouter le no de dossier
|
||||
filename = '%s-DD%s-%s' % (societe, nochantier, request.POST['filename'].filename)
|
||||
|
||||
file_path = os.path.join('%s/%s' % (request.registry.settings['mondumas.devfac_dir'],societe), filename)
|
||||
# We first write to a temporary file to prevent incomplete files
|
||||
temp_file_path = file_path + '~'
|
||||
|
||||
# Finally write the data to a temporary file
|
||||
input_file.seek(0)
|
||||
with open(temp_file_path, 'wb') as output_file:
|
||||
shutil.copyfileobj(input_file, output_file)
|
||||
|
||||
# controler la taille du fichier < 4 Mo
|
||||
filesize = round(os.path.getsize(temp_file_path) / 1024)
|
||||
if filesize > 4096 :
|
||||
os.remove(temp_file_path)
|
||||
request.session.flash("La taille de ce fichier dépasse la limite autorisée. Téléchargement impossible.", 'warning')
|
||||
else:
|
||||
# Now that we know the file has been fully saved to disk move it into place.
|
||||
os.rename(temp_file_path, file_path)
|
||||
|
||||
insert_dossier_attaches(request, nodossier, filename, '%s Ko' % str(filesize), logged_in)
|
||||
request.session.flash('%s : Ce fichier est téléchargé avec succès.' % input_name, 'success')
|
||||
# lire tous les documents attachés
|
||||
docs_attaches = get_docs_attaches(request, 'DOCS_ATTACHES', nodossier)
|
||||
|
||||
return {
|
||||
'page_title': u"Télécharger une photo",
|
||||
'url': url,
|
||||
'nodossier': nodossier,
|
||||
'dossier': dossier,
|
||||
'docs_attaches': docs_attaches,
|
||||
'docs_url': request.static_url(request.registry.settings['mondumas.devfac_url']),
|
||||
}
|
||||
|
||||
@view_config(route_name='rdf_edit', renderer='../templates/dossier/rdf_edit.pt', permission='view')
|
||||
def rdf_edit(request):
|
||||
logged_in = request.authenticated_userid.upper()
|
||||
@@ -423,3 +489,43 @@ def rdf_edit(request):
|
||||
'voisins':voisins,
|
||||
}
|
||||
|
||||
@view_config(route_name='rdf_list', renderer='../templates/dossier/rdf_list.pt', permission='view')
|
||||
def rdf_list(request):
|
||||
# lire les rapports de RDF
|
||||
items = get_rapport_rdf(request)
|
||||
|
||||
# construire la liste
|
||||
liste=[]
|
||||
for item in items:
|
||||
if item.date_rapport :
|
||||
date_rapport = item.date_rapport.strftime('%d-%m-%Y')
|
||||
else:
|
||||
date_rapport = ''
|
||||
|
||||
d = (item.nochantier, item.date_inter.strftime('%d-%m-%Y'), '', '%s %s' % (item.C_QUALITE, item.C_NOM), item.NOMCLI, item.NOSIN,
|
||||
item.auteur_code, item.no_id)
|
||||
liste.append(d)
|
||||
|
||||
return {
|
||||
'page_title': u'Liste des rapports de RDF',
|
||||
'dt_data': json.dumps(liste),
|
||||
}
|
||||
|
||||
@view_config(route_name='rdf_view', renderer='../templates/dossier/rdf_view.pt', permission='view')
|
||||
def rdf_view(request):
|
||||
logged_in = request.authenticated_userid.upper()
|
||||
no_id = request.matchdict['no_id']
|
||||
|
||||
# lire le rapport
|
||||
rapport = get_rapport_by_no_id(request, no_id)
|
||||
url = request.route_url('rdf_view', no_id=no_id)
|
||||
nodossier = 'PL-' + str(rapport.nochantier)
|
||||
|
||||
return {
|
||||
'page_title': "Rapport de RDF : %s du %s" % (nodossier, rapport.date_inter.strftime('%d-%m-%Y')),
|
||||
'url': url,
|
||||
'logged_in': logged_in,
|
||||
'rapport': rapport,
|
||||
'nodossier': nodossier,
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user