refonte gestion image + rotation +/-90
This commit is contained in:
@@ -121,7 +121,7 @@ WHERE societe<>:societe AND C_NOM=:C_NOM AND C_ADR=:C_ADR AND C_CP=:C_CP AND C_V
|
|||||||
|
|
||||||
return results
|
return results
|
||||||
|
|
||||||
def get_docs_attaches(request, nodossier, norapport, nosection, origine, filename):
|
def get_docs_attaches(request, nodossier, norapport, origine, filename):
|
||||||
societe = nodossier[0:2]
|
societe = nodossier[0:2]
|
||||||
nochantier = int(nodossier[3:])
|
nochantier = int(nodossier[3:])
|
||||||
|
|
||||||
@@ -134,26 +134,38 @@ def get_docs_attaches(request, nodossier, norapport, nosection, origine, filenam
|
|||||||
'norapport': norapport, 'origine': origine, 'filename': filename}).fetchall()
|
'norapport': norapport, 'origine': origine, 'filename': filename}).fetchall()
|
||||||
return results
|
return results
|
||||||
|
|
||||||
def get_photos(request, nodossier, norapport, nosection):
|
def get_photos(request, nodossier, norapport, origine):
|
||||||
societe = nodossier[0:2]
|
societe = nodossier[0:2]
|
||||||
nochantier = int(nodossier[3:])
|
nochantier = int(nodossier[3:])
|
||||||
query = """SELECT * FROM dossier_attaches WHERE nomrep = 'DOCS_ATTACHES' AND societe = :societe AND nochantier = :nochantier
|
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;"""
|
AND nodossier = :norapport AND origine = :origine AND UPPER(RIGHT(nomfichier,3)) <> 'PDF' ORDER BY cree_le;"""
|
||||||
results = request.dbsession.execute(query, {'societe': societe, 'nochantier': nochantier, 'norapport': norapport, 'nosection': nosection}).fetchall()
|
results = request.dbsession.execute(query, {'societe': societe, 'nochantier': nochantier, 'norapport': norapport, 'origine': origine}).fetchall()
|
||||||
return results
|
return results
|
||||||
|
|
||||||
def delete_photos(request, nodossier, norapport, nosection, nomfic):
|
def delete_photos(request, nodossier, norapport, origine, nomfic):
|
||||||
societe = nodossier[0:2]
|
societe = nodossier[0:2]
|
||||||
nochantier = int(nodossier[3:])
|
nochantier = int(nodossier[3:])
|
||||||
|
|
||||||
# supprimer d'abord le fichier
|
# supprimer d'abord le fichier
|
||||||
file_path = '%s/%s/%s/%s/%s' % (request.registry.settings['mondumas.devfac_dir'], societe, nochantier, norapport, nomfic)
|
if len(origine) > 1:
|
||||||
|
file_path = '%s/%s/%s/%s' % (request.registry.settings['mondumas.devfac_dir'], societe, nochantier, nomfic)
|
||||||
|
else:
|
||||||
|
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)
|
||||||
|
|
||||||
query = "DELETE FROM dossier_attaches WHERE nomrep='DOCS_ATTACHES' AND societe=:societe AND nochantier=:nochantier AND nodossier=:norapport AND nosection=:nosection AND nomfichier=:nomfic;"
|
query = "DELETE FROM dossier_attaches WHERE nomrep='DOCS_ATTACHES' AND societe=:societe AND nochantier=:nochantier AND nodossier=:norapport AND origine=:origine AND nomfichier=:nomfic;"
|
||||||
execute_query(request, query, {'societe': societe, 'nochantier': nochantier, 'norapport': norapport, 'nosection': nosection, 'nomfic': nomfic})
|
execute_query(request, query, {'societe': societe, 'nochantier': nochantier, 'norapport': norapport, 'origine': origine, 'nomfic': nomfic})
|
||||||
|
|
||||||
|
def rename_photos(request, nodossier, norapport, origine, nomfic, new_nomfic):
|
||||||
|
societe = nodossier[0:2]
|
||||||
|
nochantier = int(nodossier[3:])
|
||||||
|
|
||||||
|
query = """
|
||||||
|
UPDATE dossier_attaches SET nomfichier = :new_nomfic
|
||||||
|
WHERE nomrep='DOCS_ATTACHES' AND societe=:societe AND nochantier=:nochantier AND nodossier=:norapport AND origine=:origine AND nomfichier=:nomfic;
|
||||||
|
"""
|
||||||
|
execute_query(request, query, {'societe': societe, 'nochantier': nochantier, 'norapport': norapport,
|
||||||
|
'origine': origine, 'nomfic': nomfic, 'new_nomfic': new_nomfic})
|
||||||
|
|
||||||
def update_dossier(request, nodossier, new_values):
|
def update_dossier(request, nodossier, new_values):
|
||||||
societe = nodossier[0:2]
|
societe = nodossier[0:2]
|
||||||
@@ -183,19 +195,19 @@ def update_dossier_cloture(request, nodossier, logged_in):
|
|||||||
query = "UPDATE dem_devis SET mtregl = 0.01, USERMAJ = :logged_in WHERE societe=:societe AND no_id=:nochantier"
|
query = "UPDATE dem_devis SET mtregl = 0.01, USERMAJ = :logged_in WHERE societe=:societe AND no_id=:nochantier"
|
||||||
execute_query(request, query, {'societe': societe, 'nochantier': nochantier, 'logged_in': logged_in})
|
execute_query(request, query, {'societe': societe, 'nochantier': nochantier, 'logged_in': logged_in})
|
||||||
|
|
||||||
def insert_dossier_attaches(request, nodossier, norapport, nosection, origine, filename, filesize, user):
|
def insert_dossier_attaches(request, nodossier, norapport, origine, 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, nosection, origine, filename)
|
item = get_docs_attaches(request, nodossier, norapport, origine, 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, nosection, origine, nomfichier, taillefichier, cree_le, usermaj)
|
query = """INSERT INTO dossier_attaches (nomrep, societe, nochantier, nodossier, origine, nomfichier, taillefichier, cree_le, usermaj)
|
||||||
VALUES('DOCS_ATTACHES',:societe,:nochantier,:norapport,:nosection,:origine,:filename,:filesize,NOW(),:user);"""
|
VALUES('DOCS_ATTACHES',:societe,:nochantier,:norapport,:origine,:filename,:filesize,NOW(),:user);"""
|
||||||
execute_query(request, query, {'societe': societe, 'nochantier': nochantier, 'norapport': norapport,
|
execute_query(request, query, {'societe': societe, 'nochantier': nochantier, 'norapport': norapport,
|
||||||
'nosection': nosection, 'origine': origine, 'filename': filename, 'filesize': filesize, 'user': user})
|
'origine': origine, '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]
|
||||||
|
|||||||
@@ -30,7 +30,7 @@ def includeme(config):
|
|||||||
# dossier
|
# dossier
|
||||||
config.add_route('demandes','/demandes')
|
config.add_route('demandes','/demandes')
|
||||||
config.add_route('demandes_dl','/demandes_dl/{societe}/{email_from}/{email_uid}')
|
config.add_route('demandes_dl','/demandes_dl/{societe}/{email_from}/{email_uid}')
|
||||||
config.add_route('delete_img','/delete_img/{nodossier}/{norapport}/{nosection}/{nomfic}')
|
config.add_route('delete_img','/delete_img/{nodossier}/{norapport}/{origine}/{nomfic}')
|
||||||
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')
|
||||||
config.add_route('dossier_select', '/dossier_select/{date}')
|
config.add_route('dossier_select', '/dossier_select/{date}')
|
||||||
@@ -42,9 +42,10 @@ def includeme(config):
|
|||||||
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('rotate_img','/rotate_img/{nodossier}/{norapport}/{origine}/{nomfic}/{angle}')
|
||||||
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}/{origine}')
|
config.add_route('upload_doc', '/upload_doc/{nodossier}/{origine}')
|
||||||
config.add_route('upload_img', '/upload_img/{norapport}/{nosection}')
|
config.add_route('upload_img', '/upload_img/{norapport}/{origine}')
|
||||||
config.add_route('upload_om', '/upload_om')
|
config.add_route('upload_om', '/upload_om')
|
||||||
# parametres
|
# parametres
|
||||||
config.add_route('parametres', '/parametres')
|
config.add_route('parametres', '/parametres')
|
||||||
|
|||||||
Binary file not shown.
|
Before Width: | Height: | Size: 68 KiB After Width: | Height: | Size: 68 KiB |
@@ -221,8 +221,8 @@
|
|||||||
<p>
|
<p>
|
||||||
<a href="${request.application_url}/upload_doc/${nodossier}/CLT" class="btn btn-success" role="button">
|
<a href="${request.application_url}/upload_doc/${nodossier}/CLT" class="btn btn-success" role="button">
|
||||||
<span class="glyphicon glyphicon-plus"></span> Ajouter document</a>
|
<span class="glyphicon glyphicon-plus"></span> Ajouter document</a>
|
||||||
<a href="${request.application_url}/upload_img/${nodossier}/0" class="btn btn-primary" role="button">
|
<a href="${request.application_url}/upload_img/${nodossier}/CLT" 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 photos dossiers</a>
|
||||||
</p>
|
</p>
|
||||||
<table class="table table-bordered table-condensed">
|
<table class="table table-bordered table-condensed">
|
||||||
<tr>
|
<tr>
|
||||||
@@ -254,6 +254,8 @@
|
|||||||
<p>
|
<p>
|
||||||
<a href="${request.application_url}/upload_doc/${nodossier}/FRN" class="btn btn-success" role="button">
|
<a href="${request.application_url}/upload_doc/${nodossier}/FRN" class="btn btn-success" role="button">
|
||||||
<span class="glyphicon glyphicon-plus"></span> Document technique</a>
|
<span class="glyphicon glyphicon-plus"></span> Document technique</a>
|
||||||
|
<a href="${request.application_url}/upload_img/${nodossier}/FRN" class="btn btn-primary" role="button">
|
||||||
|
<span class="glyphicon glyphicon-picture"></span> Gérer photos techniques</a>
|
||||||
</p>
|
</p>
|
||||||
<table class="table table-bordered table-condensed">
|
<table class="table table-bordered table-condensed">
|
||||||
<tr>
|
<tr>
|
||||||
|
|||||||
@@ -10,7 +10,7 @@
|
|||||||
|
|
||||||
<div class="form-group">
|
<div class="form-group">
|
||||||
<label for="uploadfile">Veuillez séléctionner un fichier</label>
|
<label for="uploadfile">Veuillez séléctionner un fichier</label>
|
||||||
<input id="uploadfile" name="filename" type="file" value="" required />
|
<input id="uploadfile" name="files" type="file" value="" required multiple />
|
||||||
</div>
|
</div>
|
||||||
<div class="form-group">
|
<div class="form-group">
|
||||||
<a class="btn btn-default" href="${request.route_url('dossier_view', nodossier=nodossier)}">
|
<a class="btn btn-default" href="${request.route_url('dossier_view', nodossier=nodossier)}">
|
||||||
@@ -20,7 +20,7 @@
|
|||||||
</div>
|
</div>
|
||||||
</form>
|
</form>
|
||||||
<ul>
|
<ul>
|
||||||
<li>Seuls les documents au format <b>PDF, PNG, JPG ou JPEG</b> seront acceptés.</li>
|
<li>Seuls les documents au format <b>PDF</b> seront acceptés.</li>
|
||||||
<li>La taille de chaque document ne doit <b>pas dépasser 4 Mo</b>.</li>
|
<li>La taille de chaque document ne doit <b>pas dépasser 4 Mo</b>.</li>
|
||||||
</ul>
|
</ul>
|
||||||
|
|
||||||
|
|||||||
@@ -23,7 +23,7 @@
|
|||||||
</div>
|
</div>
|
||||||
<div class="form-group">
|
<div class="form-group">
|
||||||
<a class="btn btn-default" href="${url_retour}">
|
<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</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>
|
||||||
</div>
|
</div>
|
||||||
@@ -44,17 +44,58 @@
|
|||||||
</h4>
|
</h4>
|
||||||
</div>
|
</div>
|
||||||
<div class="panel-body">
|
<div class="panel-body">
|
||||||
<form id="upload_doc-form" action="${url}" method="post">
|
<table class="table table-condensed" width="100%" tal:condition="photos">
|
||||||
<ul tal:repeat="detail photos">
|
<tr tal:repeat="detail photos">
|
||||||
<li>
|
<td width="400" align="center">
|
||||||
${detail.nomfichier} | ${detail.taillefichier} | <a href="/delete_img/${nodossier}/${norapport}/${nosection}/${detail.nomfichier}">[Suppimer cet image]</a><br />
|
<img tal:condition="norapport=='0'" width="350"
|
||||||
<img tal:condition="norapport=='0'" width="350" align="center"
|
src="${docs_url}${detail.nomrep}/${detail.societe}/${nochantier}/${detail.nomfichier}" />
|
||||||
src="${docs_url}${detail.nomrep}/${detail.societe}/${nochantier}/${detail.nomfichier}" />
|
<img tal:condition="norapport!='0'" width="350"
|
||||||
<img tal:condition="norapport!='0'" width="350" align="center"
|
src="${docs_url}${detail.nomrep}/${detail.societe}/${nochantier}/${norapport}/${detail.nomfichier}" />
|
||||||
src="${docs_url}${detail.nomrep}/${detail.societe}/${nochantier}/${norapport}/${detail.nomfichier}" />
|
</td>
|
||||||
</li>
|
<td>
|
||||||
</ul>
|
<p>
|
||||||
</form>
|
${detail.nomfichier}<br />
|
||||||
|
Taille : ${detail.taillefichier}
|
||||||
|
</p>
|
||||||
|
<p>
|
||||||
|
<a class="btn btn-danger" href="/delete_img/${nodossier}/${norapport}/${origine}/${detail.nomfichier}">
|
||||||
|
<span class="glyphicon glyphicon-trash"></span> Suppimer</a>
|
||||||
|
</p>
|
||||||
|
<p>
|
||||||
|
<a class="btn btn-primary" href="/rotate_img/${nodossier}/${norapport}/${origine}/${detail.nomfichier}/-90">
|
||||||
|
<span class="glyphicon glyphicon-object-align-bottom"></span> Pivoter -90°</a>
|
||||||
|
</p>
|
||||||
|
<p>
|
||||||
|
<a class="btn btn-primary" href="/rotate_img/${nodossier}/${norapport}/${origine}/${detail.nomfichier}/+90">
|
||||||
|
<span class="glyphicon glyphicon-object-align-left"></span> Pivoter +90°</a>
|
||||||
|
</p>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<!-- Modal : Confirmation CLOTURE -->
|
||||||
|
<div class="modal fade" id="confirmCloture" role="dialog" aria-labelledby="confirmClotureLabel" aria-hidden="true">
|
||||||
|
<div class="modal-dialog">
|
||||||
|
<div class="modal-content">
|
||||||
|
<div class="modal-header">
|
||||||
|
<button type="button" class="close" data-dismiss="modal" aria-hidden="true">×</button>
|
||||||
|
<h4 class="modal-title">Clôturer le dossier</h4>
|
||||||
|
</div>
|
||||||
|
<div class="modal-body">
|
||||||
|
<!-- The form is placed inside the body of modal -->
|
||||||
|
<form id="add_justif-form" class="form-horizontal" action="${url}" method="post">
|
||||||
|
<div class="form-group">
|
||||||
|
<p class="text-center"><b>Voulez-vous clôturer le dossier ?</b></p>
|
||||||
|
</div>
|
||||||
|
<div class="modal-footer">
|
||||||
|
<button type="button" class="btn btn-default" data-dismiss="modal">Annuler</button>
|
||||||
|
<button type="submit" class="btn btn-warning" name="form.close">Clôturer</button>
|
||||||
|
</div>
|
||||||
|
</form>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|||||||
@@ -115,9 +115,9 @@ 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, 0, 'CLT', '')
|
docs_attaches = get_docs_attaches(request, nodossier, 0, 'CLT', '')
|
||||||
# lire tous les documents techniques
|
# lire tous les documents techniques
|
||||||
docs_techniques = get_docs_attaches(request, nodossier, 0, 0, 'FRN', '')
|
docs_techniques = get_docs_attaches(request, nodossier, 0, 'FRN', '')
|
||||||
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, '')
|
||||||
@@ -278,7 +278,7 @@ def upload_doc(request):
|
|||||||
nodossier = request.matchdict['nodossier']
|
nodossier = request.matchdict['nodossier']
|
||||||
origine = request.matchdict['origine']
|
origine = request.matchdict['origine']
|
||||||
if origine == 'CLT':
|
if origine == 'CLT':
|
||||||
page_title = "Télécharger un document attaché"
|
page_title = "Télécharger un document PDF"
|
||||||
else:
|
else:
|
||||||
page_title = "Télécharger un document technique"
|
page_title = "Télécharger un document technique"
|
||||||
|
|
||||||
@@ -294,25 +294,29 @@ 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, 0, origine, '')
|
docs_attaches = get_docs_attaches(request, nodossier, 0, origine, '')
|
||||||
|
|
||||||
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(s) fichier(s) download dans le dossier /tmp
|
||||||
input_file = request.POST['filename'].file
|
fileslist = request.POST.getall('files')
|
||||||
input_name = request.POST['filename'].filename
|
for f in fileslist:
|
||||||
ext_allowed = ['jpeg','jpg','png','pdf']
|
# récupère le fichier download dans le dossier /tmp
|
||||||
temp_file = downloadFile2Temp(input_file, input_name, ext_allowed)
|
input_file = f.file
|
||||||
if temp_file[:8] == 'ERREUR: ':
|
input_name = f.filename
|
||||||
request.session.flash(temp_file, 'danger')
|
ext_allowed = ['pdf',]
|
||||||
return HTTPFound(location=url)
|
temp_file = downloadFile2Temp(input_file, input_name, ext_allowed)
|
||||||
|
if temp_file[:8] == 'ERREUR: ':
|
||||||
|
request.session.flash(temp_file, 'danger')
|
||||||
|
return HTTPFound(location=url)
|
||||||
|
|
||||||
# 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', 0, origine, temp_file, filename, logged_in)
|
tempFile2Dossier(request, societe, nochantier, '0', origine, 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, 0, origine, '')
|
docs_attaches = get_docs_attaches(request, nodossier, 0, origine, '')
|
||||||
|
|
||||||
return {
|
return {
|
||||||
'page_title': page_title,
|
'page_title': page_title,
|
||||||
@@ -325,12 +329,20 @@ 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):
|
||||||
# Paramètres d'appel :
|
"""
|
||||||
# - gérer images d'un dossier : upload_img/nodossier/z0
|
Paramètres d'appel :
|
||||||
# - gérer images d'un rapport RDF : upload_img/norapport/nosection
|
- gestion images d'un dossier :
|
||||||
nosection = request.matchdict['nosection']
|
norapport = numero du dossier
|
||||||
# Gérer les photos d'un dossier (nosection=0) ?
|
origine = 'CLT' si images du dossier
|
||||||
if nosection == '0':
|
'FRN' si images techniques
|
||||||
|
- gestion images d'un rapport RDF :
|
||||||
|
norapport = numéro du rapport de RDF
|
||||||
|
origine = '1' ou '2', numéro du de la section du rapport
|
||||||
|
|
||||||
|
"""
|
||||||
|
origine = request.matchdict['origine']
|
||||||
|
# Gérer les photos d'un dossier ?
|
||||||
|
if len(origine) > 1:
|
||||||
norapport = '0'
|
norapport = '0'
|
||||||
# oui, lire le dossier
|
# oui, lire le dossier
|
||||||
nodossier = request.matchdict['norapport']
|
nodossier = request.matchdict['norapport']
|
||||||
@@ -340,9 +352,9 @@ def upload_img(request):
|
|||||||
return HTTPFound(location=request.route_url("rdf_list"))
|
return HTTPFound(location=request.route_url("rdf_list"))
|
||||||
societe = rapport.societe
|
societe = rapport.societe
|
||||||
nochantier = rapport.NO_ID
|
nochantier = rapport.NO_ID
|
||||||
url = request.route_url("upload_img", norapport=nodossier, nosection=nosection)
|
url = request.route_url("upload_img", norapport=nodossier, origine=origine)
|
||||||
url_retour = request.route_url('dossier_view', nodossier=nodossier)
|
url_retour = request.route_url('dossier_view', nodossier=nodossier)
|
||||||
titre = "Gérer les photos du dossier %s/%s" % (nodossier, nosection)
|
titre = "Gérer les photos du dossier %s" % (nodossier)
|
||||||
else:
|
else:
|
||||||
norapport = request.matchdict['norapport']
|
norapport = request.matchdict['norapport']
|
||||||
rapport = get_rapport_by_no_id(request, norapport)
|
rapport = get_rapport_by_no_id(request, norapport)
|
||||||
@@ -352,9 +364,9 @@ def upload_img(request):
|
|||||||
societe = 'PL'
|
societe = 'PL'
|
||||||
nochantier = rapport.nochantier
|
nochantier = rapport.nochantier
|
||||||
nodossier = '%s-%s' % (societe, nochantier)
|
nodossier = '%s-%s' % (societe, nochantier)
|
||||||
url = request.route_url("upload_img", norapport=norapport, nosection=nosection)
|
url = request.route_url("upload_img", norapport=norapport, origine=origine)
|
||||||
url_retour = request.route_url('rdf_view', no_id=norapport)
|
url_retour = request.route_url('rdf_view', no_id=norapport)
|
||||||
titre = "Gérer les photos du rapport %s-%s/%s" % (societe, norapport, nosection)
|
titre = "Gérer les photos du rapport %s-%s/%s" % (societe, norapport, origine)
|
||||||
|
|
||||||
logged_in = request.authenticated_userid.upper()
|
logged_in = request.authenticated_userid.upper()
|
||||||
message = ""
|
message = ""
|
||||||
@@ -374,12 +386,12 @@ def upload_img(request):
|
|||||||
|
|
||||||
# fabriquer le nom du rapport
|
# fabriquer le nom du rapport
|
||||||
filename = '%s-DD%s-%s-%s' % (societe, nochantier, norapport, input_name)
|
filename = '%s-DD%s-%s-%s' % (societe, nochantier, norapport, input_name)
|
||||||
tempFile2Dossier(request, societe, nochantier, norapport, nosection, 'CLT', temp_file, filename, logged_in)
|
tempFile2Dossier(request, societe, nochantier, norapport, origine, 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
|
# lire tous les photos attachées
|
||||||
photos = get_photos(request, nodossier, int(norapport), int(nosection))
|
photos = get_photos(request, nodossier, int(norapport), origine)
|
||||||
|
|
||||||
return {
|
return {
|
||||||
'page_title': titre,
|
'page_title': titre,
|
||||||
@@ -388,7 +400,7 @@ def upload_img(request):
|
|||||||
'nodossier': nodossier,
|
'nodossier': nodossier,
|
||||||
'nochantier': nochantier,
|
'nochantier': nochantier,
|
||||||
'norapport': norapport,
|
'norapport': norapport,
|
||||||
'nosection': nosection,
|
'origine': origine,
|
||||||
'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']),
|
||||||
@@ -599,8 +611,8 @@ def rdf_view(request):
|
|||||||
date_facture = ''
|
date_facture = ''
|
||||||
|
|
||||||
# lire tous les photos attachées
|
# lire tous les photos attachées
|
||||||
photos1 = get_photos(request, nodossier, norapport, 1)
|
photos1 = get_photos(request, nodossier, norapport, '1')
|
||||||
photos2 = get_photos(request, nodossier, norapport, 2)
|
photos2 = get_photos(request, nodossier, norapport, '2')
|
||||||
|
|
||||||
if 'form.generate' in request.params:
|
if 'form.generate' in request.params:
|
||||||
footer_url = request.static_url('mondumas:static/img/footer_PL.html')
|
footer_url = request.static_url('mondumas:static/img/footer_PL.html')
|
||||||
@@ -695,8 +707,8 @@ def rdf_rapport(request):
|
|||||||
date_relu = ''
|
date_relu = ''
|
||||||
|
|
||||||
# lire tous les photos attachées
|
# lire tous les photos attachées
|
||||||
photos1 = get_photos(request, nodossier, norapport, 1)
|
photos1 = get_photos(request, nodossier, norapport, '1')
|
||||||
photos2 = get_photos(request, nodossier, norapport, 2)
|
photos2 = get_photos(request, nodossier, norapport, '2')
|
||||||
|
|
||||||
return {
|
return {
|
||||||
'page_title': '',
|
'page_title': '',
|
||||||
@@ -720,18 +732,56 @@ def delete_img(request):
|
|||||||
societe = nodossier[0:2]
|
societe = nodossier[0:2]
|
||||||
nochantier = nodossier[3:]
|
nochantier = nodossier[3:]
|
||||||
norapport = request.matchdict['norapport']
|
norapport = request.matchdict['norapport']
|
||||||
nosection = request.matchdict['nosection']
|
origine = request.matchdict['origine']
|
||||||
nomfic = request.matchdict['nomfic']
|
nomfic = request.matchdict['nomfic']
|
||||||
|
|
||||||
if nosection == '0':
|
# origine de l'image ?
|
||||||
url_retour = location=request.route_url("upload_img", norapport=nodossier, nosection=nosection)
|
if len(origine) > 1:
|
||||||
|
url_retour = location=request.route_url("upload_img", norapport=nodossier, origine=origine)
|
||||||
else:
|
else:
|
||||||
url_retour = location=request.route_url("upload_img", norapport=norapport, nosection=nosection)
|
url_retour = location=request.route_url("upload_img", norapport=norapport, origine=origine)
|
||||||
|
|
||||||
delete_photos(request, nodossier, norapport, nosection, nomfic)
|
delete_photos(request, nodossier, norapport, origine, 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ée avec succès" % (nomfic), 'success')
|
||||||
return HTTPFound(url_retour)
|
return HTTPFound(url_retour)
|
||||||
|
|
||||||
|
@view_config(route_name='rotate_img', permission='view')
|
||||||
|
def rotate_img(request):
|
||||||
|
|
||||||
|
nodossier = request.matchdict['nodossier']
|
||||||
|
societe = nodossier[0:2]
|
||||||
|
nochantier = nodossier[3:]
|
||||||
|
norapport = request.matchdict['norapport']
|
||||||
|
origine = request.matchdict['origine']
|
||||||
|
nomfic = request.matchdict['nomfic']
|
||||||
|
angle = int(request.matchdict['angle'])
|
||||||
|
|
||||||
|
# afin de refresh l'image, il faut lui donner un nouveau nom
|
||||||
|
n = nomfic.split('.')
|
||||||
|
new_nomfic = n[0] + 'r.' + n[1]
|
||||||
|
|
||||||
|
# origine de l'image ?
|
||||||
|
if len(origine) > 1:
|
||||||
|
url_retour = location=request.route_url("upload_img", norapport=nodossier, origine=origine)
|
||||||
|
image_file = '%s/%s/%s/%s' % (request.registry.settings['mondumas.devfac_dir'], societe, nochantier, nomfic)
|
||||||
|
new_file = '%s/%s/%s/%s' % (request.registry.settings['mondumas.devfac_dir'], societe, nochantier, new_nomfic)
|
||||||
|
else:
|
||||||
|
url_retour = location=request.route_url("upload_img", norapport=norapport, origine=origine)
|
||||||
|
image_file = '%s/%s/%s/%s/%s' % (request.registry.settings['mondumas.devfac_dir'], societe, nochantier, norapport, nomfic)
|
||||||
|
new_file = '%s/%s/%s/%s/%s' % (request.registry.settings['mondumas.devfac_dir'], societe, nochantier, norapport, new_nomfic)
|
||||||
|
|
||||||
|
# using the Python Image Library (PIL) to rotate an image
|
||||||
|
img_in = Image.open(image_file)
|
||||||
|
img_out = img_in.rotate(angle, expand=True)
|
||||||
|
# create a new file name for saving the result
|
||||||
|
img_out.save(new_file)
|
||||||
|
|
||||||
|
# rename dans la BD
|
||||||
|
rename_photos(request, nodossier, norapport, origine, nomfic, new_nomfic)
|
||||||
|
|
||||||
|
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):
|
||||||
logged_in = request.authenticated_userid.upper()
|
logged_in = request.authenticated_userid.upper()
|
||||||
@@ -933,7 +983,7 @@ def demandes_dl(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 = 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', 0, 'CLT', temp_file_path, filename, 'EMAIL')
|
tempFile2Dossier(request, societe, nochantier, '0', 'CLT', temp_file_path, filename, 'EMAIL')
|
||||||
traite = 1
|
traite = 1
|
||||||
|
|
||||||
return traite
|
return traite
|
||||||
@@ -953,7 +1003,7 @@ def demandes_dl(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', 0, 'CLT', temp_file_path, filename, 'EMAIL')
|
tempFile2Dossier(request, societe, dem_devis.NO_ID, '0', 'CLT', 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
|
||||||
@@ -971,7 +1021,7 @@ def demandes_dl(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', 0, 'CLT', temp_file_path, filename, 'EMAIL')
|
tempFile2Dossier(request, societe, dem_devis.NO_ID, '0', 'CLT', temp_file_path, filename, 'EMAIL')
|
||||||
|
|
||||||
#import pdb;pdb.set_trace()
|
#import pdb;pdb.set_trace()
|
||||||
# insérer une ligne de suivi ANNULATION
|
# insérer une ligne de suivi ANNULATION
|
||||||
@@ -1092,7 +1142,7 @@ def downloadFile2Temp(input_file, input_name, ext_allowed):
|
|||||||
|
|
||||||
return temp_file_path
|
return temp_file_path
|
||||||
|
|
||||||
def tempFile2Dossier(request, societe, nochantier, norapport, nosection, origine, temp_file, filename, logged_in):
|
def tempFile2Dossier(request, societe, nochantier, norapport, origine, 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)
|
||||||
@@ -1109,7 +1159,7 @@ def tempFile2Dossier(request, societe, nochantier, norapport, nosection, origine
|
|||||||
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, nosection, origine, filename, '%s Ko' % str(filesize), logged_in)
|
insert_dossier_attaches(request, '%s-%s' % (societe, nochantier), norapport, origine, filename, '%s Ko' % str(filesize), logged_in)
|
||||||
|
|
||||||
def download_pdf_to_tmp(email_message):
|
def download_pdf_to_tmp(email_message):
|
||||||
# import pdb;pdb.set_trace()
|
# import pdb;pdb.set_trace()
|
||||||
@@ -1448,7 +1498,7 @@ def upload_om(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 = 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', 0, 'CLT', temp_file_path, filename, 'EMAIL')
|
tempFile2Dossier(request, societe, nochantier, '0', 'CLT', temp_file_path, filename, 'EMAIL')
|
||||||
|
|
||||||
return message
|
return message
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user