ajout saisie de notes dans dossier
This commit is contained in:
@@ -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
|
||||
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})
|
||||
|
||||
@@ -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}')
|
||||
|
||||
@@ -14,12 +14,9 @@
|
||||
<div class="form-group">
|
||||
<label class="control-label col-sm-2">Type de texte</label>
|
||||
<div class="col-sm-10">
|
||||
<label class="radio-inline"><input type="radio" name="ref" value="T1"
|
||||
tal:attributes="checked ligne.ref=='T1'">Titre</label>
|
||||
<label class="radio-inline"><input type="radio" name="ref" value="T2"
|
||||
tal:attributes="checked ligne.ref=='T2'">Sous-titre</label>
|
||||
<label class="radio-inline"><input type="radio" name="ref" value="TX"
|
||||
tal:attributes="checked ligne.ref=='TX'">Texte libre</label>
|
||||
<label class="radio-inline"><input type="radio" name="ref" value="T1" checked>Titre</label>
|
||||
<label class="radio-inline"><input type="radio" name="ref" value="T2">Sous-titre</label>
|
||||
<label class="radio-inline"><input type="radio" name="ref" value="TX">Texte libre</label>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
|
||||
@@ -282,6 +282,24 @@
|
||||
<td class="text-center">${detail.usermaj}</td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
<h3 class="text-center">NOTES et CROQUIS</h3>
|
||||
<p>
|
||||
<a class="btn btn-success" role="button" href="#"
|
||||
data-toggle="modal" data-target="#addNote"><span class="glyphicon glyphicon-plus"></span> Notes / Croquis</a>
|
||||
</p>
|
||||
<br />
|
||||
<div class="text-center" tal:repeat="item dem_notes">
|
||||
<div class="col-sm-3">
|
||||
<a href="${request.application_url}/note_edit/${nodossier}/${item.noligne}" tal:condition="item.type_note=='NOTE'">
|
||||
<span class="glyphicon glyphicon-text-size logo-primary"></span>
|
||||
<h4>${item.libelle}</h4></a>
|
||||
<a href="${request.application_url}/croquis_edit/${nodossier}/${item.noligne}" tal:condition="item.type_note=='CROQUIS'">
|
||||
<span class="glyphicon glyphicon-picture logo-primary"></span>
|
||||
<h4>${item.libelle}</h4></a>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
<!-- PANEL RDF -->
|
||||
<div id="tab_rdf" class="tab-pane fade">
|
||||
@@ -345,8 +363,8 @@
|
||||
<div class="col-xs-8">
|
||||
<select class="form-control" id="motif" name="motif">
|
||||
<option selected> </option>
|
||||
<div tal:repeat="item motif">
|
||||
<option>${item.code} | ${item.libelle}</option>
|
||||
<div tal:repeat="item motifs">
|
||||
<option>${item.libelle}</option>
|
||||
</div>
|
||||
</select>
|
||||
</div>
|
||||
@@ -361,6 +379,34 @@
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<!-- Modal : add NOTES et CROQUIS -->
|
||||
<div class="modal fade" id="addNote" role="dialog" aria-labelledby="addNoteLabel" aria-hidden="true">
|
||||
<div class="modal-dialog">
|
||||
<div class="modal-content">
|
||||
<div class="modal-header">
|
||||
<button type="button" class="close" data-dismiss="modal" aria-hidden="true">×</button>
|
||||
<h4 class="modal-title">Ajouter une note ou un croquis</h4>
|
||||
</div>
|
||||
<div class="modal-body">
|
||||
<!-- The form is placed inside the body of modal -->
|
||||
<form id="add_justif-form" class="form-horizontal" action="${url}" method="post">
|
||||
<div class="form-group">
|
||||
<label class="control-label col-sm-6">Voulez-vous ajouter</label>
|
||||
<div class="col-sm-6">
|
||||
<label class="radio-inline"><input type="radio" name="type_note" value="NOTE" checked>une note</label>
|
||||
<label class="radio-inline"><input type="radio" name="type_note" value="CROQUIS">un croquis</label>
|
||||
</div>
|
||||
</div>
|
||||
<br>
|
||||
<div class="modal-footer">
|
||||
<button type="button" class="btn btn-default" data-dismiss="modal">Annuler</button>
|
||||
<button type="submit" class="btn btn-warning" name="form.addNote">Ajouter</button>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</metal:block>
|
||||
|
||||
38
mondumas/templates/dossier/note_edit.pt
Normal file
38
mondumas/templates/dossier/note_edit.pt
Normal file
@@ -0,0 +1,38 @@
|
||||
<metal:block use-macro="main_template">
|
||||
<div metal:fill-slot="content">
|
||||
|
||||
<div class="alert alert-danger" tal:condition="message" tal:content="message" />
|
||||
|
||||
<div class="row">
|
||||
<form id="text_edit-form" action="${url}" method="post">
|
||||
|
||||
<div class="form-group">
|
||||
<label class="control-label" for="text-text">Tapez ou dictez le texte :</label>
|
||||
<textarea class="form-control monospace-font" rows="30" cols="40" id="notes" name="notes">${note.notes}</textarea>
|
||||
</div>
|
||||
<p>Modifié le : ${note.modif_le.strftime('%d-%m-%Y')} par ${note.usermaj}
|
||||
</p>
|
||||
<div class="form-group">
|
||||
<a href="${request.application_url}/dossier_view/${nodossier}" class="btn btn-default" role="button">
|
||||
<span class="glyphicon glyphicon-chevron-left"></span> Annuler</a>
|
||||
<button class="btn btn-primary" type="submit" name="form.submitted">
|
||||
<span class="glyphicon glyphicon-ok"></span> Enregistrer</button>
|
||||
<button class="btn btn-warning" type="submit" name="form.deleted">
|
||||
<span class="glyphicon glyphicon-remove"></span> Supprimer</button>
|
||||
</div>
|
||||
</form>
|
||||
<br />
|
||||
<br />
|
||||
</div> <!-- row -->
|
||||
|
||||
<script>
|
||||
$(document).ready(function() {
|
||||
$('#text_edit-form').formValidation();
|
||||
$('form input').on('keypress', function(e) {
|
||||
return e.which !== 13;
|
||||
});
|
||||
});
|
||||
</script>
|
||||
|
||||
</div>
|
||||
</metal:block>
|
||||
@@ -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,
|
||||
}
|
||||
}
|
||||
|
||||
@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,
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user