ajout : création du rapport de RDF
This commit is contained in:
@@ -34,6 +34,25 @@ def get_member_by_id(request, mbr_id):
|
|||||||
results = request.dbsession.execute(query, {'mbr_id': mbr_id}).first()
|
results = request.dbsession.execute(query, {'mbr_id': mbr_id}).first()
|
||||||
return results
|
return results
|
||||||
|
|
||||||
|
def get_member_info(request, logged_in):
|
||||||
|
# lire le membres par son identifianr
|
||||||
|
query = """SELECT nom, email, access FROM p_users WHERE CD_UTI=:logged_in;"""
|
||||||
|
results = request.dbsession.execute(query, {'logged_in': logged_in}).first()
|
||||||
|
if results.access == 9:
|
||||||
|
fonction = 'Administrateur'
|
||||||
|
elif results.access == 8:
|
||||||
|
fonction = 'Comptabilité'
|
||||||
|
elif results.access == 5:
|
||||||
|
fonction = 'Gestion'
|
||||||
|
else:
|
||||||
|
fonction = 'Commercial'
|
||||||
|
|
||||||
|
return {
|
||||||
|
'nom': results.nom,
|
||||||
|
'email': results.email,
|
||||||
|
'fonction': fonction,
|
||||||
|
}
|
||||||
|
|
||||||
def update_membre_mdp_oublie(request, login):
|
def update_membre_mdp_oublie(request, login):
|
||||||
# get a UUID - URL safe, Base64
|
# get a UUID - URL safe, Base64
|
||||||
|
|
||||||
|
|||||||
@@ -168,3 +168,39 @@ def insert_dossier_attaches(request, nodossier, filename, filesize, user):
|
|||||||
query = """INSERT INTO dossier_attaches (nomrep, societe, nochantier, nomfichier, taillefichier, cree_le, usermaj)
|
query = """INSERT INTO dossier_attaches (nomrep, societe, nochantier, nomfichier, taillefichier, cree_le, usermaj)
|
||||||
VALUES('DOCS_ATTACHES',:societe,:nochantier,:filename,:filesize,NOW(),:user);"""
|
VALUES('DOCS_ATTACHES',:societe,:nochantier,:filename,:filesize,NOW(),:user);"""
|
||||||
execute_query(request, query, {'societe': societe, 'nochantier': nochantier, 'filename': filename, 'filesize': filesize, 'user': user})
|
execute_query(request, query, {'societe': societe, 'nochantier': nochantier, 'filename': filename, 'filesize': filesize, 'user': user})
|
||||||
|
|
||||||
|
def get_rapport_by_no(request,nodossier):
|
||||||
|
societe = nodossier[0:2]
|
||||||
|
nochantier = nodossier[3:]
|
||||||
|
query = "SELECT * FROM dem_rdf where societe = :societe and nochantier = :nochantier;"
|
||||||
|
results = request.dbsession.execute(query, {'societe': societe, 'nochantier': nochantier}).first()
|
||||||
|
return results
|
||||||
|
|
||||||
|
def insert_rapport(request,nodossier,logged_in):
|
||||||
|
societe = nodossier[0:2]
|
||||||
|
nochantier = nodossier[3:]
|
||||||
|
|
||||||
|
query = """INSERT INTO dem_rdf (societe, nochantier, cd_cli, nomcli, c_qualite, c_nom, c_adr, c_adr2, c_cp, c_ville, c_tel1, c_telp, nosin, usermaj)
|
||||||
|
SELECT societe, no_id, cd_cli, nomcli, c_qualite, c_nom, c_adr, c_adr2, c_cp, c_ville, c_tel1, c_telp, nosin, :logged_in FROM dem_devis WHERE societe = :societe AND no_id = :nochantier;"""
|
||||||
|
execute_query(request, query, {'societe': societe, 'nochantier': nochantier, 'logged_in': logged_in})
|
||||||
|
|
||||||
|
def get_rdf_causes(request, code):
|
||||||
|
query = "SELECT libelle FROM rdf_causes where code LIKE :code;"
|
||||||
|
results = request.dbsession.execute(query, {'code': code + '%'}).fetchall()
|
||||||
|
return results
|
||||||
|
|
||||||
|
def update_rdf(request, nodossier, new_values):
|
||||||
|
societe = nodossier[0:2]
|
||||||
|
nochantier = int(nodossier[3:])
|
||||||
|
|
||||||
|
s = ''
|
||||||
|
for param in new_values.keys():
|
||||||
|
if s:
|
||||||
|
s += ",%s=:%s" % (param, param)
|
||||||
|
else:
|
||||||
|
s = "%s=:%s" % (param, param)
|
||||||
|
new_values['societe'] = societe
|
||||||
|
new_values['nochantier'] = nochantier
|
||||||
|
query = u"UPDATE dem_rdf SET %s WHERE societe=:societe AND nochantier=:nochantier" % s
|
||||||
|
execute_query(request, query, new_values)
|
||||||
|
|
||||||
|
|||||||
@@ -44,13 +44,23 @@ def get_dossiers_byChantier(request, societe, name):
|
|||||||
results = request.dbsession.execute(query).fetchall()
|
results = request.dbsession.execute(query).fetchall()
|
||||||
return results
|
return results
|
||||||
|
|
||||||
def update_nochantier(request, societe, nodossier, nochantier):
|
def get_rdf_causes_by_id(request, code):
|
||||||
x = nodossier.split('-')
|
# lire les rdf_causes
|
||||||
type = x[0]
|
if code == '0':
|
||||||
no_id = int(x[1])
|
query = """SELECT * FROM rdf_causes;"""
|
||||||
|
results = request.dbsession.execute(query).fetchall()
|
||||||
if type == 'DE':
|
|
||||||
query = "UPDATE devis SET nochantier = :nochantier WHERE societe = :societe and no_id = :no_id;"
|
|
||||||
else:
|
else:
|
||||||
query = "UPDATE facture SET nochantier = :nochantier WHERE societe = :societe and no_id = :no_id;"
|
query = """SELECT * FROM rdf_causes WHERE code=:code;"""
|
||||||
execute_query(request, query, {'societe': societe, 'no_id': no_id, 'nochantier': nochantier})
|
results = request.dbsession.execute(query, {'code': code}).first()
|
||||||
|
return results
|
||||||
|
|
||||||
|
def delete_rdf_cause(request, old_code):
|
||||||
|
query = "DELETE FROM rdf_causes WHERE code = :old_code;"
|
||||||
|
execute_query(request, query, {'old_code': old_code})
|
||||||
|
|
||||||
|
def update_rdf_cause(request, old_code, code, libelle):
|
||||||
|
if old_code == '0':
|
||||||
|
query = "INSERT rdf_causes (code, libelle) values (:code, :libelle);"
|
||||||
|
else:
|
||||||
|
query = "UPDATE rdf_causes SET code = :code, libelle = :libelle WHERE code = :old_code;"
|
||||||
|
execute_query(request, query, {'old_code': old_code, 'code': code, 'libelle': libelle})
|
||||||
|
|||||||
@@ -2,7 +2,7 @@
|
|||||||
from pyramid_layout.panel import panel_config
|
from pyramid_layout.panel import panel_config
|
||||||
|
|
||||||
from .security import groupfinder
|
from .security import groupfinder
|
||||||
from .models.default import get_member_by_id
|
from .models.default import get_member_info
|
||||||
|
|
||||||
@panel_config(name='dropdown_menu_panel', renderer='templates/panels/dropdown_menu_panel.pt')
|
@panel_config(name='dropdown_menu_panel', renderer='templates/panels/dropdown_menu_panel.pt')
|
||||||
def dropdown_menu_panel(context, request):
|
def dropdown_menu_panel(context, request):
|
||||||
@@ -10,23 +10,13 @@ def dropdown_menu_panel(context, request):
|
|||||||
if logged_in is None:
|
if logged_in is None:
|
||||||
return { 'logged_in': '' }
|
return { 'logged_in': '' }
|
||||||
else:
|
else:
|
||||||
member = get_member_by_id(request, logged_in)
|
member_info = get_member_info(request, logged_in)
|
||||||
fullname = member.NOM
|
|
||||||
email = member.email
|
|
||||||
if member.access == 9:
|
|
||||||
logged_in_fonction = 'Administrateur'
|
|
||||||
elif member.access == 8:
|
|
||||||
logged_in_fonction = 'Comptabilité'
|
|
||||||
elif member.access == 5:
|
|
||||||
logged_in_fonction = 'Gestion'
|
|
||||||
else:
|
|
||||||
logged_in_fonction = 'Production'
|
|
||||||
|
|
||||||
return {
|
return {
|
||||||
'logged_in': logged_in,
|
'logged_in': logged_in,
|
||||||
'logged_in_name': fullname,
|
'logged_in_name': member_info['nom'],
|
||||||
'logged_in_email': email,
|
'logged_in_email': member_info['email'],
|
||||||
'logged_in_fonction': logged_in_fonction,
|
'logged_in_fonction': member_info['fonction'],
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -11,20 +11,24 @@ def includeme(config):
|
|||||||
config.add_route('login', '/login')
|
config.add_route('login', '/login')
|
||||||
config.add_route('logout', '/logout')
|
config.add_route('logout', '/logout')
|
||||||
config.add_route('redefinir_mdp', '/redefinir_mdp/{lien}')
|
config.add_route('redefinir_mdp', '/redefinir_mdp/{lien}')
|
||||||
config.add_route('suivi_edit','/suivi_edit/{nodossier}/{nolig}')
|
|
||||||
# dossier
|
# dossier
|
||||||
|
config.add_route('devis_view', '/devis_view/{nodossier}')
|
||||||
config.add_route('dossier_edit', '/dossier_edit/{nodossier}')
|
config.add_route('dossier_edit', '/dossier_edit/{nodossier}')
|
||||||
config.add_route('dossier_lookup', '/chantier_lookup')
|
config.add_route('dossier_lookup', '/chantier_lookup')
|
||||||
config.add_route('dossier_select', '/dossier_select/{date}')
|
config.add_route('dossier_select', '/dossier_select/{date}')
|
||||||
config.add_route('dossier_selected', '/dossier_selected/{goto}/{date}/{nodossier}')
|
config.add_route('dossier_selected', '/dossier_selected/{goto}/{date}/{nodossier}')
|
||||||
config.add_route('dossier_view', '/dossier_view/{nodossier}')
|
config.add_route('dossier_view', '/dossier_view/{nodossier}')
|
||||||
config.add_route('devis_view', '/devis_view/{nodossier}')
|
config.add_route('rdf_edit','/rdf_edit/{nodossier}')
|
||||||
|
config.add_route('suivi_edit','/suivi_edit/{nodossier}/{nolig}')
|
||||||
config.add_route('upload_doc', '/upload_doc/{nodossier}')
|
config.add_route('upload_doc', '/upload_doc/{nodossier}')
|
||||||
# parametres
|
# parametres
|
||||||
config.add_route('parametres', '/parametres')
|
config.add_route('parametres', '/parametres')
|
||||||
|
config.add_route('connecter_a', '/connecter_a/{login}')
|
||||||
config.add_route('dashboard', '/dashboard')
|
config.add_route('dashboard', '/dashboard')
|
||||||
config.add_route('last_emailing', '/last_emailing')
|
config.add_route('last_emailing', '/last_emailing')
|
||||||
config.add_route('orphans_de', '/orphans_de/{societe}')
|
config.add_route('orphans_de', '/orphans_de/{societe}')
|
||||||
|
config.add_route('rdf_cause_edit', '/rdf_cause_edit/{code}')
|
||||||
|
config.add_route('rdf_causes_list', '/rdf_causes_list')
|
||||||
config.add_route('user_edit', '/user_edit/{cd_uti}')
|
config.add_route('user_edit', '/user_edit/{cd_uti}')
|
||||||
config.add_route('users_list', '/users_list')
|
config.add_route('users_list', '/users_list')
|
||||||
config.add_route('users_ua', '/users_ua')
|
config.add_route('users_ua', '/users_ua')
|
||||||
|
|||||||
@@ -5,7 +5,9 @@ def groupfinder(userid, request):
|
|||||||
|
|
||||||
if member:
|
if member:
|
||||||
# Roles administrateur ?
|
# Roles administrateur ?
|
||||||
if member.access == 9:
|
if member.access <= 1:
|
||||||
|
return ['group:commerciaux']
|
||||||
|
elif member.access == 9:
|
||||||
return ['group:administrators']
|
return ['group:administrators']
|
||||||
else:
|
else:
|
||||||
return [] # it means that userid is logged in (it returns None if userid isn't logged in)
|
return [] # it means that userid is logged in (it returns None if userid isn't logged in)
|
||||||
|
|||||||
@@ -8,7 +8,7 @@
|
|||||||
<form method="POST" id="frm" class="form-horizontal">
|
<form method="POST" id="frm" class="form-horizontal">
|
||||||
<div class="form-group">
|
<div class="form-group">
|
||||||
<div class="col-sm-4">
|
<div class="col-sm-4">
|
||||||
<select class="form-control" id="agenda" name="agenda" onChange="$('#frm').submit()">
|
<select class="form-control" id="agenda" name="agenda" onChange="$('#frm').submit()" tal:condition="isCommercial==False">
|
||||||
<div tal:repeat="item agendas">
|
<div tal:repeat="item agendas">
|
||||||
<option value="${item.CD_UTI}" tal:attributes="selected agenda==item.CD_UTI and 'selected' or None">${item.NOM}</option>
|
<option value="${item.CD_UTI}" tal:attributes="selected agenda==item.CD_UTI and 'selected' or None">${item.NOM}</option>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@@ -60,8 +60,6 @@
|
|||||||
<button class="btn btn-danger" type="submit" name="form.deleted"
|
<button class="btn btn-danger" type="submit" name="form.deleted"
|
||||||
tal:condition="nolig != '0' and logged_in.upper()==rdv.USERMAJ.upper()">
|
tal:condition="nolig != '0' and logged_in.upper()==rdv.USERMAJ.upper()">
|
||||||
<span class="glyphicon glyphicon-remove"></span> Supprimer</button>
|
<span class="glyphicon glyphicon-remove"></span> Supprimer</button>
|
||||||
<a class="btn btn-warning" href="${request.route_url('dossier_view', nodossier=nodossier)}">
|
|
||||||
<span class="glyphicon glyphicon-folder-open"></span> Dossier</a>
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@@ -109,8 +109,8 @@
|
|||||||
</tr>
|
</tr>
|
||||||
</table>
|
</table>
|
||||||
|
|
||||||
<div class="panel-group" id="accordion">
|
|
||||||
<!-- PANEL SUIVI -->
|
<!-- PANEL SUIVI -->
|
||||||
|
<div class="panel-group" id="accordion">
|
||||||
<div class="panel panel-default">
|
<div class="panel panel-default">
|
||||||
<div class="panel-heading">
|
<div class="panel-heading">
|
||||||
<h4 class="panel-title">
|
<h4 class="panel-title">
|
||||||
@@ -165,6 +165,43 @@
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
<!-- PANEL RDF -->
|
||||||
|
<div class="panel panel-default" tal:condition="nodossier.startswith('PL')">
|
||||||
|
<div class="panel-heading">
|
||||||
|
<h4 class="panel-title">
|
||||||
|
<a data-toggle="collapse" data-parent="#accordion" href="#panel-documents">
|
||||||
|
<span class="glyphicon glyphicon-plus"></span> RECHERCHE DE FUITE</a>
|
||||||
|
</h4>
|
||||||
|
</div>
|
||||||
|
<div id="panel-documents" class="panel-collapse collapse">
|
||||||
|
<div class="panel-body">
|
||||||
|
<p>
|
||||||
|
<a class="btn btn-success" role="button" href="${request.route_url('rdf_edit', nodossier=nodossier)}">
|
||||||
|
<span class="glyphicon glyphicon-plus"></span> Nouvelle recherche</a>
|
||||||
|
</p>
|
||||||
|
<table class="table table-bordered table-condensed" tal:condition="rapport">
|
||||||
|
<tr>
|
||||||
|
<th>Numéro</th>
|
||||||
|
<th>Date</th>
|
||||||
|
<th>Chantier</th>
|
||||||
|
<th>No sinistre</th>
|
||||||
|
<th>Modif le</th>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td>
|
||||||
|
<a href="/rdf_edit/${nodossier}">${rapport.nochantier}</a>
|
||||||
|
</td>
|
||||||
|
<td>${rapport.DATE.strftime('%d-%m-%Y')}</td>
|
||||||
|
<td>${rapport.C_QUALITE} ${rapport.C_NOM}</td>
|
||||||
|
<td>${rapport.NOSIN}</td>
|
||||||
|
<td>${rapport.modif_le.strftime('%d-%m-%Y')}</td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
<!-- PANEL DOCUMENTS -->
|
<!-- PANEL DOCUMENTS -->
|
||||||
<div class="panel panel-default" tal:condition="documents">
|
<div class="panel panel-default" tal:condition="documents">
|
||||||
<div class="panel-heading">
|
<div class="panel-heading">
|
||||||
@@ -198,7 +235,7 @@
|
|||||||
</div>
|
</div>
|
||||||
|
|
||||||
<!-- PANEL DOCS ATTACHES -->
|
<!-- PANEL DOCS ATTACHES -->
|
||||||
<div class="panel panel-default" tal:condition="docs_attaches">
|
<div class="panel panel-default">
|
||||||
<div class="panel-heading">
|
<div class="panel-heading">
|
||||||
<h4 class="panel-title">
|
<h4 class="panel-title">
|
||||||
<a data-toggle="collapse" data-parent="#accordion" href="#panel-attaches">
|
<a data-toggle="collapse" data-parent="#accordion" href="#panel-attaches">
|
||||||
@@ -208,8 +245,8 @@
|
|||||||
<div id="panel-attaches" class="panel-collapse collapse">
|
<div id="panel-attaches" class="panel-collapse collapse">
|
||||||
<div class="panel-body">
|
<div class="panel-body">
|
||||||
<p>
|
<p>
|
||||||
<a href="${request.application_url}/upload_doc/${nodossier}" class="btn btn-primary" role="button">
|
<a href="${request.application_url}/upload_doc/${nodossier}" class="btn btn-success" role="button">
|
||||||
<span class="glyphicon glyphicon-cloud-upload"></span> Télécharger un document</a>
|
<span class="glyphicon glyphicon-cloud-upload"></span> Ajouter un document</a>
|
||||||
</p>
|
</p>
|
||||||
<ul>
|
<ul>
|
||||||
<div tal:repeat="detail docs_attaches">
|
<div tal:repeat="detail docs_attaches">
|
||||||
|
|||||||
124
mondumas/templates/dossier/rdf_edit.pt
Normal file
124
mondumas/templates/dossier/rdf_edit.pt
Normal file
@@ -0,0 +1,124 @@
|
|||||||
|
<metal:block use-macro="main_template">
|
||||||
|
<div metal:fill-slot="content">
|
||||||
|
<br />
|
||||||
|
<!-- ENTETE -->
|
||||||
|
<div class="row">
|
||||||
|
<h4>ADRESSE d'INTERVENTION</h4>
|
||||||
|
<table class="table table-condensed ">
|
||||||
|
<tr>
|
||||||
|
<td>
|
||||||
|
<p>
|
||||||
|
<h4>${rapport.C_QUALITE} ${rapport.C_NOM}</h4>
|
||||||
|
${rapport.C_ADR}<br />
|
||||||
|
<span tal:condition="rapport.C_ADR2">${rapport.C_ADR2}<br /></span>
|
||||||
|
${rapport.C_CP} ${rapport.C_VILLE}<br />
|
||||||
|
</p>
|
||||||
|
</td>
|
||||||
|
<td>
|
||||||
|
<p>
|
||||||
|
Assureur : <b>${rapport.NOMCLI}</b><br />
|
||||||
|
No Sinistre : ${rapport.NOSIN}
|
||||||
|
<br />
|
||||||
|
Etage : ${rapport.C_ETAGE}<br />
|
||||||
|
Téléphone : ${rapport.C_TEL1}<br />
|
||||||
|
Mobile: ${rapport.C_TELP}<br />
|
||||||
|
</p>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
</div> <!-- row -->
|
||||||
|
|
||||||
|
<div class="row">
|
||||||
|
<form id="rdv_edit-form" action="${url}" method="post"
|
||||||
|
data-fv-framework="bootstrap"
|
||||||
|
data-fv-icon-valid="glyphicon glyphicon-ok"
|
||||||
|
data-fv-icon-invalid="glyphicon glyphicon-remove"
|
||||||
|
data-fv-icon-validating="glyphicon glyphicon-refresh">
|
||||||
|
|
||||||
|
<div class="form-group">
|
||||||
|
<label class="control-label" for="comment">Caractéristique du risque sinistré :</label>
|
||||||
|
<select class="form-control" id="caracteristique" name="caracteristique">
|
||||||
|
<div tal:repeat="item caracteristiques">
|
||||||
|
<option value="${item}" tal:attributes="selected str(rapport.caracteristique)==item[0] and 'selected' or None">${item}</option>
|
||||||
|
</div>
|
||||||
|
</select>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<h4 class="text-center">ANALYSE</h4>
|
||||||
|
<div class="form-group">
|
||||||
|
<label class="control-label" for="equipement">Les dommages sont-ils causés par un bien d'équipement ?</label>
|
||||||
|
<select class="form-control" id="equipement" name="equipement">
|
||||||
|
<div tal:repeat="item equipements">
|
||||||
|
<option value="${item.libelle}" tal:attributes="selected str(rapport.equipement)==item.libelle and 'selected' or None">${item.libelle}</option>
|
||||||
|
</div>
|
||||||
|
</select>
|
||||||
|
</div>
|
||||||
|
<div class="form-group">
|
||||||
|
<label class="control-label" for="reseau_int">Les dommages sont-ils causés par un bien d'équipement ?</label>
|
||||||
|
<select class="form-control" id="reseau_int" name="reseau_int">
|
||||||
|
<div tal:repeat="item reseaux_int">
|
||||||
|
<option value="${item.libelle}" tal:attributes="selected str(rapport.reseau_int)==item.libelle and 'selected' or None">${item.libelle}</option>
|
||||||
|
</div>
|
||||||
|
</select>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<h4 class="text-center">TRAVAUX relatifs à la DETECTION de la fuite</h4>
|
||||||
|
<div class="form-group">
|
||||||
|
<label class="control-label" for="descr_detect">Descriptif détection</label>
|
||||||
|
<textarea class="form-control" rows="6" cols="40" id="descr_detect" name="descr_detect"
|
||||||
|
data-fv-stringlength="true"
|
||||||
|
data-fv-stringlength-max="2000"
|
||||||
|
data-fv-stringlength-message="2000 caractères maximum">${rapport.descr_detect}
|
||||||
|
</textarea>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<h4 class="text-center">TRAVAUX relatifs à la REPARATION de la fuite</h4>
|
||||||
|
<div class="form-group">
|
||||||
|
<label class="control-label" for="descr_repar">Descriptif réparation</label>
|
||||||
|
<textarea class="form-control" rows="6" cols="40" id="descr_repar" name="descr_repar"
|
||||||
|
data-fv-stringlength="true"
|
||||||
|
data-fv-stringlength-max="2000"
|
||||||
|
data-fv-stringlength-message="2000 caractères maximum">${rapport.descr_repar}
|
||||||
|
</textarea>
|
||||||
|
</div>
|
||||||
|
<h4 class="text-center">PHOTOS</h4>
|
||||||
|
<p>
|
||||||
|
<a href="${request.application_url}/upload_doc/${nodossier}" class="btn btn-success" role="button">
|
||||||
|
<span class="glyphicon glyphicon-cloud-upload"></span> Ajouter une photo</a>
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<h4 class="text-center">CONCLUSIONS</h4>
|
||||||
|
<div class="form-group">
|
||||||
|
<label class="control-label" for="conclusions">Conclusions</label>
|
||||||
|
<textarea class="form-control" rows="6" cols="40" id="conclusions" name="conclusions"
|
||||||
|
data-fv-stringlength="true"
|
||||||
|
data-fv-stringlength-max="2000"
|
||||||
|
data-fv-stringlength-message="2000 caractères maximum">${rapport.conclusions}
|
||||||
|
</textarea>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="form-group">
|
||||||
|
<label class="control-label">Dern. modif le</label>
|
||||||
|
<div>
|
||||||
|
<p class="form-control-static">${rapport.modif_le.strftime('%d-%m-%Y %H:%M')} par ${rapport.USERMAJ}</p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="form-group">
|
||||||
|
<div class="col-sm-offset-3 col-sm-9">
|
||||||
|
<div class="form-group">
|
||||||
|
<a class="btn btn-default" href="${request.route_url('dossier_view', nodossier=nodossier)}">
|
||||||
|
<span class="glyphicon glyphicon-arrow-left"></span> Annuler</a>
|
||||||
|
<button class="btn btn-primary" type="submit" name="form.submitted">
|
||||||
|
<span class="glyphicon glyphicon-ok"></span> Enregistrer</button>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</form>
|
||||||
|
</div> <!-- row -->
|
||||||
|
<br />
|
||||||
|
<br />
|
||||||
|
<br />
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</metal:block>
|
||||||
@@ -62,7 +62,7 @@
|
|||||||
<div class="collapse navbar-collapse" id="myNavbar" tal:condition="not layout.isAnonymous()">
|
<div class="collapse navbar-collapse" id="myNavbar" tal:condition="not layout.isAnonymous()">
|
||||||
<ul class="nav navbar-nav navbar-right">
|
<ul class="nav navbar-nav navbar-right">
|
||||||
<li>
|
<li>
|
||||||
<a href="${request.application_url}"><span class="glyphicon glyphicon-home"></span> Accueil</a></li>
|
<a href="${request.application_url}/chantier_lookup"><span class="glyphicon glyphicon-search"></span> Recherche</a></li>
|
||||||
<li tal:condition="layout.isAdmin()">
|
<li tal:condition="layout.isAdmin()">
|
||||||
<a href="${request.application_url}/parametres"><span class="glyphicon glyphicon-cog"></span>Paramètres</a></li>
|
<a href="${request.application_url}/parametres"><span class="glyphicon glyphicon-cog"></span>Paramètres</a></li>
|
||||||
${panel('dropdown_menu_panel')}
|
${panel('dropdown_menu_panel')}
|
||||||
|
|||||||
@@ -7,6 +7,13 @@
|
|||||||
<a href="${request.application_url}/users_list"><span class="glyphicon glyphicon-user logo-primary"></span></a>
|
<a href="${request.application_url}/users_list"><span class="glyphicon glyphicon-user logo-primary"></span></a>
|
||||||
<h4>UTILISATEURS</h4>
|
<h4>UTILISATEURS</h4>
|
||||||
</div>
|
</div>
|
||||||
|
<div class="col-sm-3">
|
||||||
|
<a href="${request.application_url}/rdf_causes_list"><span class="glyphicon glyphicon-tint logo-primary"></span></a>
|
||||||
|
<h4>RDF : CAUSES</h4>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<br />
|
||||||
|
<div class="row text-center">
|
||||||
<div class="col-sm-3">
|
<div class="col-sm-3">
|
||||||
<a href="${request.application_url}/users_ua"><span class="glyphicon glyphicon-log-in logo-primary"></span></a>
|
<a href="${request.application_url}/users_ua"><span class="glyphicon glyphicon-log-in logo-primary"></span></a>
|
||||||
<h4>CONNEXIONS</h4>
|
<h4>CONNEXIONS</h4>
|
||||||
|
|||||||
72
mondumas/templates/parametres/rdf_cause_edit.pt
Normal file
72
mondumas/templates/parametres/rdf_cause_edit.pt
Normal file
@@ -0,0 +1,72 @@
|
|||||||
|
<metal:block use-macro="main_template">
|
||||||
|
<div metal:fill-slot="content">
|
||||||
|
|
||||||
|
<div tal:condition="message" tal:content="message" class="alert alert-danger" />
|
||||||
|
<br />
|
||||||
|
<div class="row">
|
||||||
|
<form id="rdv_edit-form" class="form-horizontal" action="${url}" method="post"
|
||||||
|
data-fv-framework="bootstrap"
|
||||||
|
data-fv-icon-valid="glyphicon glyphicon-ok"
|
||||||
|
data-fv-icon-invalid="glyphicon glyphicon-remove"
|
||||||
|
data-fv-icon-validating="glyphicon glyphicon-refresh">
|
||||||
|
|
||||||
|
<div class="form-group">
|
||||||
|
<label class="control-label col-sm-3" for="code">Code</label>
|
||||||
|
<div class="col-sm-9">
|
||||||
|
<input class="form-control" type="text" id="code" name="code" value="${cause.code}"
|
||||||
|
placeholder="5 caractères : Cxxyy"
|
||||||
|
data-fv-notempty="true"
|
||||||
|
data-fv-notempty-message="Un code est obligatoire"
|
||||||
|
data-fv-stringlength="true"
|
||||||
|
data-fv-stringlength-max="5"
|
||||||
|
data-fv-stringlength-min="5"
|
||||||
|
data-fv-stringlength-message="5 caractères maximum" />
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="form-group">
|
||||||
|
<label class="control-label col-sm-3" for="libelle">Libellé</label>
|
||||||
|
<div class="col-sm-9">
|
||||||
|
<input class="form-control" type="text" id="libelle" name="libelle" value="${cause.libelle}"
|
||||||
|
placeholder="150 caractères maximum"
|
||||||
|
data-fv-notempty="true"
|
||||||
|
data-fv-notempty-message="Un libellé est obligatoire"
|
||||||
|
data-fv-stringlength="true"
|
||||||
|
data-fv-stringlength-max="150"
|
||||||
|
data-fv-stringlength-message="150 caractères maximum" />
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="form-group">
|
||||||
|
<label class="control-label col-sm-3">Dern. modif le</label>
|
||||||
|
<div class="col-sm-9">
|
||||||
|
<p class="form-control-static">${cause.modif_le.strftime('%d-%m-%Y %H:%M')}</p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="form-group">
|
||||||
|
<div class="col-sm-offset-3 col-sm-9">
|
||||||
|
<a class="btn btn-default" href="${request.route_url('rdf_causes_list')">
|
||||||
|
<span class="glyphicon glyphicon-arrow-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-danger" type="submit" name="form.deleted" tal:condition="old_code != '0'">
|
||||||
|
<span class="glyphicon glyphicon-remove"></span> Supprimer</button>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</form>
|
||||||
|
<br />
|
||||||
|
<br />
|
||||||
|
<br />
|
||||||
|
</div> <!-- row -->
|
||||||
|
|
||||||
|
<script>
|
||||||
|
$(document).ready(function() {
|
||||||
|
$('#rdv_edit-form').formValidation();
|
||||||
|
$('form input').on('keypress', function(e) {
|
||||||
|
return e.which !== 13;
|
||||||
|
});
|
||||||
|
});
|
||||||
|
</script>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</metal:block>
|
||||||
52
mondumas/templates/parametres/rdf_causes_list.pt
Normal file
52
mondumas/templates/parametres/rdf_causes_list.pt
Normal file
@@ -0,0 +1,52 @@
|
|||||||
|
<metal:block use-macro="main_template">
|
||||||
|
<div metal:fill-slot="content">
|
||||||
|
|
||||||
|
<p>
|
||||||
|
<a href="${request.application_url}/parametres" class="btn btn-default" role="button">
|
||||||
|
<span class="glyphicon glyphicon-chevron-left"></span> Retour</a>
|
||||||
|
<a href="${request.application_url}/rdf_cause_edit/0" class="btn btn-success" role="button">
|
||||||
|
<span class="glyphicon glyphicon-plus"></span> Nouvelle cause</a>
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<table id="rdf_causes_list" class="table table-striped table-bordered">
|
||||||
|
<thead>
|
||||||
|
<tr>
|
||||||
|
<th>Code</th>
|
||||||
|
<th>Libelle de la cause</th>
|
||||||
|
<th>Modif le</th>
|
||||||
|
</tr>
|
||||||
|
</thead>
|
||||||
|
</table>
|
||||||
|
|
||||||
|
<br />
|
||||||
|
<br />
|
||||||
|
|
||||||
|
<script type="text/javascript">
|
||||||
|
var dataSet = ${dt_data};
|
||||||
|
|
||||||
|
$(document).ready(function() {
|
||||||
|
$.fn.dataTable.moment('DD/MM/YYYY - HH:mm');
|
||||||
|
$('#rdf_causes_list').DataTable({
|
||||||
|
data: dataSet,
|
||||||
|
pageLength: 50,
|
||||||
|
bLengthChange: false,
|
||||||
|
language: {
|
||||||
|
url: 'https://cdn.datatables.net/plug-ins/1.10.16/i18n/French.json'
|
||||||
|
},
|
||||||
|
columnDefs: [
|
||||||
|
{ "targets": 0,
|
||||||
|
"render": function (data, type, full, meta) {
|
||||||
|
// ajouter un link vers le formulaire
|
||||||
|
return '<a href="/rdf_cause_edit/' + data + '">' + data + '</a>';
|
||||||
|
},
|
||||||
|
},
|
||||||
|
]
|
||||||
|
});
|
||||||
|
|
||||||
|
});
|
||||||
|
</script>
|
||||||
|
|
||||||
|
</div><!-- content -->
|
||||||
|
</metal:block>
|
||||||
|
|
||||||
|
|
||||||
@@ -15,7 +15,7 @@
|
|||||||
<th>Nom, Prénom</th>
|
<th>Nom, Prénom</th>
|
||||||
<th>Email</th>
|
<th>Email</th>
|
||||||
<th>Agenda</th>
|
<th>Agenda</th>
|
||||||
<th>Rôle</th>
|
<th>Fonction</th>
|
||||||
<th>Etat</th>
|
<th>Etat</th>
|
||||||
</tr>
|
</tr>
|
||||||
</thead>
|
</thead>
|
||||||
@@ -52,7 +52,13 @@
|
|||||||
return '';
|
return '';
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
}
|
},
|
||||||
|
{ "targets": 4,
|
||||||
|
"render": function (data, type, row, meta) {
|
||||||
|
// ajouter un link vers le login
|
||||||
|
return '<a href="/connecter_a/' + row[0] + '">' + data + '</a>';
|
||||||
|
},
|
||||||
|
},
|
||||||
]
|
]
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|||||||
@@ -16,10 +16,9 @@ from datetime import *
|
|||||||
import hashlib
|
import hashlib
|
||||||
|
|
||||||
from sqlalchemy.exc import DBAPIError
|
from sqlalchemy.exc import DBAPIError
|
||||||
from ..security import groupfinder
|
|
||||||
|
|
||||||
import json
|
import json
|
||||||
|
|
||||||
|
from ..models.default import *
|
||||||
from ..models.agenda import *
|
from ..models.agenda import *
|
||||||
from ..models.dossier import *
|
from ..models.dossier import *
|
||||||
|
|
||||||
@@ -92,7 +91,7 @@ def agenda(request):
|
|||||||
message = ''
|
message = ''
|
||||||
# récupérer les paramètres de l'appel de la view
|
# récupérer les paramètres de l'appel de la view
|
||||||
datePlan = request.matchdict['date']
|
datePlan = request.matchdict['date']
|
||||||
logged_in = request.authenticated_userid
|
logged_in = request.authenticated_userid.upper()
|
||||||
|
|
||||||
if datePlan == 'today':
|
if datePlan == 'today':
|
||||||
datePlan = date.today().strftime('%Y-%m-%d')
|
datePlan = date.today().strftime('%Y-%m-%d')
|
||||||
@@ -114,12 +113,14 @@ def agenda(request):
|
|||||||
# liste des users avec agenda
|
# liste des users avec agenda
|
||||||
agendas = get_users_agenda(request, '')
|
agendas = get_users_agenda(request, '')
|
||||||
|
|
||||||
# le user a-t-il un agenda ?
|
# le user est-il un commercial ?
|
||||||
agenda = 'JMD'
|
member = get_member_info(request, logged_in)
|
||||||
for item in agendas:
|
if member['fonction'] == 'Commercial':
|
||||||
if item.CD_UTI == logged_in.upper():
|
agenda = logged_in
|
||||||
agenda = item.CD_UTI
|
isCommercial = True
|
||||||
|
else:
|
||||||
|
agenda = 'S'
|
||||||
|
isCommercial = False
|
||||||
|
|
||||||
# prendre en compte les paramètres de saisie
|
# prendre en compte les paramètres de saisie
|
||||||
if 'agenda' in request.params:
|
if 'agenda' in request.params:
|
||||||
@@ -160,16 +161,17 @@ def agenda(request):
|
|||||||
'allDay': False,
|
'allDay': False,
|
||||||
'color': color,
|
'color': color,
|
||||||
'textColor': 'Black',
|
'textColor': 'Black',
|
||||||
'url': '/rdv_edit/%s/%s' % (row.nodossier, row.nolig),
|
'url': '/dossier_view/%s' % (row.nodossier),
|
||||||
}
|
}
|
||||||
events.append(json_event)
|
events.append(json_event)
|
||||||
|
|
||||||
|
|
||||||
return {
|
return {
|
||||||
'page_title': 'Agenda',
|
'page_title': 'Agenda de %s' % agenda,
|
||||||
'fullcalendar_events': json.dumps(events),
|
'fullcalendar_events': json.dumps(events),
|
||||||
'agendas': agendas,
|
'agendas': agendas,
|
||||||
'agenda': agenda,
|
'agenda': agenda,
|
||||||
|
'isCommercial': isCommercial,
|
||||||
'types_rdv': types_rdv,
|
'types_rdv': types_rdv,
|
||||||
'type_rdv': type_rdv,
|
'type_rdv': type_rdv,
|
||||||
'message': message,
|
'message': message,
|
||||||
|
|||||||
@@ -173,8 +173,8 @@ def login(request):
|
|||||||
referrer = '/' # never use the login form itself as came_from
|
referrer = '/' # never use the login form itself as came_from
|
||||||
|
|
||||||
came_from = request.params.get('came_from', referrer)
|
came_from = request.params.get('came_from', referrer)
|
||||||
password = u''
|
password = ''
|
||||||
message = u''
|
message = ''
|
||||||
if 'form.submitted' in request.params:
|
if 'form.submitted' in request.params:
|
||||||
login = request.params['login']
|
login = request.params['login']
|
||||||
password = request.params['password']
|
password = request.params['password']
|
||||||
|
|||||||
@@ -85,6 +85,7 @@ def dossier_lookup(request):
|
|||||||
def dossier_view(request):
|
def dossier_view(request):
|
||||||
nodossier = request.matchdict['nodossier']
|
nodossier = request.matchdict['nodossier']
|
||||||
societe = nodossier[0:2]
|
societe = nodossier[0:2]
|
||||||
|
logged_in = request.authenticated_userid.upper()
|
||||||
|
|
||||||
url = request.route_url("dossier_view", nodossier=nodossier)
|
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)
|
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
|
# lire tous les documents attachés
|
||||||
docs_attaches = get_docs_attaches(request, 'DOCS_ATTACHES', nodossier)
|
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
|
# select background color according to society
|
||||||
bg_color = "bg-%s" % societe
|
bg_color = "bg-%s" % societe
|
||||||
|
|
||||||
@@ -108,6 +112,7 @@ def dossier_view(request):
|
|||||||
'nodossier': nodossier,
|
'nodossier': nodossier,
|
||||||
'dossier': dossier,
|
'dossier': dossier,
|
||||||
'details': details,
|
'details': details,
|
||||||
|
'rapport': rapport,
|
||||||
'documents': documents,
|
'documents': documents,
|
||||||
'similaires': similaires,
|
'similaires': similaires,
|
||||||
'docs_attaches': docs_attaches,
|
'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')
|
@view_config(route_name='suivi_edit', renderer='../templates/dossier/suivi_edit.pt', permission='view')
|
||||||
def suivi_edit(request):
|
def suivi_edit(request):
|
||||||
|
|
||||||
logged_in = request.authenticated_userid
|
logged_in = request.authenticated_userid.upper()
|
||||||
nodossier = request.matchdict['nodossier']
|
nodossier = request.matchdict['nodossier']
|
||||||
nolig = request.matchdict['nolig']
|
nolig = request.matchdict['nolig']
|
||||||
url = request.route_url("suivi_edit", nodossier=nodossier, nolig=nolig)
|
url = request.route_url("suivi_edit", nodossier=nodossier, nolig=nolig)
|
||||||
@@ -177,7 +182,7 @@ def suivi_edit(request):
|
|||||||
# nouveau
|
# nouveau
|
||||||
suivi = {}
|
suivi = {}
|
||||||
suivi['COMMENT'] = ''
|
suivi['COMMENT'] = ''
|
||||||
suivi['USERMAJ'] = logged_in.upper()
|
suivi['USERMAJ'] = logged_in
|
||||||
suivi['DATEMAJ'] = datetime.now()
|
suivi['DATEMAJ'] = datetime.now()
|
||||||
page_title= 'Nouveau suivi'
|
page_title= 'Nouveau suivi'
|
||||||
else:
|
else:
|
||||||
@@ -196,7 +201,7 @@ def suivi_edit(request):
|
|||||||
new_values[param] = request.params[param]
|
new_values[param] = request.params[param]
|
||||||
|
|
||||||
if new_values:
|
if new_values:
|
||||||
new_values['USERMAJ'] = logged_in.upper()
|
new_values['USERMAJ'] = logged_in
|
||||||
new_values['DATE'] = date.today()
|
new_values['DATE'] = date.today()
|
||||||
|
|
||||||
update_suivi(request, nodossier, nolig, new_values)
|
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')
|
@view_config(route_name='upload_doc', renderer='../templates/dossier/upload_doc.pt', permission='view')
|
||||||
def upload_doc(request):
|
def upload_doc(request):
|
||||||
logged_in = request.authenticated_userid
|
logged_in = request.authenticated_userid.upper()
|
||||||
nodossier = request.matchdict['nodossier']
|
nodossier = request.matchdict['nodossier']
|
||||||
societe = nodossier[0:2]
|
societe = nodossier[0:2]
|
||||||
nochantier = nodossier[3:]
|
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.
|
# Now that we know the file has been fully saved to disk move it into place.
|
||||||
os.rename(temp_file_path, file_path)
|
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')
|
request.session.flash('%s : Ce fichier est téléchargé avec succès.' % input_name, 'success')
|
||||||
# lire tous les documents attachés
|
# lire tous les documents attachés
|
||||||
docs_attaches = get_docs_attaches(request, 'DOCS_ATTACHES', nodossier)
|
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']),
|
'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,
|
||||||
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -47,7 +47,7 @@ def users_list(request):
|
|||||||
etat = ''
|
etat = ''
|
||||||
|
|
||||||
if item.access == 0:
|
if item.access == 0:
|
||||||
role = ''
|
role = 'Commercial'
|
||||||
elif item.access == 8:
|
elif item.access == 8:
|
||||||
role = 'Compta'
|
role = 'Compta'
|
||||||
elif item.access == 9:
|
elif item.access == 9:
|
||||||
@@ -83,6 +83,18 @@ def users_ua(request):
|
|||||||
'dt_data': json.dumps(liste),
|
'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')
|
@view_config(route_name='user_edit', renderer='../templates/parametres/user_edit.pt', permission='manage')
|
||||||
@@ -237,3 +249,64 @@ def orphans_de(request):
|
|||||||
'nochantiers': nochantiers,
|
'nochantiers': nochantiers,
|
||||||
'nochantier': nochantier,
|
'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,
|
||||||
|
|||||||
Reference in New Issue
Block a user