Files
dumas_gestion/mondumas/views/parametres.py
2018-10-16 15:15:29 +02:00

166 lines
5.0 KiB
Python

# -*- 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 *
@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.dern_cnx_le:
der_cnx_le = item.dern_cnx_le.strftime('%d/%m/%Y - %H:%M')
else:
der_cnx_le = ""
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, der_cnx_le, etat)
liste.append(d)
return {
'page_title': u'Liste des utilisateurs',
'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),
}