ajout de rdf_view.pt

This commit is contained in:
2019-03-16 15:53:44 +01:00
parent 58755c979d
commit fbbb087fb9
9 changed files with 562 additions and 16 deletions

View File

@@ -321,6 +321,72 @@ def upload_doc(request):
'docs_url': request.static_url(request.registry.settings['mondumas.devfac_url']),
}
@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:]
url = request.route_url("upload_img", 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 son nom
input_name = request.POST['filename'].filename
# récupère son extension
input_ext = input_name.split('.')[-1]
# controler l'extension
ext_allowed = ['jpeg','jpg','png','pdf']
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)
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)
return {
'page_title': u"Télécharger une photo",
'url': url,
'nodossier': nodossier,
'dossier': dossier,
'docs_attaches': docs_attaches,
'docs_url': request.static_url(request.registry.settings['mondumas.devfac_url']),
}
@view_config(route_name='rdf_edit', renderer='../templates/dossier/rdf_edit.pt', permission='view')
def rdf_edit(request):
logged_in = request.authenticated_userid.upper()
@@ -423,3 +489,43 @@ def rdf_edit(request):
'voisins':voisins,
}
@view_config(route_name='rdf_list', renderer='../templates/dossier/rdf_list.pt', permission='view')
def rdf_list(request):
# lire les rapports de RDF
items = get_rapport_rdf(request)
# construire la liste
liste=[]
for item in items:
if item.date_rapport :
date_rapport = item.date_rapport.strftime('%d-%m-%Y')
else:
date_rapport = ''
d = (item.nochantier, item.date_inter.strftime('%d-%m-%Y'), '', '%s %s' % (item.C_QUALITE, item.C_NOM), item.NOMCLI, item.NOSIN,
item.auteur_code, item.no_id)
liste.append(d)
return {
'page_title': u'Liste des rapports de RDF',
'dt_data': json.dumps(liste),
}
@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']
# lire le rapport
rapport = get_rapport_by_no_id(request, no_id)
url = request.route_url('rdf_view', no_id=no_id)
nodossier = 'PL-' + str(rapport.nochantier)
return {
'page_title': "Rapport de RDF : %s du %s" % (nodossier, rapport.date_inter.strftime('%d-%m-%Y')),
'url': url,
'logged_in': logged_in,
'rapport': rapport,
'nodossier': nodossier,
}