CONNEXIONS
diff --git a/mondumas/templates/parametres/rdf_cause_edit.pt b/mondumas/templates/parametres/rdf_cause_edit.pt
new file mode 100644
index 0000000..45331c3
--- /dev/null
+++ b/mondumas/templates/parametres/rdf_cause_edit.pt
@@ -0,0 +1,72 @@
+
+
+
diff --git a/mondumas/templates/parametres/rdf_causes_list.pt b/mondumas/templates/parametres/rdf_causes_list.pt
new file mode 100644
index 0000000..9214cb3
--- /dev/null
+++ b/mondumas/templates/parametres/rdf_causes_list.pt
@@ -0,0 +1,52 @@
+
+
+
+
+
diff --git a/mondumas/templates/parametres/users_list.pt b/mondumas/templates/parametres/users_list.pt
index 034f51c..555c96c 100644
--- a/mondumas/templates/parametres/users_list.pt
+++ b/mondumas/templates/parametres/users_list.pt
@@ -15,7 +15,7 @@
Nom, Prénom |
Email |
Agenda |
-
Rôle |
+
Fonction |
Etat |
@@ -52,7 +52,13 @@
return '';
}
},
- }
+ },
+ { "targets": 4,
+ "render": function (data, type, row, meta) {
+ // ajouter un link vers le login
+ return '
' + data + '';
+ },
+ },
]
});
diff --git a/mondumas/views/agenda.py b/mondumas/views/agenda.py
index 2c81e2c..c1e9220 100644
--- a/mondumas/views/agenda.py
+++ b/mondumas/views/agenda.py
@@ -16,10 +16,9 @@ from datetime import *
import hashlib
from sqlalchemy.exc import DBAPIError
-from ..security import groupfinder
-
import json
+from ..models.default import *
from ..models.agenda import *
from ..models.dossier import *
@@ -92,7 +91,7 @@ def agenda(request):
message = ''
# récupérer les paramètres de l'appel de la view
datePlan = request.matchdict['date']
- logged_in = request.authenticated_userid
+ logged_in = request.authenticated_userid.upper()
if datePlan == 'today':
datePlan = date.today().strftime('%Y-%m-%d')
@@ -114,12 +113,14 @@ def agenda(request):
# liste des users avec agenda
agendas = get_users_agenda(request, '')
- # le user a-t-il un agenda ?
- agenda = 'JMD'
- for item in agendas:
- if item.CD_UTI == logged_in.upper():
- agenda = item.CD_UTI
-
+ # le user est-il un commercial ?
+ member = get_member_info(request, logged_in)
+ if member['fonction'] == 'Commercial':
+ agenda = logged_in
+ isCommercial = True
+ else:
+ agenda = 'S'
+ isCommercial = False
# prendre en compte les paramètres de saisie
if 'agenda' in request.params:
@@ -160,16 +161,17 @@ def agenda(request):
'allDay': False,
'color': color,
'textColor': 'Black',
- 'url': '/rdv_edit/%s/%s' % (row.nodossier, row.nolig),
+ 'url': '/dossier_view/%s' % (row.nodossier),
}
events.append(json_event)
return {
- 'page_title': 'Agenda',
+ 'page_title': 'Agenda de %s' % agenda,
'fullcalendar_events': json.dumps(events),
'agendas': agendas,
'agenda': agenda,
+ 'isCommercial': isCommercial,
'types_rdv': types_rdv,
'type_rdv': type_rdv,
'message': message,
diff --git a/mondumas/views/default.py b/mondumas/views/default.py
index d2f0190..0034fe4 100644
--- a/mondumas/views/default.py
+++ b/mondumas/views/default.py
@@ -173,8 +173,8 @@ def login(request):
referrer = '/' # never use the login form itself as came_from
came_from = request.params.get('came_from', referrer)
- password = u''
- message = u''
+ password = ''
+ message = ''
if 'form.submitted' in request.params:
login = request.params['login']
password = request.params['password']
diff --git a/mondumas/views/dossier.py b/mondumas/views/dossier.py
index 167e470..a09651b 100644
--- a/mondumas/views/dossier.py
+++ b/mondumas/views/dossier.py
@@ -85,6 +85,7 @@ def dossier_lookup(request):
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)
@@ -100,6 +101,9 @@ def dossier_view(request):
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)
+ if nodossier.startswith('PL'):
+ # lire rapport de rdf
+ rapport = get_rapport_by_no(request, nodossier)
# select background color according to society
bg_color = "bg-%s" % societe
@@ -108,6 +112,7 @@ def dossier_view(request):
'nodossier': nodossier,
'dossier': dossier,
'details': details,
+ 'rapport': rapport,
'documents': documents,
'similaires': similaires,
'docs_attaches': docs_attaches,
@@ -167,7 +172,7 @@ def dossier_selected(request):
@view_config(route_name='suivi_edit', renderer='../templates/dossier/suivi_edit.pt', permission='view')
def suivi_edit(request):
- logged_in = request.authenticated_userid
+ logged_in = request.authenticated_userid.upper()
nodossier = request.matchdict['nodossier']
nolig = request.matchdict['nolig']
url = request.route_url("suivi_edit", nodossier=nodossier, nolig=nolig)
@@ -177,7 +182,7 @@ def suivi_edit(request):
# nouveau
suivi = {}
suivi['COMMENT'] = ''
- suivi['USERMAJ'] = logged_in.upper()
+ suivi['USERMAJ'] = logged_in
suivi['DATEMAJ'] = datetime.now()
page_title= 'Nouveau suivi'
else:
@@ -196,7 +201,7 @@ def suivi_edit(request):
new_values[param] = request.params[param]
if new_values:
- new_values['USERMAJ'] = logged_in.upper()
+ new_values['USERMAJ'] = logged_in
new_values['DATE'] = date.today()
update_suivi(request, nodossier, nolig, new_values)
@@ -250,7 +255,7 @@ def dossier_edit(request):
@view_config(route_name='upload_doc', renderer='../templates/dossier/upload_doc.pt', permission='view')
def upload_doc(request):
- logged_in = request.authenticated_userid
+ logged_in = request.authenticated_userid.upper()
nodossier = request.matchdict['nodossier']
societe = nodossier[0:2]
nochantier = nodossier[3:]
@@ -300,7 +305,7 @@ def upload_doc(request):
# 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.upper())
+ 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)
@@ -314,3 +319,43 @@ def upload_doc(request):
'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()
+ nodossier = request.matchdict['nodossier']
+ url = request.route_url('rdf_edit', nodossier=nodossier)
+
+ # lire le rapport
+ rapport = get_rapport_by_no(request, nodossier)
+ if rapport == None:
+ # si non trouvé, creer un nouveau rapport
+ insert_rapport(request, nodossier, logged_in)
+ # lire le rapport
+ rapport = get_rapport_by_no(request, nodossier)
+
+ caracteristiques = ["Maison individuelle", "Immeuble collectif", u"Copropriété", "Commerce", "Bureaux"]
+ equipements = get_rdf_causes(request, 'C01')
+ reseaux_int = get_rdf_causes(request, 'C02')
+
+ if 'form.submitted' in request.params:
+ new_values = {}
+ for param, db_value in rapport.items():
+ if param in request.params and request.params[param] != db_value:
+ new_values[param] = request.params[param]
+
+ if new_values:
+ update_rdf(request, nodossier, new_values)
+ request.session.flash(u"Le dossier a été mis à jour avec succès.", 'success')
+ return HTTPFound(location=request.route_url('dossier_view', nodossier=nodossier))
+
+ return {
+ 'page_title': u"Modifier le rapport de RDF : %s" % nodossier,
+ 'url': url,
+ 'logged_in': logged_in,
+ 'rapport': rapport,
+ 'nodossier': nodossier,
+ 'caracteristiques': caracteristiques,
+ 'equipements': equipements,
+ 'reseaux_int': reseaux_int,
+ }
+
diff --git a/mondumas/views/parametres.py b/mondumas/views/parametres.py
index 5470e38..8626728 100644
--- a/mondumas/views/parametres.py
+++ b/mondumas/views/parametres.py
@@ -1,239 +1,312 @@
-# -*- coding: utf8 -*-
-from pyramid.response import Response
-from pyramid.renderers import render, get_renderer
-from pyramid.view import (
- view_config,
- forbidden_view_config,
-)
-from pyramid.httpexceptions import (
- HTTPFound,
- HTTPNotFound,
- HTTPForbidden,
-)
-
-from pyramid_mailer.message import Message, Attachment
-from datetime import *
-import hashlib
-
-from sqlalchemy.exc import DBAPIError
-from ..security import groupfinder
-
-import json
-
-from ..models.parametres import *
-from ..models.default import *
-from ..views.default import *
-
-@view_config(route_name='parametres', renderer='../templates/parametres/parametres.pt', permission='manage')
-def parametres(request):
- logged_in = request.authenticated_userid.lower()
-
- return {
- 'page_title': u"Paramètres",
- 'logged_in': logged_in,
- }
-
-@view_config(route_name='users_list', renderer='../templates/parametres/users_list.pt', permission='manage')
-def users_list(request):
- # lire les utilisateurs
- items = get_member_by_id(request, '0')
-
- # construire la liste
- liste=[]
- for item in items:
- if item.actif == 0:
- etat = 'Inactif'
- else:
- etat = ''
-
- if item.access == 0:
- role = ''
- elif item.access == 8:
- role = 'Compta'
- elif item.access == 9:
- role = 'Admin'
- else:
- role = 'Gestion'
-
- d = (item.CD_UTI, item.NOM, item.email, item.agenda, role, etat)
- liste.append(d)
-
- return {
- 'page_title': u'Liste des utilisateurs',
- 'dt_data': json.dumps(liste),
- }
-
-@view_config(route_name='users_ua', renderer='../templates/parametres/users_ua.pt', permission='manage')
-def users_ua(request):
- # lire les utilisateurs
- items = get_member_by_id(request, '0')
-
- # construire la liste
- liste=[]
- for item in items:
- # utilisateur a au moins une connexion ?
- if item.dern_cnx_le:
- der_cnx_le = item.dern_cnx_le.strftime('%d/%m/%Y - %H:%M')
-
- d = (der_cnx_le, item.CD_UTI, item.NOM, item.ua_string)
- liste.append(d)
-
- return {
- 'page_title': u'Liste des connexions',
- 'dt_data': json.dumps(liste),
- }
-
-
-
-@view_config(route_name='user_edit', renderer='../templates/parametres/user_edit.pt', permission='manage')
-def user_edit(request):
- cd_uti = request.matchdict['cd_uti']
- url = request.route_url('user_edit', cd_uti=cd_uti)
- message = ''
- access = ["0 | Production", "5 | Gestion", u"8 | Comptabilité", "9 | Administration"]
-
- if cd_uti == '0':
- # nouveau
- individu = {}
- individu['CD_UTI'] = '0'
- individu['NOM'] = ''
- individu['email'] = ''
- individu['access'] = '0 | Production'
- individu['actif'] = 1
- individu['agenda'] = 0
- page_title= 'Nouvelle Fiche'
- else:
- # lire la fiche de l'individu
- individu = get_member_by_id(request, cd_uti)
- if not individu:
- request.session.flash(u"Utilisateur non trouvé : %s" % cd_uti, 'warning')
- return HTTPFound(location=request.route_url('users_list'))
- page_title= u"Fiche de %s" %(individu.NOM)
-
- if 'form.submitted' in request.params:
- new_values = {}
- for param, db_value in individu.items():
- if param in request.params and request.params[param] != db_value:
- new_values[param] = request.params[param]
-
- # actif coché ?
- if 'actif' in request.params:
- new_values['actif'] = 1
- else:
- new_values['actif'] = 0
- # agenda coché ?
- if 'agenda' in request.params:
- new_values['agenda'] = 1
- else:
- new_values['agenda'] = 0
-
- if new_values:
- update_membre(request, cd_uti, new_values)
- request.session.flash(u"La fiche a été mise à jour avec succès.", 'success')
- return HTTPFound(location=request.route_url('users_list'))
-
- if 'form.deleted' in request.params:
- delete_membre(request, cd_uti)
- request.session.flash(u"La fiche a été supprimée avec succès.", 'success')
- return HTTPFound(location=request.route_url('users_list'))
-
- return {
- 'page_title': page_title,
- 'url': url,
- 'individu': individu,
- 'access': access,
- 'message': message,
- }
-
-@view_config(route_name='dashboard', renderer='../templates/parametres/dashboard.pt', permission='manage')
-def dashboard(request):
-
- # lire le log de nuit
- log_nuit = get_log_nuit(request)
-
- return {
- 'page_title': u"Tableau de bord",
- 'log_nuit': log_nuit,
- }
-
-@view_config(route_name='last_emailing', renderer='../templates/parametres/last_emailing.pt', permission='manage')
-def last_emailing(request):
-
- items = get_last_emailing(request)
-
- # construire la liste
- liste=[]
- for item in items:
- if item.rdv_date:
- resa_date = item.rdv_date.strftime('%d-%m-%Y')
- else:
- resa_date = ""
-
- if item.envoye_le:
- envoye_le = item.envoye_le.strftime('%d-%m-%Y %H:%M')
- else:
- envoye_le = ""
-
- d = (resa_date, '%s-%s' % (item.societe, item.nochantier), item.nompren, item.email, item.rdv_statut, envoye_le, item.cree_le.strftime('%d-%m-%Y %H:%M'))
- liste.append(d)
-
- return {
- 'page_title': u'Liste des derniers emailing',
- 'dt_data': json.dumps(liste),
- }
-
-@view_config(route_name='orphans_de', renderer='../templates/parametres/orphans_de.pt', permission='manage')
-def orphans_de(request):
-
- societe = request.matchdict['societe']
- url = request.route_url('orphans_de', societe=societe)
- message = u''
- societes = ['PE','ME','PL','PO','CD']
- nochantier = '0'
-
- # prendre en compte les paramètres de saisie
- if 'societe' in request.params:
- societe = request.params["societe"]
- url = request.route_url('orphans_de', societe=societe)
-
- if 'form.nochantier' in request.params:
- message = ''
- nochantier = request.params['nochantier']
-
- # oui, NestedMultiDict([('form.submitted', u''), ('id0', u'271246'), ('id1', u'370929')])
- for param in request.params:
- if param[:2] == 'id':
- update_nochantier(request, societe, request.params[param], int(nochantier))
- message = u"Le numéro de chantier est mis à jour avec succès"
-
- # lire le premier devis orphelin
- devis = get_orphans_DE(request, societe)
-
- # lire tous les dossiers de ce chantier
- dossiers = get_dossiers_byChantier(request, societe, '%s;%s;%s' % (devis.C_NOM, devis.C_ADR, devis.C_VILLE))
- liste=[]
- nochantiers=[]
- # construire la liste
- for item in dossiers:
- dossier_id = '%s-%s' % (item.TYPE, item.numero)
- if item.nochantier != 0:
- nochantiers.append(item.nochantier)
- nochantier = item.nochantier
- d = (dossier_id, dossier_id, item.date.strftime('%d-%m-%Y'), item.nomcli, item.chantier, to_euro(item.montant),
- item.nosin, item.nochantier)
- liste.append(d)
-
- if len(nochantiers) == 0:
- nochantiers.append(1)
-
- return {
- 'page_title': u"DEVIS orphelins",
- 'url': url,
- 'message': message,
- 'devis': devis,
- 'dt_data': json.dumps(liste),
- 'societes': societes,
- 'societe': societe,
- 'nochantiers': nochantiers,
- 'nochantier': nochantier,
- }
+# -*- coding: utf8 -*-
+from pyramid.response import Response
+from pyramid.renderers import render, get_renderer
+from pyramid.view import (
+ view_config,
+ forbidden_view_config,
+)
+from pyramid.httpexceptions import (
+ HTTPFound,
+ HTTPNotFound,
+ HTTPForbidden,
+)
+
+from pyramid_mailer.message import Message, Attachment
+from datetime import *
+import hashlib
+
+from sqlalchemy.exc import DBAPIError
+from ..security import groupfinder
+
+import json
+
+from ..models.parametres import *
+from ..models.default import *
+from ..views.default import *
+
+@view_config(route_name='parametres', renderer='../templates/parametres/parametres.pt', permission='manage')
+def parametres(request):
+ logged_in = request.authenticated_userid.lower()
+
+ return {
+ 'page_title': u"Paramètres",
+ 'logged_in': logged_in,
+ }
+
+@view_config(route_name='users_list', renderer='../templates/parametres/users_list.pt', permission='manage')
+def users_list(request):
+ # lire les utilisateurs
+ items = get_member_by_id(request, '0')
+
+ # construire la liste
+ liste=[]
+ for item in items:
+ if item.actif == 0:
+ etat = 'Inactif'
+ else:
+ etat = ''
+
+ if item.access == 0:
+ role = 'Commercial'
+ elif item.access == 8:
+ role = 'Compta'
+ elif item.access == 9:
+ role = 'Admin'
+ else:
+ role = 'Gestion'
+
+ d = (item.CD_UTI, item.NOM, item.email, item.agenda, role, etat)
+ liste.append(d)
+
+ return {
+ 'page_title': u'Liste des utilisateurs',
+ 'dt_data': json.dumps(liste),
+ }
+
+@view_config(route_name='users_ua', renderer='../templates/parametres/users_ua.pt', permission='manage')
+def users_ua(request):
+ # lire les utilisateurs
+ items = get_member_by_id(request, '0')
+
+ # construire la liste
+ liste=[]
+ for item in items:
+ # utilisateur a au moins une connexion ?
+ if item.dern_cnx_le:
+ der_cnx_le = item.dern_cnx_le.strftime('%d/%m/%Y - %H:%M')
+
+ d = (der_cnx_le, item.CD_UTI, item.NOM, item.ua_string)
+ liste.append(d)
+
+ return {
+ 'page_title': u'Liste des connexions',
+ 'dt_data': json.dumps(liste),
+ }
+
+@view_config(route_name='connecter_a', permission='manage')
+def connecter_a(request):
+ # paramètre fourni ?
+ login = request.matchdict["login"]
+ if len(login) > 0:
+ request.session.invalidate()
+ headers = forget(request)
+ headers = remember(request, login)
+ return HTTPFound(location="/", headers=headers)
+ else:
+ return HTTPFound(location="/")
+
+
+
+@view_config(route_name='user_edit', renderer='../templates/parametres/user_edit.pt', permission='manage')
+def user_edit(request):
+ cd_uti = request.matchdict['cd_uti']
+ url = request.route_url('user_edit', cd_uti=cd_uti)
+ message = ''
+ access = ["0 | Production", "5 | Gestion", u"8 | Comptabilité", "9 | Administration"]
+
+ if cd_uti == '0':
+ # nouveau
+ individu = {}
+ individu['CD_UTI'] = '0'
+ individu['NOM'] = ''
+ individu['email'] = ''
+ individu['access'] = '0 | Production'
+ individu['actif'] = 1
+ individu['agenda'] = 0
+ page_title= 'Nouvelle Fiche'
+ else:
+ # lire la fiche de l'individu
+ individu = get_member_by_id(request, cd_uti)
+ if not individu:
+ request.session.flash(u"Utilisateur non trouvé : %s" % cd_uti, 'warning')
+ return HTTPFound(location=request.route_url('users_list'))
+ page_title= u"Fiche de %s" %(individu.NOM)
+
+ if 'form.submitted' in request.params:
+ new_values = {}
+ for param, db_value in individu.items():
+ if param in request.params and request.params[param] != db_value:
+ new_values[param] = request.params[param]
+
+ # actif coché ?
+ if 'actif' in request.params:
+ new_values['actif'] = 1
+ else:
+ new_values['actif'] = 0
+ # agenda coché ?
+ if 'agenda' in request.params:
+ new_values['agenda'] = 1
+ else:
+ new_values['agenda'] = 0
+
+ if new_values:
+ update_membre(request, cd_uti, new_values)
+ request.session.flash(u"La fiche a été mise à jour avec succès.", 'success')
+ return HTTPFound(location=request.route_url('users_list'))
+
+ if 'form.deleted' in request.params:
+ delete_membre(request, cd_uti)
+ request.session.flash(u"La fiche a été supprimée avec succès.", 'success')
+ return HTTPFound(location=request.route_url('users_list'))
+
+ return {
+ 'page_title': page_title,
+ 'url': url,
+ 'individu': individu,
+ 'access': access,
+ 'message': message,
+ }
+
+@view_config(route_name='dashboard', renderer='../templates/parametres/dashboard.pt', permission='manage')
+def dashboard(request):
+
+ # lire le log de nuit
+ log_nuit = get_log_nuit(request)
+
+ return {
+ 'page_title': u"Tableau de bord",
+ 'log_nuit': log_nuit,
+ }
+
+@view_config(route_name='last_emailing', renderer='../templates/parametres/last_emailing.pt', permission='manage')
+def last_emailing(request):
+
+ items = get_last_emailing(request)
+
+ # construire la liste
+ liste=[]
+ for item in items:
+ if item.rdv_date:
+ resa_date = item.rdv_date.strftime('%d-%m-%Y')
+ else:
+ resa_date = ""
+
+ if item.envoye_le:
+ envoye_le = item.envoye_le.strftime('%d-%m-%Y %H:%M')
+ else:
+ envoye_le = ""
+
+ d = (resa_date, '%s-%s' % (item.societe, item.nochantier), item.nompren, item.email, item.rdv_statut, envoye_le, item.cree_le.strftime('%d-%m-%Y %H:%M'))
+ liste.append(d)
+
+ return {
+ 'page_title': u'Liste des derniers emailing',
+ 'dt_data': json.dumps(liste),
+ }
+
+@view_config(route_name='orphans_de', renderer='../templates/parametres/orphans_de.pt', permission='manage')
+def orphans_de(request):
+
+ societe = request.matchdict['societe']
+ url = request.route_url('orphans_de', societe=societe)
+ message = u''
+ societes = ['PE','ME','PL','PO','CD']
+ nochantier = '0'
+
+ # prendre en compte les paramètres de saisie
+ if 'societe' in request.params:
+ societe = request.params["societe"]
+ url = request.route_url('orphans_de', societe=societe)
+
+ if 'form.nochantier' in request.params:
+ message = ''
+ nochantier = request.params['nochantier']
+
+ # oui, NestedMultiDict([('form.submitted', u''), ('id0', u'271246'), ('id1', u'370929')])
+ for param in request.params:
+ if param[:2] == 'id':
+ update_nochantier(request, societe, request.params[param], int(nochantier))
+ message = u"Le numéro de chantier est mis à jour avec succès"
+
+ # lire le premier devis orphelin
+ devis = get_orphans_DE(request, societe)
+
+ # lire tous les dossiers de ce chantier
+ dossiers = get_dossiers_byChantier(request, societe, '%s;%s;%s' % (devis.C_NOM, devis.C_ADR, devis.C_VILLE))
+ liste=[]
+ nochantiers=[]
+ # construire la liste
+ for item in dossiers:
+ dossier_id = '%s-%s' % (item.TYPE, item.numero)
+ if item.nochantier != 0:
+ nochantiers.append(item.nochantier)
+ nochantier = item.nochantier
+ d = (dossier_id, dossier_id, item.date.strftime('%d-%m-%Y'), item.nomcli, item.chantier, to_euro(item.montant),
+ item.nosin, item.nochantier)
+ liste.append(d)
+
+ if len(nochantiers) == 0:
+ nochantiers.append(1)
+
+ return {
+ 'page_title': u"DEVIS orphelins",
+ 'url': url,
+ 'message': message,
+ 'devis': devis,
+ 'dt_data': json.dumps(liste),
+ 'societes': societes,
+ 'societe': societe,
+ 'nochantiers': nochantiers,
+ 'nochantier': nochantier,
+ }
+
+@view_config(route_name='rdf_causes_list', renderer='../templates/parametres/rdf_causes_list.pt', permission='manage')
+def rdf_causes_list(request):
+
+ # lire les causes des RDF
+ items = get_rdf_causes_by_id(request, '0')
+
+ # construire la liste
+ liste=[]
+ for item in items:
+ modif_le = item.modif_le.strftime('%d/%m/%Y - %H:%M')
+ d = (item.code, item.libelle, modif_le)
+ liste.append(d)
+
+ return {
+ 'page_title': u'RDF : Liste des causes de fuite',
+ 'dt_data': json.dumps(liste),
+ }
+
+@view_config(route_name='rdf_cause_edit', renderer='../templates/parametres/rdf_cause_edit.pt', permission='view')
+def rdf_cause_edit(request):
+
+ logged_in = request.authenticated_userid
+ old_code = request.matchdict['code']
+ url = request.route_url("rdf_cause_edit", code=old_code)
+
+ message = ''
+ if old_code == '0':
+ # nouveau
+ cause = {}
+ cause['code'] = ''
+ cause['libelle'] = ''
+ cause['modif_le'] = datetime.now()
+ page_title= 'Nouvelle cause de fuite'
+ else:
+ page_title= "Modification de %s" % (old_code)
+ # lire la cause
+ cause = get_rdf_causes_by_id(request, old_code)
+ if not cause:
+ request.session.flash(u"Cause non trouvée : %s" % old_code, 'warning')
+ return HTTPFound(location=request.route_url('rdf_causes_list'))
+
+ if 'form.submitted' in request.params:
+ code = request.params['code']
+ libelle = request.params['libelle']
+ update_rdf_cause(request, old_code, code, libelle)
+ request.session.flash(u"La cause a été mise à jour avec succès.", 'success')
+ return HTTPFound(location=request.route_url('rdf_causes_list'))
+
+ if 'form.deleted' in request.params:
+ delete_rdf_cause(request, old_code)
+ request.session.flash(u"La cause a été supprimée avec succès.", 'success')
+ return HTTPFound(location=request.route_url('rdf_causes_list'))
+
+ return {
+ 'page_title': page_title,
+ 'url': url,
+ 'old_code': old_code,
+ 'cause': cause,
+ 'message': message,
+ }