ajout upload_doc.pt

This commit is contained in:
2019-02-01 16:24:13 +01:00
parent 984ff520fb
commit 339525b8ae
6 changed files with 126 additions and 5 deletions

View File

@@ -17,12 +17,13 @@ from pyramid.httpexceptions import (
from pyramid_mailer import get_mailer
from pyramid_mailer.message import Message, Attachment
from datetime import *
import hashlib
from sqlalchemy.exc import DBAPIError
from ..security import groupfinder
import json
import os
import uuid
import shutil
from ..views.default import *
from ..models.default import *
@@ -110,7 +111,7 @@ def dossier_view(request):
'documents': documents,
'similaires': similaires,
'docs_attaches': docs_attaches,
'docs_url': request.static_url(request.registry.settings['mondumas.DEVFAC14']),
'docs_url': request.static_url(request.registry.settings['mondumas.devfac_url']),
'bg_color': bg_color,
}
@@ -247,3 +248,55 @@ def dossier_edit(request):
'nodossier': nodossier,
}
@view_config(route_name='upload_doc', renderer='../templates/dossier/upload_doc.pt', permission='view')
def upload_doc(request):
logged_in = request.authenticated_userid
nodossier = request.matchdict['nodossier']
societe = nodossier[0:2]
nochantier = nodossier[3:]
url = request.route_url("upload_doc", 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 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)
# Now that we know the file has been fully saved to disk move it into place.
os.rename(temp_file_path, file_path)
filesize = round(os.path.getsize(file_path) / 1024)
insert_dossier_attaches(request, nodossier, filename, '%s Ko' % str(filesize), logged_in.upper())
message = 'Le fichier est téléchargé avec succès.'
return {
'page_title': u"Télécharger un document",
'message': message,
'url': url,
'nodossier': nodossier,
'dossier': dossier,
'docs_attaches': docs_attaches,
'docs_url': request.static_url(request.registry.settings['mondumas.devfac_url']),
}