From c0a7f5bd9bbbe228aafc5a443e8be17d645f78e8 Mon Sep 17 00:00:00 2001 From: Phuoc CAO Date: Tue, 3 Aug 2021 18:00:34 +0200 Subject: [PATCH] ajout saisie de notes dans dossier --- mondumas/models/dossier.py | 37 +++++++++++++++- mondumas/routes.py | 3 +- mondumas/templates/devis/devis_ligne.pt | 9 ++-- mondumas/templates/dossier/dossier_view.pt | 50 +++++++++++++++++++++- mondumas/templates/dossier/note_edit.pt | 38 ++++++++++++++++ mondumas/views/dossier.py | 42 +++++++++++++++++- 6 files changed, 167 insertions(+), 12 deletions(-) create mode 100644 mondumas/templates/dossier/note_edit.pt diff --git a/mondumas/models/dossier.py b/mondumas/models/dossier.py index d775a83..1497858 100644 --- a/mondumas/models/dossier.py +++ b/mondumas/models/dossier.py @@ -340,7 +340,7 @@ def get_status_by_id(request, code): return results def get_motifs(request): - query = """SELECT * FROM p_motfs;""" + query = """SELECT * FROM p_motifs;""" results = request.dbsession.execute(query,).fetchall() return results @@ -348,4 +348,37 @@ def get_factures_en_att(request, societe): query = """SELECT f.date, LPAD(f.no_id,6,'0') AS numero, f.nomcli, CONCAT(f.c_nom,'; ',f.c_adr,'; ',f.c_ville) AS chantier, f.totalht AS montant, f.status, s.libelle, f.nosin, f.nopol, f.usermaj FROM facture f JOIN p_statuts s ON f.STATUS = s.CODE WHERE f.societe=:societe AND f.STATUS < 8 ORDER BY f.societe, f.STATUS, f.nomcli;""" results = request.dbsession.execute(query, {'societe': societe}).fetchall() - return results \ No newline at end of file + return results + +def insert_dem_note(request, nodossier, type_note, logged_in): + societe = nodossier[0:2] + nochantier = int(nodossier[3:]) + # une note ou croquis + query = "INSERT INTO dem_notes (societe, nochantier, type_note, usermaj) VALUES (:societe, :nochantier, :type_note, :logged_in);" + execute_query(request, query, {'societe': societe, 'nochantier': nochantier, 'type_note': type_note, 'logged_in': logged_in}) + +def get_dem_notes(request, nodossier, noligne): + societe = nodossier[0:2] + nochantier = int(nodossier[3:]) + + if noligne == '0': + query = "SELECT societe, nochantier, noligne, type_note, libelle FROM dem_notes WHERE societe = :societe AND nochantier = :nochantier ORDER BY libelle;" + results = request.dbsession.execute(query, {'societe': societe, 'nochantier': nochantier, 'noligne': noligne}).fetchall() + else: + query = "SELECT * FROM dem_notes WHERE societe = :societe AND nochantier = :nochantier AND noligne = :noligne;" + results = request.dbsession.execute(query, {'societe': societe, 'nochantier': nochantier, 'noligne': noligne}).first() + return results + +def delete_dem_note(request, nodossier, noligne): + societe = nodossier[0:2] + nochantier = int(nodossier[3:]) + # une note ou croquis + query = "DELETE FROM dem_notes WHERE societe=:societe AND nochantier=:nochantier AND noligne=:noligne;" + execute_query(request, query, {'societe': societe, 'nochantier': nochantier, 'noligne': noligne}) + +def update_dem_note(request, nodossier, noligne, notes): + societe = nodossier[0:2] + nochantier = int(nodossier[3:]) + # une note ou croquis + query = "UPDATE dem_notes SET notes=:notes WHERE societe=:societe AND nochantier=:nochantier AND noligne=:noligne;" + execute_query(request, query, {'societe': societe, 'nochantier': nochantier, 'noligne': noligne, 'notes': notes}) diff --git a/mondumas/routes.py b/mondumas/routes.py index 72cfa9d..8a68211 100644 --- a/mondumas/routes.py +++ b/mondumas/routes.py @@ -36,12 +36,14 @@ def includeme(config): # dossier config.add_route('demandes','/demandes') config.add_route('demandes_dl','/demandes_dl/{societe}/{email_from}/{email_uid}') + config.add_route('dem_devis','/dem_devis') config.add_route('delete_img','/delete_img/{nodossier}/{norapport}/{origine}/{nomfic}') config.add_route('dossier_edit', '/dossier_edit/{nodossier}') config.add_route('dossier_lookup', '/dossier_lookup') config.add_route('dossier_select', '/dossier_select/{date}') config.add_route('dossier_selected', '/dossier_selected/{goto}/{date}/{nodossier}') config.add_route('dossier_view', '/dossier_view/{nodossier}') + config.add_route('note_edit','/note_edit/{nodossier}/{noligne}') config.add_route('rdf_bill','/rdf_bill/{no_id}') config.add_route('rdf_client','/rdf_client/{no_id}') config.add_route('rdf_edit','/rdf_edit/{nodossier}/{date_inter}') @@ -53,7 +55,6 @@ def includeme(config): config.add_route('upload_doc', '/upload_doc/{nodossier}/{origine}') config.add_route('upload_img', '/upload_img/{norapport}/{origine}') config.add_route('upload_om', '/upload_om') - config.add_route('dem_devis','/dem_devis') # parametres config.add_route('parametres', '/parametres') config.add_route('article_edit', '/article_edit/{ref}') diff --git a/mondumas/templates/devis/devis_ligne.pt b/mondumas/templates/devis/devis_ligne.pt index f0cd1ee..b1ad0a6 100644 --- a/mondumas/templates/devis/devis_ligne.pt +++ b/mondumas/templates/devis/devis_ligne.pt @@ -14,12 +14,9 @@
- - - + + +
diff --git a/mondumas/templates/dossier/dossier_view.pt b/mondumas/templates/dossier/dossier_view.pt index 6522792..4487a13 100644 --- a/mondumas/templates/dossier/dossier_view.pt +++ b/mondumas/templates/dossier/dossier_view.pt @@ -282,6 +282,24 @@ ${detail.usermaj} + +

