création acces = Consultation et table p_acces
This commit is contained in:
@@ -33,31 +33,29 @@ def get_member_by_mdp_oublie(request, lien):
|
||||
|
||||
def get_member_by_id(request, mbr_id):
|
||||
if mbr_id == '0':
|
||||
query = "SELECT * FROM p_users ORDER BY cd_uti"
|
||||
query = """SELECT p_users.*, p_acces.libelle FROM p_users
|
||||
INNER JOIN p_acces ON p_acces.code = p_users.access
|
||||
ORDER BY cd_uti"""
|
||||
results = request.dbsession.execute(query).fetchall()
|
||||
else:
|
||||
# lire le membres par son identifianr
|
||||
query = """SELECT * FROM p_users WHERE CD_UTI=:mbr_id;"""
|
||||
query = """SELECT p_users.*, p_acces.libelle FROM p_users
|
||||
INNER JOIN p_acces ON p_acces.code = p_users.access
|
||||
WHERE CD_UTI=:mbr_id;"""
|
||||
results = request.dbsession.execute(query, {'mbr_id': mbr_id}).first()
|
||||
return results
|
||||
|
||||
def get_member_info(request, logged_in):
|
||||
# lire le membres par son identifianr
|
||||
query = """SELECT nom, email, access, societe FROM p_users WHERE CD_UTI=:logged_in;"""
|
||||
query = """SELECT u.nom, u.email, u.access, u.societe, p_acces.libelle FROM p_users u
|
||||
INNER JOIN p_acces ON p_acces.code = u.access
|
||||
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 = 'Production'
|
||||
|
||||
return {
|
||||
'nom': results.nom,
|
||||
'email': results.email,
|
||||
'fonction': fonction,
|
||||
'fonction': results.libelle,
|
||||
'societe': results.societe,
|
||||
}
|
||||
|
||||
@@ -88,9 +86,6 @@ def update_membre(request, cd_uti, new_values):
|
||||
for param in new_values.keys():
|
||||
if param == 'nom':
|
||||
new_values['nom'] = new_values['nom'].upper()
|
||||
if param == 'access':
|
||||
' ne prend que le 1er caractère'
|
||||
new_values['access'] = new_values['access'][0]
|
||||
|
||||
if s:
|
||||
s += ",%s=:%s" % (param, param)
|
||||
|
||||
@@ -1,17 +1,8 @@
|
||||
# -*- coding: utf8 -*-
|
||||
from sqlalchemy import text
|
||||
from sqlalchemy.ext.declarative import declarative_base
|
||||
from sqlalchemy.orm import (
|
||||
scoped_session,
|
||||
sessionmaker,
|
||||
)
|
||||
from zope.sqlalchemy import (
|
||||
ZopeTransactionExtension,
|
||||
mark_changed
|
||||
)
|
||||
|
||||
from datetime import *
|
||||
import dateutil.relativedelta
|
||||
import transaction
|
||||
|
||||
def execute_query(request, query, params):
|
||||
@@ -33,7 +24,6 @@ def get_rappels_rdv(request):
|
||||
return results.fetchall()
|
||||
|
||||
def get_dossiers_byChantier(request, societe, name):
|
||||
|
||||
query = "CALL spGET_DOSSIERS_byChantier('%s','%s','%s');" % (societe, 'DE', name.replace("'","''"))
|
||||
results = request.dbsession.execute(query).fetchall()
|
||||
return results
|
||||
@@ -226,4 +216,9 @@ def get_tarifs_byGroupe(request, groupe):
|
||||
def get_tarif(request, groupe, ref):
|
||||
query = "SELECT * FROM tarifs WHERE groupe = :groupe and ref = :ref;"
|
||||
results = request.dbsession.execute(query, {'groupe': groupe, 'ref': ref}).first()
|
||||
return results
|
||||
return results
|
||||
|
||||
def get_p_acces(request):
|
||||
query = """SELECT * FROM p_acces ORDER BY code;"""
|
||||
results = request.dbsession.execute(query).fetchall()
|
||||
return results
|
||||
|
||||
@@ -8,7 +8,7 @@
|
||||
<form method="POST" id="frm" class="form-horizontal">
|
||||
<div class="form-group">
|
||||
<div class="col-xs-4">
|
||||
<select class="form-control" id="agenda" name="agenda" onChange="$('#frm').submit()" tal:condition="access > 0">
|
||||
<select class="form-control" id="agenda" name="agenda" onChange="$('#frm').submit()" tal:condition="access > 1">
|
||||
<div tal:repeat="item agendas">
|
||||
<option value="${item.CD_UTI}" tal:attributes="selected agenda==item.CD_UTI and 'selected' or None">${item.NOM}</option>
|
||||
</div>
|
||||
|
||||
@@ -61,7 +61,7 @@
|
||||
<div class="col-sm-offset-3 col-sm-9">
|
||||
<a class="btn btn-default" href="/agenda/${rdv.rdv_debut.strftime('%Y-%m-%d')}">
|
||||
<span class="glyphicon glyphicon-arrow-left"></span> Annuler</a>
|
||||
<button class="btn btn-primary" type="submit" name="form.submitted">
|
||||
<button class="btn btn-primary" type="submit" name="form.submitted" tal:condition="access > 1">
|
||||
<span class="glyphicon glyphicon-ok"></span> Enregistrer</button>
|
||||
<button class="btn btn-danger" type="submit" name="form.deleted"
|
||||
tal:condition="nolig != '0' and logged_in.upper()==rdv.USERMAJ.upper()">
|
||||
|
||||
@@ -15,7 +15,7 @@
|
||||
</div>
|
||||
</a>
|
||||
</div>
|
||||
<div class="col-xs-4">
|
||||
<div class="col-xs-4" tal:condition="access != 1">
|
||||
<a href="${request.application_url}/rdf_list">
|
||||
<div class="info-box bg-green">
|
||||
<span class="info-box-icon"><i class="glyphicon glyphicon-tint"></i></span>
|
||||
@@ -51,7 +51,7 @@
|
||||
</a>
|
||||
</div>
|
||||
<div class="col-xs-4">
|
||||
<a href="${request.application_url}/demandes" tal:condition="access > 0">
|
||||
<a href="${request.application_url}/demandes" tal:condition="access > 1">
|
||||
<div class="info-box bg-gest">
|
||||
<span class="info-box-icon"><i class="glyphicon glyphicon-envelope"></i></span>
|
||||
<div class="info-box-content">
|
||||
@@ -62,7 +62,7 @@
|
||||
</a>
|
||||
</div>
|
||||
<div class="col-xs-4">
|
||||
<a href="${request.application_url}/upload_om" tal:condition="access > 0">
|
||||
<a href="${request.application_url}/upload_om" tal:condition="access > 1">
|
||||
<div class="info-box bg-gest">
|
||||
<span class="info-box-icon"><i class="glyphicon glyphicon-download-alt"></i></span>
|
||||
<div class="info-box-content">
|
||||
@@ -77,7 +77,7 @@
|
||||
<br />
|
||||
<div class="row">
|
||||
<div class="col-xs-4">
|
||||
<a href="${request.application_url}/dem_devis" tal:condition="access > 0">
|
||||
<a href="${request.application_url}/dem_devis" tal:condition="access > 1">
|
||||
<div class="info-box bg-gest">
|
||||
<span class="info-box-icon"><i class="glyphicon glyphicon-folder-open"></i></span>
|
||||
<div class="info-box-content">
|
||||
@@ -91,7 +91,7 @@
|
||||
</a>
|
||||
</div>
|
||||
<div class="col-xs-4">
|
||||
<a href="${request.application_url}/dern_suivis" tal:condition="access > 0">
|
||||
<a href="${request.application_url}/dern_suivis" tal:condition="access > 1">
|
||||
<div class="info-box bg-gest">
|
||||
<span class="info-box-icon"><i class="glyphicon glyphicon-file"></i></span>
|
||||
<div class="info-box-content">
|
||||
@@ -105,7 +105,7 @@
|
||||
</a>
|
||||
</div>
|
||||
<div class="col-xs-4">
|
||||
<a href="${request.application_url}/factures_en_att" tal:condition="access > 0">
|
||||
<a href="${request.application_url}/factures_en_att" tal:condition="access > 1">
|
||||
<div class="info-box bg-gest">
|
||||
<span class="info-box-icon"><i class="glyphicon glyphicon-inbox"></i></span>
|
||||
<div class="info-box-content">
|
||||
@@ -133,7 +133,7 @@
|
||||
</a>
|
||||
</div>
|
||||
<div class="col-xs-4">
|
||||
<a href="${request.application_url}/devis_list">
|
||||
<a href="${request.application_url}/devis_list" tal:condition="logged_in == 'CAO'">
|
||||
<div class="info-box bg-prod">
|
||||
<span class="info-box-icon"><i class="glyphicon glyphicon-text-height"></i></span>
|
||||
<div class="info-box-content">
|
||||
|
||||
@@ -61,7 +61,7 @@
|
||||
<div class="col-md-6">
|
||||
<h4>
|
||||
Statut : ${entete.libelle}
|
||||
[ <a href="#" data-toggle="modal" data-target="#confirmStatut">Modifier le statut</a> ]
|
||||
[ <a href="#" data-toggle="modal" data-target="#confirmStatut" tal:condition="access > 1">Modifier le statut</a> ]
|
||||
</h4>
|
||||
<div tal:condition="type_doc=='DE'">
|
||||
<p>Dernière modif. le <b>${entete.DATEMAJ.strftime('%d/%m/%Y à %H:%M')}</b> par <b>${entete.USERMAJ}</b></p>
|
||||
@@ -70,7 +70,7 @@
|
||||
</div>
|
||||
</div> <!-- row -->
|
||||
<!-- ENTETE entete -->
|
||||
<table class="table table-bordered table-condensed" tal:condition="access > 0">
|
||||
<table class="table table-bordered table-condensed" tal:condition="access > 1">
|
||||
<tr class="well">
|
||||
<th class="text-right">Total HT</th>
|
||||
<th class="text-right">Total TVA</th>
|
||||
@@ -98,8 +98,8 @@
|
||||
<td>${detail.REF}</td>
|
||||
<td>${detail.LIB}</td>
|
||||
<td class="text-right">${detail.QTE}</td>
|
||||
<td class="text-right"><span tal:condition="access > 0">${layout.to_euroz(detail.PRIXHT)}</span></td>
|
||||
<td class="text-right"><span tal:condition="access > 0">${layout.to_euroz(detail.MTHT)}</span></td>
|
||||
<td class="text-right"><span tal:condition="access > 1">${layout.to_euroz(detail.PRIXHT)}</span></td>
|
||||
<td class="text-right"><span tal:condition="access > 1">${layout.to_euroz(detail.MTHT)}</span></td>
|
||||
<td class="text-center">${detail.USERMAJ}</td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
@@ -9,7 +9,8 @@
|
||||
<tr>
|
||||
<td>
|
||||
<h4>CHANTIER</h4>
|
||||
<a href="${request.application_url}/dossier_edit/${nodossier}" class="btn btn-primary" role="button">
|
||||
<a href="${request.application_url}/dossier_edit/${nodossier}" tal:condition="access > 1"
|
||||
class="btn btn-primary" role="button">
|
||||
<span class="glyphicon glyphicon-pencil"></span> Modifier</a>
|
||||
</td>
|
||||
<td>
|
||||
@@ -100,7 +101,7 @@
|
||||
<br />
|
||||
<h4>
|
||||
Statut : <span class="label label-warning">${dossier.libelle}</span>
|
||||
[ <a href="#" data-toggle="modal" data-target="#confirmStatut">Modifier le statut</a> ]
|
||||
[ <a href="#" data-toggle="modal" data-target="#confirmStatut" tal:condition="access > 1">Modifier le statut</a> ]
|
||||
</h4>
|
||||
<p>Dernière modif. le <b>${dossier.DATEMAJ.strftime('%d/%m/%Y à %H:%M')}</b> par <b>${dossier.USERMAJ}</b></p>
|
||||
|
||||
@@ -138,7 +139,7 @@
|
||||
<div class="tab-content">
|
||||
<div id="tab_suivi" class="tab-pane fade in active">
|
||||
<h3>SUIVI du DOSSIER</h3>
|
||||
<p>
|
||||
<p tal:condition="access > 1">
|
||||
<a class="btn btn-success" role="button" href="${request.route_url('suivi_edit', nodossier=nodossier, nolig='0')}">
|
||||
<span class="glyphicon glyphicon-plus"></span> Nouvelle ligne</a>
|
||||
<a class="btn btn-success" role="button" href="${request.route_url('rdv_edit', nodossier=nodossier, nolig='0')}">
|
||||
@@ -207,7 +208,7 @@
|
||||
</td>
|
||||
<td>${detail.date.strftime('%d-%m-%Y')}</td>
|
||||
<td>${detail.nomcli}</td>
|
||||
<td class="text-right"><span tal:condition="access > 0">${layout.to_euro(detail.montant)}</span></td>
|
||||
<td class="text-right"><span tal:condition="access > 1">${layout.to_euro(detail.montant)}</span></td>
|
||||
<td class="text-center">${detail.status}</td>
|
||||
</tr>
|
||||
</table>
|
||||
@@ -215,6 +216,7 @@
|
||||
|
||||
<!-- PANEL DOCS ATTACHES -->
|
||||
<div id="tab_attaches" class="tab-pane fade">
|
||||
<div tal:condition="access > 1">
|
||||
<h3 class="text-center">DOCUMENTS ATTACHES</h3>
|
||||
<p>
|
||||
<a href="${request.application_url}/upload_doc/${nodossier}/CLT" class="btn btn-success" role="button">
|
||||
@@ -247,7 +249,7 @@
|
||||
<td class="text-center">${detail.usermaj}</td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
</div>
|
||||
<h3 class="text-center">DOCUMENTS TECHNIQUES</h3>
|
||||
<p>
|
||||
<a href="${request.application_url}/upload_doc/${nodossier}/FRN" class="btn btn-success" role="button">
|
||||
|
||||
@@ -36,7 +36,7 @@
|
||||
<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">
|
||||
<button class="btn btn-primary" type="submit" name="form.submitted" tal:condition="access > 1">
|
||||
<span class="glyphicon glyphicon-ok"></span> Enregistrer</button>
|
||||
<button class="btn btn-danger" type="submit" name="form.deleted"
|
||||
tal:condition="nolig != '0' and logged_in.upper()==suivi.USERMAJ">
|
||||
|
||||
@@ -48,7 +48,8 @@
|
||||
<div class="col-sm-9">
|
||||
<select class="form-control" id="access" name="access">
|
||||
<div tal:repeat="item access">
|
||||
<option value="${item}" tal:attributes="selected str(individu.access)==item[0] and 'selected' or None">${item}</option>
|
||||
<option value="${item.code}" tal:attributes="selected individu.access==item.code and 'selected' or None">
|
||||
${item.code} | ${item.libelle}</option>
|
||||
</div>
|
||||
</select>
|
||||
</div>
|
||||
|
||||
@@ -32,6 +32,9 @@ def rdv_edit(request):
|
||||
url = request.route_url("rdv_edit", nodossier=nodossier, nolig=nolig)
|
||||
message = ''
|
||||
|
||||
# lire son niveau d'accès
|
||||
member = get_member_by_id(request, logged_in)
|
||||
access = member.access
|
||||
# lire la liste des users avec agenda
|
||||
agendas = get_users_agenda(request, '')
|
||||
# liste des types de rdv
|
||||
@@ -86,6 +89,7 @@ def rdv_edit(request):
|
||||
'agendas': agendas,
|
||||
'rdv': rdv,
|
||||
'message': message,
|
||||
'access': access,
|
||||
}
|
||||
|
||||
@view_config(route_name='agenda', renderer='../templates/agenda/agenda.pt', permission='view')
|
||||
|
||||
@@ -180,6 +180,10 @@ def suivi_edit(request):
|
||||
nolig = request.matchdict['nolig']
|
||||
url = request.route_url("suivi_edit", nodossier=nodossier, nolig=nolig)
|
||||
|
||||
# lire son niveau d'accès
|
||||
member = get_member_by_id(request, logged_in)
|
||||
access = member.access
|
||||
|
||||
message = ''
|
||||
if nolig == '0':
|
||||
# nouveau
|
||||
@@ -226,6 +230,7 @@ def suivi_edit(request):
|
||||
'nolig': nolig,
|
||||
'suivi': suivi,
|
||||
'message': message,
|
||||
'access': access,
|
||||
}
|
||||
|
||||
@view_config(route_name='dossier_edit', renderer='../templates/dossier/dossier_edit.pt', permission='view')
|
||||
|
||||
@@ -58,17 +58,8 @@ def users(request):
|
||||
etat = 'Inactif'
|
||||
else:
|
||||
etat = ''
|
||||
|
||||
if item.access == 5:
|
||||
role = 'Gestion'
|
||||
elif item.access == 8:
|
||||
role = 'Compta'
|
||||
elif item.access == 9:
|
||||
role = 'Admin'
|
||||
else:
|
||||
role = 'Production'
|
||||
|
||||
d = (item.CD_UTI, item.NOM, item.email, item.agenda, role, item.societe, etat)
|
||||
|
||||
d = (item.CD_UTI, item.NOM, item.email, item.agenda, item.libelle, item.societe, etat)
|
||||
liste.append(d)
|
||||
|
||||
return {
|
||||
@@ -113,7 +104,8 @@ 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", "8 | Comptabilité", "9 | Administration"]
|
||||
|
||||
access = get_p_acces(request)
|
||||
societes = ['PE','ME','PL','PO','CD']
|
||||
|
||||
if cd_uti == '0':
|
||||
@@ -122,7 +114,7 @@ def user_edit(request):
|
||||
individu['CD_UTI'] = '0'
|
||||
individu['NOM'] = ''
|
||||
individu['email'] = ''
|
||||
individu['access'] = '0 | Production'
|
||||
individu['access'] = 0
|
||||
individu['actif'] = 1
|
||||
individu['agenda'] = ''
|
||||
individu['societe'] = ''
|
||||
|
||||
Reference in New Issue
Block a user