améliorer gestion des photos dans RDF et dossier
This commit is contained in:
@@ -154,7 +154,7 @@ def get_devis_lig_by_no(request,nodossier):
|
|||||||
results = request.dbsession.execute(query, {'societe': societe, 'no_id': no_id}).fetchall()
|
results = request.dbsession.execute(query, {'societe': societe, 'no_id': no_id}).fetchall()
|
||||||
return results
|
return results
|
||||||
|
|
||||||
def get_docs_attaches(request, nodossier, norapport, filename):
|
def get_docs_attaches(request, nodossier, norapport, nosection, filename):
|
||||||
societe = nodossier[0:2]
|
societe = nodossier[0:2]
|
||||||
nochantier = int(nodossier[3:])
|
nochantier = int(nodossier[3:])
|
||||||
|
|
||||||
@@ -167,15 +167,19 @@ def get_docs_attaches(request, nodossier, norapport, filename):
|
|||||||
|
|
||||||
return results
|
return results
|
||||||
|
|
||||||
def get_photos(request, nochantier, norapport):
|
def get_photos(request, nodossier, norapport, nosection):
|
||||||
|
societe = nodossier[0:2]
|
||||||
query = "SELECT * FROM dossier_attaches WHERE nomrep = 'DOCS_ATTACHES' AND societe = 'PL' AND nochantier = :nochantier AND nodossier = :norapport ORDER BY cree_le;"
|
nochantier = int(nodossier[3:])
|
||||||
results = request.dbsession.execute(query, {'nochantier': nochantier, 'norapport': norapport}).fetchall()
|
query = """SELECT * FROM dossier_attaches WHERE nomrep = 'DOCS_ATTACHES' AND societe = societe AND nochantier = :nochantier
|
||||||
|
AND nodossier = :norapport AND nosection = :nosection AND UPPER(RIGHT(nomfichier,3)) <> 'PDF' ORDER BY cree_le;"""
|
||||||
|
results = request.dbsession.execute(query, {'nochantier': nochantier, 'norapport': norapport, 'nosection': nosection}).fetchall()
|
||||||
return results
|
return results
|
||||||
|
|
||||||
def delete_photos(request, nochantier, norapport, nomfic):
|
def delete_photos(request, nodossier, norapport, nosection, nomfic):
|
||||||
query = "DELETE FROM dossier_attaches WHERE nomrep='DOCS_ATTACHES' AND societe='PL' AND nochantier=:nochantier AND nodossier=:norapport AND nomfichier=:nomfic;"
|
societe = nodossier[0:2]
|
||||||
execute_query(request, query, {'nochantier': nochantier, 'norapport': norapport, 'nomfic': nomfic})
|
nochantier = int(nodossier[3:])
|
||||||
|
query = "DELETE FROM dossier_attaches WHERE nomrep='DOCS_ATTACHES' AND societe=:societe AND nochantier=:nochantier AND nodossier=:norapport AND nosection=:nosection AND nomfichier=:nomfic;"
|
||||||
|
execute_query(request, query, {'societe': societe, 'nochantier': nochantier, 'norapport': norapport, 'nosection': nosection, 'nomfic': nomfic})
|
||||||
|
|
||||||
|
|
||||||
def update_dossier(request, nodossier, new_values):
|
def update_dossier(request, nodossier, new_values):
|
||||||
@@ -196,18 +200,18 @@ def update_dossier(request, nodossier, new_values):
|
|||||||
query = "UPDATE dem_devis SET %s WHERE societe=:societe AND no_id=:nochantier" % s
|
query = "UPDATE dem_devis SET %s WHERE societe=:societe AND no_id=:nochantier" % s
|
||||||
execute_query(request, query, new_values)
|
execute_query(request, query, new_values)
|
||||||
|
|
||||||
def insert_dossier_attaches(request, nodossier, norapport, filename, filesize, user):
|
def insert_dossier_attaches(request, nodossier, norapport, nosection, filename, filesize, user):
|
||||||
societe = nodossier[0:2]
|
societe = nodossier[0:2]
|
||||||
nochantier = int(nodossier[3:])
|
nochantier = int(nodossier[3:])
|
||||||
|
|
||||||
# fichier existe ?
|
# fichier existe ?
|
||||||
item = get_docs_attaches(request, nodossier, norapport, filename)
|
item = get_docs_attaches(request, nodossier, norapport, nosection, filename)
|
||||||
if item:
|
if item:
|
||||||
return
|
return
|
||||||
# enregistrer dans la table dossier_attaches
|
# enregistrer dans la table dossier_attaches
|
||||||
query = """INSERT INTO dossier_attaches (nomrep, societe, nochantier, nodossier, nomfichier, taillefichier, cree_le, usermaj)
|
query = """INSERT INTO dossier_attaches (nomrep, societe, nochantier, nodossier, nosection, nomfichier, taillefichier, cree_le, usermaj)
|
||||||
VALUES('DOCS_ATTACHES',:societe,:nochantier,:norapport,:filename,:filesize,NOW(),:user);"""
|
VALUES('DOCS_ATTACHES',:societe,:nochantier,:norapport,:nosection,:filename,:filesize,NOW(),:user);"""
|
||||||
execute_query(request, query, {'societe': societe, 'nochantier': nochantier, 'norapport': norapport, 'filename': filename, 'filesize': filesize, 'user': user})
|
execute_query(request, query, {'societe': societe, 'nochantier': nochantier, 'norapport': norapport, 'nosection': nosection, 'filename': filename, 'filesize': filesize, 'user': user})
|
||||||
|
|
||||||
def get_rapport_by_no(request,nodossier,date_inter):
|
def get_rapport_by_no(request,nodossier,date_inter):
|
||||||
societe = nodossier[0:2]
|
societe = nodossier[0:2]
|
||||||
@@ -307,3 +311,8 @@ def insert_log_nuit(request, proc, msg):
|
|||||||
query = "INSERT INTO t_log_nuit (proc,msg) VALUES (:proc, :msg);"
|
query = "INSERT INTO t_log_nuit (proc,msg) VALUES (:proc, :msg);"
|
||||||
execute_query(request, query, {'proc': proc, 'msg': msg})
|
execute_query(request, query, {'proc': proc, 'msg': msg})
|
||||||
|
|
||||||
|
def get_log_demandes(request, ):
|
||||||
|
# lire le log de nuit
|
||||||
|
query = """SELECT * FROM t_log_nuit WHERE proc = 'GENERER';"""
|
||||||
|
results = request.dbsession.execute(query, )
|
||||||
|
return results.fetchall()
|
||||||
|
|||||||
@@ -16,6 +16,7 @@ def includeme(config):
|
|||||||
config.add_route('init_mdp', '/init_mdp/{user}/{lien}')
|
config.add_route('init_mdp', '/init_mdp/{user}/{lien}')
|
||||||
# dossier
|
# dossier
|
||||||
config.add_route('demandes','/demandes')
|
config.add_route('demandes','/demandes')
|
||||||
|
config.add_route('delete_img','/delete_img/{nodossier}/{norapport}/{nosection}/{nomfic}')
|
||||||
config.add_route('devis_view', '/devis_view/{nodossier}')
|
config.add_route('devis_view', '/devis_view/{nodossier}')
|
||||||
config.add_route('dossier_edit', '/dossier_edit/{nodossier}')
|
config.add_route('dossier_edit', '/dossier_edit/{nodossier}')
|
||||||
config.add_route('dossier_lookup', '/dossier_lookup')
|
config.add_route('dossier_lookup', '/dossier_lookup')
|
||||||
@@ -24,13 +25,12 @@ def includeme(config):
|
|||||||
config.add_route('dossier_view', '/dossier_view/{nodossier}')
|
config.add_route('dossier_view', '/dossier_view/{nodossier}')
|
||||||
config.add_route('rdf_bill','/rdf_bill/{no_id}')
|
config.add_route('rdf_bill','/rdf_bill/{no_id}')
|
||||||
config.add_route('rdf_edit','/rdf_edit/{nodossier}/{date_inter}')
|
config.add_route('rdf_edit','/rdf_edit/{nodossier}/{date_inter}')
|
||||||
config.add_route('rdf_imgdel','/rdf_imgdel/{nochantier}/{norapport}/{nomfic}')
|
|
||||||
config.add_route('rdf_list','/rdf_list')
|
config.add_route('rdf_list','/rdf_list')
|
||||||
config.add_route('rdf_rapport','/rdf_rapport/{no_id}')
|
config.add_route('rdf_rapport','/rdf_rapport/{no_id}')
|
||||||
config.add_route('rdf_view','/rdf_view/{no_id}')
|
config.add_route('rdf_view','/rdf_view/{no_id}')
|
||||||
config.add_route('suivi_edit','/suivi_edit/{nodossier}/{nolig}')
|
config.add_route('suivi_edit','/suivi_edit/{nodossier}/{nolig}')
|
||||||
config.add_route('upload_doc', '/upload_doc/{nodossier}')
|
config.add_route('upload_doc', '/upload_doc/{nodossier}')
|
||||||
config.add_route('upload_img', '/upload_img/{norapport}')
|
config.add_route('upload_img', '/upload_img/{norapport}/{nosection}')
|
||||||
# parametres
|
# parametres
|
||||||
config.add_route('parametres', '/parametres')
|
config.add_route('parametres', '/parametres')
|
||||||
config.add_route('connecter_a', '/connecter_a/{login}')
|
config.add_route('connecter_a', '/connecter_a/{login}')
|
||||||
|
|||||||
@@ -33,6 +33,17 @@
|
|||||||
</form>
|
</form>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
<div class="row">
|
||||||
|
<h2>Derniers traitements effectués</h2>
|
||||||
|
<table class="table table-condensed">
|
||||||
|
<tr tal:repeat="item log_creation">
|
||||||
|
<td>${item.date.strftime('%d %b, %H:%M')}</td>
|
||||||
|
<td>${item.proc}</td>
|
||||||
|
<td>${item.msg}</td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
</div>
|
||||||
|
|
||||||
<br />
|
<br />
|
||||||
|
|
||||||
<br />
|
<br />
|
||||||
|
|||||||
@@ -122,7 +122,7 @@
|
|||||||
<li class="active"><a data-toggle="tab" href="#tab_suivi"><b>SUIVI du DOSSIER</b></a></li>
|
<li class="active"><a data-toggle="tab" href="#tab_suivi"><b>SUIVI du DOSSIER</b></a></li>
|
||||||
<li tal:condition="documents">
|
<li tal:condition="documents">
|
||||||
<a data-toggle="tab" href="#tab_documents"><b>DEVIS - FACTURES</b></a></li>
|
<a data-toggle="tab" href="#tab_documents"><b>DEVIS - FACTURES</b></a></li>
|
||||||
<li tal:condition="docs_attaches">
|
<li>
|
||||||
<a data-toggle="tab" href="#tab_attaches"><b>DOCUMENTS ATTACHES</b></a></li>
|
<a data-toggle="tab" href="#tab_attaches"><b>DOCUMENTS ATTACHES</b></a></li>
|
||||||
<li tal:condition="nodossier.startswith('PL')">
|
<li tal:condition="nodossier.startswith('PL')">
|
||||||
<a data-toggle="tab" href="#tab_rdf"><b>RAPPORTS DE RDF</b></a></li>
|
<a data-toggle="tab" href="#tab_rdf"><b>RAPPORTS DE RDF</b></a></li>
|
||||||
@@ -204,6 +204,8 @@
|
|||||||
<p>
|
<p>
|
||||||
<a href="${request.application_url}/upload_doc/${nodossier}" class="btn btn-success" role="button">
|
<a href="${request.application_url}/upload_doc/${nodossier}" class="btn btn-success" role="button">
|
||||||
<span class="glyphicon glyphicon-cloud-upload"></span> Ajouter un document</a>
|
<span class="glyphicon glyphicon-cloud-upload"></span> Ajouter un document</a>
|
||||||
|
<a href="${request.application_url}/upload_img/${nodossier}/0" class="btn btn-primary" role="button">
|
||||||
|
<span class="glyphicon glyphicon-picture"></span> Gérer les photos</a>
|
||||||
</p>
|
</p>
|
||||||
<table class="table table-bordered table-condensed">
|
<table class="table table-bordered table-condensed">
|
||||||
<tr>
|
<tr>
|
||||||
|
|||||||
@@ -160,6 +160,17 @@
|
|||||||
<label class="control-label" for="degats">Constatation des dégâts occasionnés :</label>
|
<label class="control-label" for="degats">Constatation des dégâts occasionnés :</label>
|
||||||
<br /> ${rapport.degats}
|
<br /> ${rapport.degats}
|
||||||
</div>
|
</div>
|
||||||
|
<div tal:condition="pt_name=='rdf_view'">
|
||||||
|
<p>
|
||||||
|
<a href="${request.application_url}/upload_img/${norapport}/1" class="btn btn-primary" role="button">
|
||||||
|
<span class="glyphicon glyphicon-picture"></span> Gérer les photos 1</a>
|
||||||
|
</p>
|
||||||
|
<br />
|
||||||
|
</div>
|
||||||
|
<p class="new-page" align="center" tal:repeat="detail photos1">
|
||||||
|
<img src="${docs_url}${detail.nomrep}/${detail.societe}/${nochantier}/${norapport}/${detail.nomfichier}"
|
||||||
|
width="660" />
|
||||||
|
</p>
|
||||||
|
|
||||||
<br />
|
<br />
|
||||||
<h4 class="text-center text-primary">TRAVAUX relatifs à la DETECTION de la fuite</h4>
|
<h4 class="text-center text-primary">TRAVAUX relatifs à la DETECTION de la fuite</h4>
|
||||||
@@ -289,15 +300,15 @@
|
|||||||
<br />
|
<br />
|
||||||
<div tal:condition="pt_name=='rdf_view'">
|
<div tal:condition="pt_name=='rdf_view'">
|
||||||
<p>
|
<p>
|
||||||
<a href="${request.application_url}/upload_img/${norapport}" class="btn btn-primary" role="button">
|
<a href="${request.application_url}/upload_img/${norapport}/2" class="btn btn-primary" role="button">
|
||||||
<span class="glyphicon glyphicon-picture"></span> Gérer les photos</a>
|
<span class="glyphicon glyphicon-picture"></span> Gérer les photos 2</a>
|
||||||
</p>
|
</p>
|
||||||
<br />
|
<br />
|
||||||
</div>
|
</div>
|
||||||
<p class="new-page" align="center" tal:repeat="detail photos">
|
<p class="new-page" align="center" tal:repeat="detail photos2">
|
||||||
<img src="${docs_url}${detail.nomrep}/${detail.societe}/${nochantier}/${norapport}/${detail.nomfichier}"
|
<img src="${docs_url}${detail.nomrep}/${detail.societe}/${nochantier}/${norapport}/${detail.nomfichier}"
|
||||||
width="660" />
|
width="660" />
|
||||||
</p>
|
</p>
|
||||||
<br />
|
<br />
|
||||||
<p class="new-page">.</p>
|
<p class="new-page">.</p>
|
||||||
|
|
||||||
|
|||||||
@@ -20,7 +20,7 @@
|
|||||||
<input id="uploadfile" name="filename" type="file" value="" required />
|
<input id="uploadfile" name="filename" type="file" value="" required />
|
||||||
</div>
|
</div>
|
||||||
<div class="form-group">
|
<div class="form-group">
|
||||||
<a class="btn btn-default" href="${request.route_url('rdf_view', no_id=norapport)}">
|
<a class="btn btn-default" href="${url_retour}">
|
||||||
<span class="glyphicon glyphicon-arrow-left"></span> Retour au rapport</a>
|
<span class="glyphicon glyphicon-arrow-left"></span> Retour au rapport</a>
|
||||||
<button id="uploadButton" class="btn btn-primary" type="submit" name="form.submitted">
|
<button id="uploadButton" class="btn btn-primary" type="submit" name="form.submitted">
|
||||||
<i class="glyphicon glyphicon-refresh"></i> Télécharger</button>
|
<i class="glyphicon glyphicon-refresh"></i> Télécharger</button>
|
||||||
@@ -45,9 +45,11 @@
|
|||||||
<form id="upload_doc-form" action="${url}" method="post">
|
<form id="upload_doc-form" action="${url}" method="post">
|
||||||
<ul tal:repeat="detail photos">
|
<ul tal:repeat="detail photos">
|
||||||
<li>
|
<li>
|
||||||
${detail.nomfichier} | ${detail.taillefichier} | <a href="/rdf_imgdel/${nochantier}/${norapport}/${detail.nomfichier}">[Suppimer cet image]</a><br />
|
${detail.nomfichier} | ${detail.taillefichier} | <a href="/delete_img/${nodossier}/${norapport}/${nosection}/${detail.nomfichier}">[Suppimer cet image]</a><br />
|
||||||
<img src="${docs_url}${detail.nomrep}/${detail.societe}/${nochantier}/${norapport}/${detail.nomfichier}"
|
<img tal:condition="norapport=='0'" width="350" align="center"
|
||||||
width="350" align="center" />
|
src="${docs_url}${detail.nomrep}/${detail.societe}/${nochantier}/${detail.nomfichier}" />
|
||||||
|
<img tal:condition="norapport!='0'" width="350" align="center"
|
||||||
|
src="${docs_url}${detail.nomrep}/${detail.societe}/${nochantier}/${norapport}/${detail.nomfichier}" />
|
||||||
</li>
|
</li>
|
||||||
</ul>
|
</ul>
|
||||||
</form>
|
</form>
|
||||||
|
|||||||
@@ -122,7 +122,7 @@ def dossier_view(request):
|
|||||||
# lire toutes les dossiers similaires
|
# lire toutes les dossiers similaires
|
||||||
similaires = get_similaires_byChantier(request, dossier.societe, dossier.C_NOM, dossier.C_ADR, dossier.C_CP, dossier.C_VILLE)
|
similaires = get_similaires_byChantier(request, dossier.societe, dossier.C_NOM, dossier.C_ADR, dossier.C_CP, dossier.C_VILLE)
|
||||||
# lire tous les documents attachés
|
# lire tous les documents attachés
|
||||||
docs_attaches = get_docs_attaches(request, nodossier, 0, '')
|
docs_attaches = get_docs_attaches(request, nodossier, 0, 0, '')
|
||||||
if nodossier.startswith('PL'):
|
if nodossier.startswith('PL'):
|
||||||
# lire rapport de rdf
|
# lire rapport de rdf
|
||||||
rapports = get_rapport_by_no(request, nodossier, '')
|
rapports = get_rapport_by_no(request, nodossier, '')
|
||||||
@@ -205,6 +205,7 @@ def suivi_edit(request):
|
|||||||
if nolig == '0':
|
if nolig == '0':
|
||||||
# nouveau
|
# nouveau
|
||||||
suivi = {}
|
suivi = {}
|
||||||
|
suivi['attached_text'] = ''
|
||||||
suivi['COMMENT'] = ''
|
suivi['COMMENT'] = ''
|
||||||
suivi['USERMAJ'] = logged_in
|
suivi['USERMAJ'] = logged_in
|
||||||
suivi['DATEMAJ'] = datetime.now()
|
suivi['DATEMAJ'] = datetime.now()
|
||||||
@@ -297,7 +298,7 @@ def upload_doc(request):
|
|||||||
return HTTPFound(location=request.route_url("dossier_lookup"))
|
return HTTPFound(location=request.route_url("dossier_lookup"))
|
||||||
|
|
||||||
# lire tous les documents attachés
|
# lire tous les documents attachés
|
||||||
docs_attaches = get_docs_attaches(request, nodossier, 0, '')
|
docs_attaches = get_docs_attaches(request, nodossier, 0, 0, '')
|
||||||
|
|
||||||
if 'form.submitted' in request.params:
|
if 'form.submitted' in request.params:
|
||||||
# récupère le fichier download dans le dossier /tmp
|
# récupère le fichier download dans le dossier /tmp
|
||||||
@@ -311,11 +312,11 @@ def upload_doc(request):
|
|||||||
|
|
||||||
# fabriquer le nom du document
|
# fabriquer le nom du document
|
||||||
filename = '%s-DD%s-%s' % (societe, nochantier, input_name)
|
filename = '%s-DD%s-%s' % (societe, nochantier, input_name)
|
||||||
tempFile2Dossier(request, societe, nochantier, '0', temp_file, filename, logged_in)
|
tempFile2Dossier(request, societe, nochantier, '0', 0, temp_file, filename, logged_in)
|
||||||
|
|
||||||
request.session.flash('%s : Ce fichier est téléchargé avec succès.' % input_name, 'success')
|
request.session.flash('%s : Ce fichier est téléchargé avec succès.' % input_name, 'success')
|
||||||
# lire tous les documents attachés
|
# lire tous les documents attachés
|
||||||
docs_attaches = get_docs_attaches(request, nodossier, 0, '')
|
docs_attaches = get_docs_attaches(request, nodossier, 0, 0, '')
|
||||||
|
|
||||||
return {
|
return {
|
||||||
'page_title': "Télécharger un document",
|
'page_title': "Télécharger un document",
|
||||||
@@ -328,30 +329,40 @@ def upload_doc(request):
|
|||||||
|
|
||||||
@view_config(route_name='upload_img', renderer='../templates/dossier/upload_img.pt', permission='view')
|
@view_config(route_name='upload_img', renderer='../templates/dossier/upload_img.pt', permission='view')
|
||||||
def upload_img(request):
|
def upload_img(request):
|
||||||
def photos_size(photos):
|
# Paramètres d'appel :
|
||||||
# calculer la taille totale des photos
|
# - gérer images d'un dossier : upload_img/nodossier/0
|
||||||
sum_size = 0
|
# - gérer images d'un rapport RDF : upload_img/norapport/nosection
|
||||||
for photo in photos :
|
nosection = request.matchdict['nosection']
|
||||||
# récupère la taille sans ' Ko'
|
# Gérer les photos d'un dossier (nosection=0) ?
|
||||||
sum_size += int(photo.taillefichier[:-3])
|
if nosection == '0':
|
||||||
|
norapport = '0'
|
||||||
return '%s Mo' % round(sum_size / 1024, 1)
|
# oui, lire le dossier
|
||||||
|
nodossier = request.matchdict['norapport']
|
||||||
|
rapport = get_dossier_by_no(request, nodossier)
|
||||||
|
if rapport is None:
|
||||||
|
request.session.flash(u"Le dossier no %s est introuvable" % (norapport), 'danger')
|
||||||
|
return HTTPFound(location=request.route_url("rdf_list"))
|
||||||
|
societe = rapport.societe
|
||||||
|
nochantier = rapport.NO_ID
|
||||||
|
url = request.route_url("upload_img", norapport=nodossier, nosection=nosection)
|
||||||
|
url_retour = request.route_url('dossier_view', nodossier=nodossier)
|
||||||
|
titre = "Gérer les photos du dossier %s/%s" % (nodossier, nosection)
|
||||||
|
else:
|
||||||
|
norapport = request.matchdict['norapport']
|
||||||
|
rapport = get_rapport_by_no_id(request, norapport)
|
||||||
|
if rapport is None:
|
||||||
|
request.session.flash(u"Le rapport no %s est introuvable" % (norapport), 'danger')
|
||||||
|
return HTTPFound(location=request.route_url("rdf_list"))
|
||||||
|
societe = 'PL'
|
||||||
|
nochantier = rapport.nochantier
|
||||||
|
nodossier = '%s-%s' % (societe, nochantier)
|
||||||
|
url = request.route_url("upload_img", norapport=norapport, nosection=nosection)
|
||||||
|
url_retour = request.route_url('rdf_view', no_id=norapport)
|
||||||
|
titre = "Gérer les photos du rapport %s-%s/%s" % (societe, norapport, nosection)
|
||||||
|
|
||||||
logged_in = request.authenticated_userid.upper()
|
logged_in = request.authenticated_userid.upper()
|
||||||
norapport = request.matchdict['norapport']
|
|
||||||
|
|
||||||
url = request.route_url("upload_img", norapport=norapport)
|
|
||||||
message = ""
|
message = ""
|
||||||
|
|
||||||
rapport = get_rapport_by_no_id(request, norapport)
|
|
||||||
if rapport is None:
|
|
||||||
request.session.flash(u"Le rapport no %s est introuvable" % (norapport), 'danger')
|
|
||||||
return HTTPFound(location=request.route_url("rdf_list"))
|
|
||||||
|
|
||||||
societe = rapport.societe
|
|
||||||
nochantier = rapport.nochantier
|
|
||||||
# lire tous les photos attachées
|
|
||||||
photos = get_photos(request, nochantier, norapport)
|
|
||||||
|
|
||||||
if 'form.submitted' in request.params:
|
if 'form.submitted' in request.params:
|
||||||
# récupère le fichier download dans le dossier /tmp
|
# récupère le fichier download dans le dossier /tmp
|
||||||
@@ -364,19 +375,22 @@ def upload_img(request):
|
|||||||
return HTTPFound(location=url)
|
return HTTPFound(location=url)
|
||||||
|
|
||||||
# fabriquer le nom du rapport
|
# fabriquer le nom du rapport
|
||||||
filename = '%s-RDF%s-%s' % (societe, norapport, input_name)
|
filename = '%s-DD%s-%s-%s' % (societe, nochantier, norapport, input_name)
|
||||||
tempFile2Dossier(request, societe, nochantier, norapport, temp_file, filename, logged_in)
|
tempFile2Dossier(request, societe, nochantier, norapport, nosection, temp_file, filename, logged_in)
|
||||||
|
|
||||||
request.session.flash('%s : Ce fichier est téléchargé avec succès.' % input_name, 'success')
|
request.session.flash('%s : Ce fichier est téléchargé avec succès.' % input_name, 'success')
|
||||||
# lire tous les photos attachées
|
|
||||||
photos = get_photos(request, nochantier, norapport)
|
# lire tous les photos attachées
|
||||||
|
photos = get_photos(request, nodossier, norapport, nosection)
|
||||||
|
|
||||||
return {
|
return {
|
||||||
'page_title': "Gérer les photos",
|
'page_title': titre,
|
||||||
'url': url,
|
'url': url,
|
||||||
|
'url_retour': url_retour,
|
||||||
|
'nodossier': nodossier,
|
||||||
'nochantier': nochantier,
|
'nochantier': nochantier,
|
||||||
'norapport': norapport,
|
'norapport': norapport,
|
||||||
'rapport': rapport,
|
'nosection': nosection,
|
||||||
'photos': photos,
|
'photos': photos,
|
||||||
'total_size' : photos_size(photos),
|
'total_size' : photos_size(photos),
|
||||||
'docs_url': request.static_url(request.registry.settings['mondumas.devfac_url']),
|
'docs_url': request.static_url(request.registry.settings['mondumas.devfac_url']),
|
||||||
@@ -535,7 +549,8 @@ def rdf_view(request):
|
|||||||
date_rapport = ''
|
date_rapport = ''
|
||||||
|
|
||||||
# lire tous les photos attachées
|
# lire tous les photos attachées
|
||||||
photos = get_photos(request, rapport.nochantier, norapport)
|
photos1 = get_photos(request, nodossier, norapport, 1)
|
||||||
|
photos2 = get_photos(request, nodossier, norapport, 2)
|
||||||
|
|
||||||
if 'form.generate' in request.params:
|
if 'form.generate' in request.params:
|
||||||
options = {
|
options = {
|
||||||
@@ -562,18 +577,19 @@ def rdf_view(request):
|
|||||||
config = pdfkit.configuration(wkhtmltopdf="C:\\Program Files\\wkhtmltopdf\\bin\\wkhtmltopdf.exe")
|
config = pdfkit.configuration(wkhtmltopdf="C:\\Program Files\\wkhtmltopdf\\bin\\wkhtmltopdf.exe")
|
||||||
pdfkit.from_url(origin, dest, configuration=config, options=options)
|
pdfkit.from_url(origin, dest, configuration=config, options=options)
|
||||||
|
|
||||||
insert_dossier_attaches(request, nodossier, 0, filename, '160 Ko', logged_in)
|
insert_dossier_attaches(request, nodossier, 0, 0, filename, '160 Ko', logged_in)
|
||||||
# si generation pdf, maj de la date du rapport
|
# si generation pdf, maj de la date du rapport
|
||||||
new_values = {}
|
new_values = {}
|
||||||
new_values['date_rapport'] = date.today()
|
new_values['date_rapport'] = date.today()
|
||||||
update_rapport(request, nodossier, rapport.date_inter.strftime('%Y-%m-%d'), new_values)
|
update_rapport(request, nodossier, rapport.date_inter.strftime('%Y-%m-%d'), new_values)
|
||||||
|
|
||||||
request.session.flash(u"Le rapport a été génré avec succès.", 'success')
|
request.session.flash(u"Le rapport a été généré avec succès.", 'success')
|
||||||
return HTTPFound(location=request.route_url('dossier_view', nodossier=nodossier))
|
return HTTPFound(location=request.route_url('dossier_view', nodossier=nodossier))
|
||||||
|
|
||||||
if 'form.validate' in request.params:
|
if 'form.validate' in request.params:
|
||||||
validate_rapport(request, norapport)
|
validate_rapport(request, norapport)
|
||||||
request.session.flash(u"Le rapporta été validé avec succès.", 'success')
|
request.session.flash(u"Le rapporta été validé avec succès.", 'success')
|
||||||
|
return HTTPFound(location=request.route_url('dossier_view', nodossier=nodossier))
|
||||||
|
|
||||||
if 'form.delete' in request.params:
|
if 'form.delete' in request.params:
|
||||||
delete_rapport(request, norapport)
|
delete_rapport(request, norapport)
|
||||||
@@ -591,7 +607,8 @@ def rdf_view(request):
|
|||||||
'norapport': norapport,
|
'norapport': norapport,
|
||||||
'date_rapport': date_rapport,
|
'date_rapport': date_rapport,
|
||||||
'date_relu': date_relu,
|
'date_relu': date_relu,
|
||||||
'photos': photos,
|
'photos1': photos1,
|
||||||
|
'photos2': photos2,
|
||||||
'docs_url': request.static_url(request.registry.settings['mondumas.devfac_url']),
|
'docs_url': request.static_url(request.registry.settings['mondumas.devfac_url']),
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -614,7 +631,8 @@ def rdf_rapport(request):
|
|||||||
date_relu = ''
|
date_relu = ''
|
||||||
|
|
||||||
# lire tous les photos attachées
|
# lire tous les photos attachées
|
||||||
photos = get_photos(request, rapport.nochantier, norapport)
|
photos1 = get_photos(request, nodossier, norapport, 1)
|
||||||
|
photos2 = get_photos(request, nodossier, norapport, 2)
|
||||||
|
|
||||||
return {
|
return {
|
||||||
'page_title': '',
|
'page_title': '',
|
||||||
@@ -626,25 +644,34 @@ def rdf_rapport(request):
|
|||||||
'norapport': norapport,
|
'norapport': norapport,
|
||||||
'date_rapport': date_rapport,
|
'date_rapport': date_rapport,
|
||||||
'date_relu': date_relu,
|
'date_relu': date_relu,
|
||||||
'photos': photos,
|
'photos1': photos1,
|
||||||
|
'photos2': photos2,
|
||||||
'docs_url': request.static_url(request.registry.settings['mondumas.devfac_url']),
|
'docs_url': request.static_url(request.registry.settings['mondumas.devfac_url']),
|
||||||
}
|
}
|
||||||
|
|
||||||
@view_config(route_name='rdf_imgdel', permission='view')
|
@view_config(route_name='delete_img', permission='view')
|
||||||
def rdf_imgdel(request):
|
def delete_img(request):
|
||||||
logged_in = request.authenticated_userid.upper()
|
logged_in = request.authenticated_userid.upper()
|
||||||
nochantier = request.matchdict['nochantier']
|
nodossier = request.matchdict['nodossier']
|
||||||
|
societe = nodossier[0:2]
|
||||||
|
nochantier = nodossier[3:]
|
||||||
norapport = request.matchdict['norapport']
|
norapport = request.matchdict['norapport']
|
||||||
|
nosection = request.matchdict['nosection']
|
||||||
nomfic = request.matchdict['nomfic']
|
nomfic = request.matchdict['nomfic']
|
||||||
|
|
||||||
|
if nosection == '0':
|
||||||
|
url_retour = location=request.route_url("upload_img", norapport=nodossier, nosection=nosection)
|
||||||
|
else:
|
||||||
|
url_retour = location=request.route_url("upload_img", norapport=norapport, nosection=nosection)
|
||||||
|
|
||||||
# supprimer le fichier
|
# supprimer le fichier
|
||||||
file_path = '%s/PL/%s/%s/%s' % (request.registry.settings['mondumas.devfac_dir'], nochantier, norapport, nomfic)
|
file_path = '%s/%s/%s/%s/%s' % (request.registry.settings['mondumas.devfac_dir'], societe, nochantier, norapport, nomfic)
|
||||||
if os.path.exists(file_path):
|
if os.path.exists(file_path):
|
||||||
os.remove(file_path)
|
os.remove(file_path)
|
||||||
|
|
||||||
delete_photos(request, nochantier, norapport, nomfic)
|
delete_photos(request, nodossier, norapport, nosection, nomfic)
|
||||||
request.session.flash(u"La photo %s a été supprimé avec succès" % (nomfic), 'success')
|
request.session.flash(u"La photo %s a été supprimé avec succès" % (nomfic), 'success')
|
||||||
return HTTPFound(location=request.route_url("upload_img", norapport=norapport))
|
return HTTPFound(url_retour)
|
||||||
|
|
||||||
@view_config(route_name='rdf_bill', renderer='../templates/dossier/rdf_bill.pt', permission='view')
|
@view_config(route_name='rdf_bill', renderer='../templates/dossier/rdf_bill.pt', permission='view')
|
||||||
def rdf_bill(request):
|
def rdf_bill(request):
|
||||||
@@ -780,17 +807,29 @@ def demandes(request):
|
|||||||
|
|
||||||
# extraction OK ? oui, créer une dem_devis et récupèrer son no_id
|
# extraction OK ? oui, créer une dem_devis et récupèrer son no_id
|
||||||
if dem_info['c_nom'] != '':
|
if dem_info['c_nom'] != '':
|
||||||
|
# oui, rechercher la dem_devis concerné par le no de sinistre
|
||||||
nosin = dem_info['no_sinistre']
|
nosin = dem_info['no_sinistre']
|
||||||
nochantier = insert_dossier(request, societe, cd_cli, dem_info['c_nom'], dem_info['c_adr'], dem_info['c_adr2'], \
|
dem_devis = get_dossier_by_sinistre(request,societe, nosin)
|
||||||
|
if dem_devis:
|
||||||
|
# dem_devis existe, ajouter le PDF dans ce dossier
|
||||||
|
nochantier = dem_devis.NO_ID
|
||||||
|
nodossier = "%s-%s" % (societe, nochantier)
|
||||||
|
# insérer une ligne de suivi ANNULATION
|
||||||
|
insert_suivi(request, nodossier, '!!MISSION MODIFIEE PAR la MAIF')
|
||||||
|
# log de nuit
|
||||||
|
insert_log_nuit(request, 'GENERER', '--> MODIFIER DOSSIER sinistre %s - MAIF : No %s' % (nosin, nodossier))
|
||||||
|
else:
|
||||||
|
# dem_devis n'existe pas, creer nouveau dossier
|
||||||
|
nochantier = insert_dossier(request, societe, cd_cli, dem_info['c_nom'], dem_info['c_adr'], dem_info['c_adr2'], \
|
||||||
dem_info['c_cp'], dem_info['c_ville'], dem_info['c_telp'], nosin, dem_info['c_obs'], dem_info['tx_trav'])
|
dem_info['c_cp'], dem_info['c_ville'], dem_info['c_telp'], nosin, dem_info['c_obs'], dem_info['tx_trav'])
|
||||||
nodossier = "%s-%s" % (societe, nochantier)
|
nodossier = "%s-%s" % (societe, nochantier)
|
||||||
|
# log de nuit
|
||||||
|
insert_log_nuit(request, 'GENERER', '--> CREER DOSSIER sinistre %s - MAIF : No %s' % (nosin, nodossier))
|
||||||
|
|
||||||
# récupère le nom du fichier et ajouter le no de dossier
|
# récupère le nom du fichier et ajouter le no de dossier
|
||||||
filename = os.path.basename(temp_file_path)
|
filename = os.path.basename(temp_file_path)
|
||||||
filename = '%s-DD%s-%s' % (societe, nochantier, filename)
|
filename = '%s-DD%s-%s' % (societe, nochantier, filename)
|
||||||
tempFile2Dossier(request, societe, nochantier, '0', temp_file_path, filename, 'EMAIL')
|
tempFile2Dossier(request, societe, nochantier, '0', 0, temp_file_path, filename, 'EMAIL')
|
||||||
# log de nuit
|
|
||||||
insert_log_nuit(request, 'GENERER', '--> CREER DOSSIER sinistre %s - MAIF : No %s' % (nosin, nodossier))
|
|
||||||
traite = 1
|
traite = 1
|
||||||
else:
|
else:
|
||||||
traite = 0
|
traite = 0
|
||||||
@@ -812,7 +851,7 @@ def demandes(request):
|
|||||||
|
|
||||||
# récupère le nom du fichier et ajouter le no de dossier
|
# récupère le nom du fichier et ajouter le no de dossier
|
||||||
filename = '%s-DD%s-%s' % (societe, dem_devis.NO_ID, 'ANNULATION.pdf')
|
filename = '%s-DD%s-%s' % (societe, dem_devis.NO_ID, 'ANNULATION.pdf')
|
||||||
tempFile2Dossier(request, societe, dem_devis.NO_ID, '0', temp_file_path, filename, 'EMAIL')
|
tempFile2Dossier(request, societe, dem_devis.NO_ID, '0', 0, temp_file_path, filename, 'EMAIL')
|
||||||
# insérer une ligne de suivi ANNULATION
|
# insérer une ligne de suivi ANNULATION
|
||||||
insert_suivi(request, nodossier, '!!MISSION ANNULEE PAR la MAIF')
|
insert_suivi(request, nodossier, '!!MISSION ANNULEE PAR la MAIF')
|
||||||
# log de nuit
|
# log de nuit
|
||||||
@@ -832,7 +871,7 @@ def demandes(request):
|
|||||||
|
|
||||||
# récupère le nom du fichier et ajouter le no de dossier
|
# récupère le nom du fichier et ajouter le no de dossier
|
||||||
filename = '%s-DD%s-%s' % (societe, dem_devis.NO_ID, 'ANNULATION.pdf')
|
filename = '%s-DD%s-%s' % (societe, dem_devis.NO_ID, 'ANNULATION.pdf')
|
||||||
tempFile2Dossier(request, societe, dem_devis.NO_ID, '0', temp_file_path, filename, 'EMAIL')
|
tempFile2Dossier(request, societe, dem_devis.NO_ID, '0', 0, temp_file_path, filename, 'EMAIL')
|
||||||
# insérer une ligne de suivi ANNULATION
|
# insérer une ligne de suivi ANNULATION
|
||||||
insert_suivi(request, nodossier, '!!MISSION ANNULEE PAR DOMUS')
|
insert_suivi(request, nodossier, '!!MISSION ANNULEE PAR DOMUS')
|
||||||
# log de nuit
|
# log de nuit
|
||||||
@@ -953,6 +992,8 @@ def demandes(request):
|
|||||||
|
|
||||||
# messages lus
|
# messages lus
|
||||||
msglus = bool(liste)
|
msglus = bool(liste)
|
||||||
|
# lire le log
|
||||||
|
log_creation = get_log_demandes(request)
|
||||||
|
|
||||||
return {
|
return {
|
||||||
'page_title': "Liste des emails de demandes d'intervention",
|
'page_title': "Liste des emails de demandes d'intervention",
|
||||||
@@ -960,6 +1001,7 @@ def demandes(request):
|
|||||||
'dt_data': json.dumps(liste),
|
'dt_data': json.dumps(liste),
|
||||||
'msglus': msglus,
|
'msglus': msglus,
|
||||||
'message': message,
|
'message': message,
|
||||||
|
'log_creation': log_creation,
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@@ -993,7 +1035,7 @@ def downloadFile2Temp(input_file, input_name, ext_allowed):
|
|||||||
|
|
||||||
return temp_file_path
|
return temp_file_path
|
||||||
|
|
||||||
def tempFile2Dossier(request, societe, nochantier, norapport, temp_file, filename, logged_in):
|
def tempFile2Dossier(request, societe, nochantier, norapport, nosection, temp_file, filename, logged_in):
|
||||||
# créer le répertoire du chantier
|
# créer le répertoire du chantier
|
||||||
if norapport == '0':
|
if norapport == '0':
|
||||||
path = '%s/%s/%s' % (request.registry.settings['mondumas.devfac_dir'], societe, nochantier)
|
path = '%s/%s/%s' % (request.registry.settings['mondumas.devfac_dir'], societe, nochantier)
|
||||||
@@ -1010,7 +1052,7 @@ def tempFile2Dossier(request, societe, nochantier, norapport, temp_file, filenam
|
|||||||
shutil.move(temp_file, filepath)
|
shutil.move(temp_file, filepath)
|
||||||
|
|
||||||
filesize = round(os.path.getsize(filepath) / 1024)
|
filesize = round(os.path.getsize(filepath) / 1024)
|
||||||
insert_dossier_attaches(request, '%s-%s' % (societe, nochantier), norapport, filename, '%s Ko' % str(filesize), logged_in)
|
insert_dossier_attaches(request, '%s-%s' % (societe, nochantier), norapport, nosection, filename, '%s Ko' % str(filesize), logged_in)
|
||||||
|
|
||||||
def download_pdf_to_tmp(email_message):
|
def download_pdf_to_tmp(email_message):
|
||||||
# downloading attachments
|
# downloading attachments
|
||||||
@@ -1212,3 +1254,12 @@ def resize_photos(image_file):
|
|||||||
|
|
||||||
return
|
return
|
||||||
|
|
||||||
|
def photos_size(photos):
|
||||||
|
# calculer la taille totale des photos
|
||||||
|
sum_size = 0
|
||||||
|
for photo in photos :
|
||||||
|
# récupère la taille sans ' Ko'
|
||||||
|
sum_size += int(photo.taillefichier[:-3])
|
||||||
|
|
||||||
|
return '%s Mo' % round(sum_size / 1024, 1)
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user