refonte gestion image + rotation +/-90
This commit is contained in:
@@ -115,9 +115,9 @@ def dossier_view(request):
|
||||
# lire toutes les dossiers similaires
|
||||
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
|
||||
docs_attaches = get_docs_attaches(request, nodossier, 0, 0, 'CLT', '')
|
||||
docs_attaches = get_docs_attaches(request, nodossier, 0, 'CLT', '')
|
||||
# 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'):
|
||||
# lire rapport de rdf
|
||||
rapports = get_rapport_by_no(request, nodossier, '')
|
||||
@@ -278,7 +278,7 @@ def upload_doc(request):
|
||||
nodossier = request.matchdict['nodossier']
|
||||
origine = request.matchdict['origine']
|
||||
if origine == 'CLT':
|
||||
page_title = "Télécharger un document attaché"
|
||||
page_title = "Télécharger un document PDF"
|
||||
else:
|
||||
page_title = "Télécharger un document technique"
|
||||
|
||||
@@ -294,25 +294,29 @@ def upload_doc(request):
|
||||
return HTTPFound(location=request.route_url("dossier_lookup"))
|
||||
|
||||
# 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:
|
||||
# récupère le fichier download dans le dossier /tmp
|
||||
input_file = request.POST['filename'].file
|
||||
input_name = request.POST['filename'].filename
|
||||
ext_allowed = ['jpeg','jpg','png','pdf']
|
||||
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
|
||||
filename = '%s-DD%s-%s' % (societe, nochantier, input_name)
|
||||
tempFile2Dossier(request, societe, nochantier, '0', 0, origine, temp_file, filename, logged_in)
|
||||
|
||||
request.session.flash('%s : Ce fichier est téléchargé avec succès.' % input_name, 'success')
|
||||
# récupère le(s) fichier(s) download dans le dossier /tmp
|
||||
fileslist = request.POST.getall('files')
|
||||
for f in fileslist:
|
||||
# récupère le fichier download dans le dossier /tmp
|
||||
input_file = f.file
|
||||
input_name = f.filename
|
||||
ext_allowed = ['pdf',]
|
||||
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
|
||||
filename = '%s-DD%s-%s' % (societe, nochantier, input_name)
|
||||
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')
|
||||
|
||||
# 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 {
|
||||
'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')
|
||||
def upload_img(request):
|
||||
# Paramètres d'appel :
|
||||
# - gérer images d'un dossier : upload_img/nodossier/z0
|
||||
# - gérer images d'un rapport RDF : upload_img/norapport/nosection
|
||||
nosection = request.matchdict['nosection']
|
||||
# Gérer les photos d'un dossier (nosection=0) ?
|
||||
if nosection == '0':
|
||||
"""
|
||||
Paramètres d'appel :
|
||||
- gestion images d'un dossier :
|
||||
norapport = numero du dossier
|
||||
origine = 'CLT' si images du dossier
|
||||
'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'
|
||||
# oui, lire le dossier
|
||||
nodossier = request.matchdict['norapport']
|
||||
@@ -340,9 +352,9 @@ def upload_img(request):
|
||||
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 = request.route_url("upload_img", norapport=nodossier, origine=origine)
|
||||
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:
|
||||
norapport = request.matchdict['norapport']
|
||||
rapport = get_rapport_by_no_id(request, norapport)
|
||||
@@ -352,9 +364,9 @@ def upload_img(request):
|
||||
societe = 'PL'
|
||||
nochantier = rapport.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)
|
||||
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()
|
||||
message = ""
|
||||
@@ -374,12 +386,12 @@ def upload_img(request):
|
||||
|
||||
# fabriquer le nom du rapport
|
||||
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')
|
||||
|
||||
# lire tous les photos attachées
|
||||
photos = get_photos(request, nodossier, int(norapport), int(nosection))
|
||||
photos = get_photos(request, nodossier, int(norapport), origine)
|
||||
|
||||
return {
|
||||
'page_title': titre,
|
||||
@@ -388,7 +400,7 @@ def upload_img(request):
|
||||
'nodossier': nodossier,
|
||||
'nochantier': nochantier,
|
||||
'norapport': norapport,
|
||||
'nosection': nosection,
|
||||
'origine': origine,
|
||||
'photos': photos,
|
||||
'total_size' : photos_size(photos),
|
||||
'docs_url': request.static_url(request.registry.settings['mondumas.devfac_url']),
|
||||
@@ -599,8 +611,8 @@ def rdf_view(request):
|
||||
date_facture = ''
|
||||
|
||||
# lire tous les photos attachées
|
||||
photos1 = get_photos(request, nodossier, norapport, 1)
|
||||
photos2 = get_photos(request, nodossier, norapport, 2)
|
||||
photos1 = get_photos(request, nodossier, norapport, '1')
|
||||
photos2 = get_photos(request, nodossier, norapport, '2')
|
||||
|
||||
if 'form.generate' in request.params:
|
||||
footer_url = request.static_url('mondumas:static/img/footer_PL.html')
|
||||
@@ -695,8 +707,8 @@ def rdf_rapport(request):
|
||||
date_relu = ''
|
||||
|
||||
# lire tous les photos attachées
|
||||
photos1 = get_photos(request, nodossier, norapport, 1)
|
||||
photos2 = get_photos(request, nodossier, norapport, 2)
|
||||
photos1 = get_photos(request, nodossier, norapport, '1')
|
||||
photos2 = get_photos(request, nodossier, norapport, '2')
|
||||
|
||||
return {
|
||||
'page_title': '',
|
||||
@@ -720,18 +732,56 @@ def delete_img(request):
|
||||
societe = nodossier[0:2]
|
||||
nochantier = nodossier[3:]
|
||||
norapport = request.matchdict['norapport']
|
||||
nosection = request.matchdict['nosection']
|
||||
origine = request.matchdict['origine']
|
||||
nomfic = request.matchdict['nomfic']
|
||||
|
||||
if nosection == '0':
|
||||
url_retour = location=request.route_url("upload_img", norapport=nodossier, nosection=nosection)
|
||||
# origine de l'image ?
|
||||
if len(origine) > 1:
|
||||
url_retour = location=request.route_url("upload_img", norapport=nodossier, origine=origine)
|
||||
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)
|
||||
request.session.flash(u"La photo %s a été supprimé avec succès" % (nomfic), 'success')
|
||||
delete_photos(request, nodossier, norapport, origine, nomfic)
|
||||
request.session.flash(u"La photo %s a été supprimée avec succès" % (nomfic), 'success')
|
||||
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')
|
||||
def rdf_bill(request):
|
||||
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
|
||||
filename = os.path.basename(temp_file_path)
|
||||
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
|
||||
|
||||
return traite
|
||||
@@ -953,7 +1003,7 @@ def demandes_dl(request):
|
||||
|
||||
# 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')
|
||||
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
|
||||
insert_suivi(request, nodossier, '!!MISSION ANNULEE PAR la MAIF')
|
||||
# log de nuit
|
||||
@@ -971,7 +1021,7 @@ def demandes_dl(request):
|
||||
|
||||
# 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')
|
||||
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()
|
||||
# insérer une ligne de suivi ANNULATION
|
||||
@@ -1092,7 +1142,7 @@ def downloadFile2Temp(input_file, input_name, ext_allowed):
|
||||
|
||||
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
|
||||
if norapport == '0':
|
||||
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)
|
||||
|
||||
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):
|
||||
# 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
|
||||
filename = os.path.basename(temp_file_path)
|
||||
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
|
||||
|
||||
|
||||
Reference in New Issue
Block a user