création acces = Consultation et table p_acces

This commit is contained in:
2021-11-10 18:31:31 +01:00
parent 3c23bf36ea
commit c8883bda11
12 changed files with 53 additions and 59 deletions

View File

@@ -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)

View File

@@ -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

View File

@@ -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>

View File

@@ -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()">

View File

@@ -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">

View File

@@ -61,7 +61,7 @@
<div class="col-md-6">
<h4>
Statut : ${entete.libelle}&nbsp;&nbsp;&nbsp;
[ <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>

View File

@@ -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>&nbsp;Modifier</a>
</td>
<td>
@@ -100,7 +101,7 @@
<br />
<h4>
Statut : <span class="label label-warning">${dossier.libelle}</span>&nbsp;&nbsp;&nbsp;
[ <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">

View File

@@ -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">

View File

@@ -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>

View File

@@ -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')

View File

@@ -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')

View File

@@ -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'] = ''