ajout Doc techniques dans dossier_view.pt et articles.pt

This commit is contained in:
2020-11-20 09:47:20 +01:00
parent dab24387a2
commit d03e90b7b8
26 changed files with 665 additions and 198 deletions

View File

@@ -96,6 +96,8 @@ def dossier_view(request):
nodossier = request.matchdict['nodossier']
societe = nodossier[0:2]
logged_in = request.authenticated_userid.upper()
url = request.route_url('dossier_view', nodossier=nodossier)
# lire son niveau d'accès
member = get_member_by_id(request, logged_in)
access = member.access
@@ -108,12 +110,14 @@ def dossier_view(request):
return HTTPFound(location=request.route_url("dossier_lookup"))
# lire tous le suivi du dossier
details = get_dossier_rdv_by_no(request, nodossier, '0')
# lire toutes les dossiers du chantiers
# lire toutes les devis et factures du chantier
documents = get_documents_byChantier(request, nodossier)
# 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, '')
docs_attaches = get_docs_attaches(request, nodossier, 0, 0, 'CLT', '')
# lire tous les documents techniques
docs_techniques = get_docs_attaches(request, nodossier, 0, 0, 'FRN', '')
if nodossier.startswith('PL'):
# lire rapport de rdf
rapports = get_rapport_by_no(request, nodossier, '')
@@ -121,9 +125,15 @@ def dossier_view(request):
rapports = []
# select background color according to society
bg_color = "bg-%s" % societe
if 'form.close' in request.params:
update_dossier_cloture(request, nodossier, logged_in)
request.session.flash(u"Le dossier a été cloturé avec succès.", 'success')
return HTTPFound(location=request.route_url('dossier_view', nodossier=nodossier))
return {
'page_title': "Dossier : %s" % (nodossier),
'url': url,
'nodossier': nodossier,
'dossier': dossier,
'details': details,
@@ -131,6 +141,7 @@ def dossier_view(request):
'documents': documents,
'similaires': similaires,
'docs_attaches': docs_attaches,
'docs_techniques': docs_techniques,
'docs_url': request.static_url(request.registry.settings['mondumas.devfac_url']),
'bg_color': bg_color,
'access': access,
@@ -264,10 +275,16 @@ def dossier_edit(request):
def upload_doc(request):
logged_in = request.authenticated_userid.upper()
nodossier = request.matchdict['nodossier']
origine = request.matchdict['origine']
if origine == 'CLT':
page_title = "Télécharger un document attaché"
else:
page_title = "Télécharger un document technique"
societe = nodossier[0:2]
nochantier = nodossier[3:]
url = request.route_url("upload_doc", nodossier=nodossier)
url = request.route_url("upload_doc", nodossier=nodossier, origine=origine)
message = ""
dossier = get_dossier_by_no(request, nodossier)
@@ -276,7 +293,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, nodossier, 0, 0, '')
docs_attaches = get_docs_attaches(request, nodossier, 0, 0, origine, '')
if 'form.submitted' in request.params:
# récupère le fichier download dans le dossier /tmp
@@ -290,14 +307,14 @@ def upload_doc(request):
# fabriquer le nom du document
filename = '%s-DD%s-%s' % (societe, nochantier, input_name)
tempFile2Dossier(request, societe, nochantier, '0', 0, temp_file, filename, logged_in)
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')
# lire tous les documents attachés
docs_attaches = get_docs_attaches(request, nodossier, 0, 0, '')
docs_attaches = get_docs_attaches(request, nodossier, 0, 0, origine, '')
return {
'page_title': "Télécharger un document",
'page_title': page_title,
'url': url,
'nodossier': nodossier,
'dossier': dossier,
@@ -356,7 +373,7 @@ 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, temp_file, filename, logged_in)
tempFile2Dossier(request, societe, nochantier, norapport, nosection, 'CLT', temp_file, filename, logged_in)
request.session.flash('%s : Ce fichier est téléchargé avec succès.' % input_name, 'success')
@@ -594,7 +611,7 @@ def rdf_view(request):
'margin-bottom': '3cm',
'margin-left': '2cm',
'footer-font-size':'7',
'footer-right': '[page] of [topage]',
'footer-right': '[page] / [topage]',
}
# créer le répertoire du rapport s'il n'existe pas encore
@@ -603,6 +620,10 @@ def rdf_view(request):
# générer le rapport en PDF
filename = "PL-DD%s-rapport_RDF_no_%s.pdf" % (str(rapport.nochantier), norapport)
dest = "mondumas/static/DEVFAC/DOCS_ATTACHES/PL/%s/%s" % (str(rapport.nochantier), filename)
# supprimer le fichier s'il existe déjà
if os.path.exists(dest):
os.remove(dest)
# developpement ou production
if request.registry.settings["mail.username"] == "sas.dumas@orange.fr":
@@ -613,7 +634,7 @@ def rdf_view(request):
config = pdfkit.configuration(wkhtmltopdf="C:\\Program Files\\wkhtmltopdf\\bin\\wkhtmltopdf.exe")
pdfkit.from_url(origin, dest, configuration=config, options=options)
insert_dossier_attaches(request, nodossier, 0, 0, filename, '160 Ko', logged_in)
insert_dossier_attaches(request, nodossier, 0, 0, 'CLT', filename, '160 Ko', logged_in)
# si generation pdf, maj de la date du rapport
new_values = {}
new_values['date_rapport'] = date.today()
@@ -725,7 +746,7 @@ def rdf_bill(request):
return HTTPFound(location=request.route_url('rdf_view', no_id=norapport))
# lire tous les articles RDF
articles = get_articles_by_fam(request, 'RDF')
articles = get_articles_rdf(request)
article = 'RDF1'
if 'form.submitted' in request.params:
@@ -870,7 +891,7 @@ def demandes(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, temp_file_path, filename, 'EMAIL')
tempFile2Dossier(request, societe, nochantier, '0', 0, 'CLT', temp_file_path, filename, 'EMAIL')
traite = 1
return traite
@@ -890,7 +911,7 @@ def demandes(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, temp_file_path, filename, 'EMAIL')
tempFile2Dossier(request, societe, dem_devis.NO_ID, '0', 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
@@ -908,7 +929,7 @@ def demandes(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, temp_file_path, filename, 'EMAIL')
tempFile2Dossier(request, societe, dem_devis.NO_ID, '0', 0, 'CLT', temp_file_path, filename, 'EMAIL')
# insérer une ligne de suivi ANNULATION
insert_suivi(request, nodossier, '!!MISSION ANNULEE PAR DOMUS')
# log de nuit
@@ -1083,7 +1104,7 @@ def downloadFile2Temp(input_file, input_name, ext_allowed):
return temp_file_path
def tempFile2Dossier(request, societe, nochantier, norapport, nosection, temp_file, filename, logged_in):
def tempFile2Dossier(request, societe, nochantier, norapport, nosection, 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)
@@ -1100,7 +1121,7 @@ def tempFile2Dossier(request, societe, nochantier, norapport, nosection, temp_fi
shutil.move(temp_file, filepath)
filesize = round(os.path.getsize(filepath) / 1024)
insert_dossier_attaches(request, '%s-%s' % (societe, nochantier), norapport, nosection, filename, '%s Ko' % str(filesize), logged_in)
insert_dossier_attaches(request, '%s-%s' % (societe, nochantier), norapport, nosection, origine, filename, '%s Ko' % str(filesize), logged_in)
def download_pdf_to_tmp(email_message):
# downloading attachments