ajout de rdf_view.pt + upload_img.pt
This commit is contained in:
@@ -100,7 +100,7 @@ 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, 'DOCS_ATTACHES', nodossier)
|
||||
docs_attaches = get_docs_attaches(request, nodossier)
|
||||
if nodossier.startswith('PL'):
|
||||
# lire rapport de rdf
|
||||
rapports = get_rapport_by_no(request, nodossier, '')
|
||||
@@ -271,7 +271,7 @@ def upload_doc(request):
|
||||
return HTTPFound(location=request.route_url("dossier_lookup"))
|
||||
|
||||
# lire tous les documents attachés
|
||||
docs_attaches = get_docs_attaches(request, 'DOCS_ATTACHES', nodossier)
|
||||
docs_attaches = get_docs_attaches(request, nodossier)
|
||||
|
||||
if 'form.submitted' in request.params:
|
||||
# récupère le fichier lui-même
|
||||
@@ -288,29 +288,39 @@ def upload_doc(request):
|
||||
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)
|
||||
# créer le répertoire du chantier s'il n'existe pas encore
|
||||
path = '%s/%s/%s' % (request.registry.settings['mondumas.devfac_dir'],societe,nochantier)
|
||||
try:
|
||||
os.mkdir(path)
|
||||
except OSError:
|
||||
pass # ignorer erreor si déjà créé
|
||||
finally:
|
||||
file_path = os.path.join(path, filename)
|
||||
# We first write to a temporary file to prevent incomplete files
|
||||
temp_file_path = file_path + '~'
|
||||
|
||||
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)
|
||||
# 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 < 2 Mo
|
||||
filesize = round(os.path.getsize(temp_file_path) / 1024)
|
||||
if filesize > 2048 :
|
||||
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.
|
||||
try:
|
||||
os.rename(temp_file_path, file_path)
|
||||
except OSError:
|
||||
os.remove(temp_file_path)
|
||||
request.session.flash('%s : Ce fichier existe déjà dans le rapport.' % input_name, 'danger')
|
||||
else:
|
||||
insert_dossier_attaches(request, nodossier, 0, 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, nodossier)
|
||||
|
||||
return {
|
||||
'page_title': u"Télécharger un document",
|
||||
@@ -324,20 +334,20 @@ def upload_doc(request):
|
||||
@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:]
|
||||
norapport = request.matchdict['norapport']
|
||||
|
||||
url = request.route_url("upload_img", nodossier=nodossier)
|
||||
url = request.route_url("upload_img", norapport=norapport)
|
||||
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"))
|
||||
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"))
|
||||
|
||||
# lire tous les documents attachés
|
||||
docs_attaches = get_docs_attaches(request, 'DOCS_ATTACHES', nodossier)
|
||||
societe = rapport.societe
|
||||
nochantier = rapport.nochantier
|
||||
# lire tous les photos attachées
|
||||
photos = get_photos(request, nochantier, norapport)
|
||||
|
||||
if 'form.submitted' in request.params:
|
||||
# récupère le fichier lui-même
|
||||
@@ -345,45 +355,57 @@ def upload_img(request):
|
||||
# récupère son nom
|
||||
input_name = request.POST['filename'].filename
|
||||
# récupère son extension
|
||||
input_ext = input_name.split('.')[-1]
|
||||
|
||||
input_ext = input_name.split('.')[-1]
|
||||
|
||||
# controler l'extension
|
||||
ext_allowed = ['jpeg','jpg','png','pdf']
|
||||
ext_allowed = ['jpeg','jpg','png']
|
||||
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)
|
||||
# récupère le nom du fichier et ajouter le no de rapport
|
||||
filename = '%s-RDF%s-%s' % (societe, norapport, 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)
|
||||
# créer le répertoire du chantier s'il n'existe pas encore
|
||||
path = '%s/%s/%s/%s' % (request.registry.settings['mondumas.devfac_dir'], societe, nochantier, norapport)
|
||||
try:
|
||||
os.makedirs(path)
|
||||
except OSError:
|
||||
pass # ignorer erreor si déjà créé
|
||||
finally:
|
||||
file_path = os.path.join('%s/%s' % (path, 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 < 2 Mo
|
||||
filesize = round(os.path.getsize(temp_file_path) / 1024)
|
||||
if filesize > 2048 :
|
||||
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.
|
||||
try:
|
||||
os.rename(temp_file_path, file_path)
|
||||
except OSError:
|
||||
os.remove(temp_file_path)
|
||||
request.session.flash('%s : Ce fichier existe déjà dans le rapport.' % input_name, 'danger')
|
||||
else:
|
||||
insert_dossier_attaches(request, 'PL-%s' % nochantier, norapport, 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 photos attachées
|
||||
photos = get_photos(request, nochantier, norapport)
|
||||
|
||||
return {
|
||||
'page_title': u"Télécharger une photo",
|
||||
'url': url,
|
||||
'nodossier': nodossier,
|
||||
'dossier': dossier,
|
||||
'docs_attaches': docs_attaches,
|
||||
'nochantier': nochantier,
|
||||
'norapport': norapport,
|
||||
'rapport': rapport,
|
||||
'photos': photos,
|
||||
'docs_url': request.static_url(request.registry.settings['mondumas.devfac_url']),
|
||||
}
|
||||
|
||||
@@ -514,18 +536,25 @@ def rdf_list(request):
|
||||
@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']
|
||||
norapport = request.matchdict['no_id']
|
||||
url = request.route_url('rdf_view', no_id=norapport)
|
||||
|
||||
# lire le rapport
|
||||
rapport = get_rapport_by_no_id(request, no_id)
|
||||
url = request.route_url('rdf_view', no_id=no_id)
|
||||
rapport = get_rapport_by_no_id(request, norapport)
|
||||
nodossier = 'PL-' + str(rapport.nochantier)
|
||||
|
||||
# lire tous les photos attachées
|
||||
photos = get_photos(request, rapport.nochantier, norapport)
|
||||
|
||||
return {
|
||||
'page_title': "Rapport de RDF : %s du %s" % (nodossier, rapport.date_inter.strftime('%d-%m-%Y')),
|
||||
'page_title': "Dossier %s : Rapport no %s du %s" % (nodossier, norapport, rapport.date_inter.strftime('%d-%m-%Y')),
|
||||
'url': url,
|
||||
'logged_in': logged_in,
|
||||
'rapport': rapport,
|
||||
'nodossier': nodossier,
|
||||
'nochantier': rapport.nochantier,
|
||||
'norapport': norapport,
|
||||
'photos': photos,
|
||||
'docs_url': request.static_url(request.registry.settings['mondumas.devfac_url']),
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user