NOTES et CROQUIS

+

+ Notes / Croquis +

+
+ +
@@ -345,8 +363,8 @@
@@ -361,6 +379,34 @@
+ + diff --git a/mondumas/templates/dossier/note_edit.pt b/mondumas/templates/dossier/note_edit.pt new file mode 100644 index 0000000..98aa418 --- /dev/null +++ b/mondumas/templates/dossier/note_edit.pt @@ -0,0 +1,38 @@ + +
+ +
+ +
+
+ +
+ + +
+

Modifié le : ${note.modif_le.strftime('%d-%m-%Y')} par ${note.usermaj} +

+
+ +  Annuler + + +
+
+
+
+
+ + + +
+ diff --git a/mondumas/views/dossier.py b/mondumas/views/dossier.py index f6883bb..995b8b7 100644 --- a/mondumas/views/dossier.py +++ b/mondumas/views/dossier.py @@ -128,6 +128,8 @@ def dossier_view(request): status = get_status_by_id(request, '') motifs = get_motifs(request) + # lire les notes du dossier + dem_notes = get_dem_notes(request, nodossier, '0') if 'form.close' in request.params: status = request.params["status"] @@ -144,6 +146,13 @@ def dossier_view(request): request.session.flash(u"Le dossier a été cloturé avec succès.", 'success') return HTTPFound(url) + if 'form.addNote' in request.params: + type_note = request.params["type_note"] + insert_dem_note(request, nodossier, type_note, logged_in) + + request.session.flash(u"Le dossier a été cloturé avec succès.", 'success') + return HTTPFound(url) + return { 'page_title': "Dossier : %s" % (nodossier), 'url': url, @@ -161,6 +170,8 @@ def dossier_view(request): 'access': access, 'status': status, 'motifs': motifs, + 'motif': '', + 'dem_notes': dem_notes, } @view_config(route_name='dossier_selected', permission='view') @@ -1578,4 +1589,33 @@ def dem_devis(request): 'dt_data': json.dumps(liste), 'societe': societe, 'order_option': order_option, - } \ No newline at end of file + } + +@view_config(route_name='note_edit', renderer='../templates/dossier/note_edit.pt', permission='view') +def note_edit(request): + nodossier = request.matchdict['nodossier'] + noligne = request.matchdict['noligne'] + url = request.route_url('note_edit', nodossier=nodossier, noligne=noligne) + + message = "" + note = get_dem_notes(request, nodossier, noligne) + + if 'form.submitted' in request.params: + notes = request.params["notes"] + + update_dem_note(request, nodossier, noligne, notes) + request.session.flash("'%s' a été modifiée avec succès." % note.libelle, 'success') + return HTTPFound(location=request.route_url('dossier_view', nodossier=nodossier)) + + if 'form.deleted' in request.params: + delete_dem_note(request, nodossier, noligne) + request.session.flash("'%s' a été supprimée avec succès." % note.libelle, 'success') + return HTTPFound(location=request.route_url('dossier_view', nodossier=nodossier)) + + return { + 'page_title': note.libelle, + 'url': url, + 'message': message, + 'nodossier': nodossier, + 'note': note, + }