From a9b57890d8ee96361264e9d13c032b4c3b6adaad Mon Sep 17 00:00:00 2001 From: Phuoc Cao Date: Wed, 26 Apr 2017 21:35:12 +0200 Subject: [PATCH] ajout last_connected.pt --- mondumas/layout.py | 47 +++++++++++++++++----------- mondumas/models/default.py | 10 ++++++ mondumas/routes.py | 1 + mondumas/security.py | 5 ++- mondumas/templates/agenda/agenda.pt | 5 ++- mondumas/templates/home.pt | 7 ++++- mondumas/templates/last_connected.pt | 26 +++++++++++++++ mondumas/views/default.py | 12 +++++++ 8 files changed, 89 insertions(+), 24 deletions(-) create mode 100644 mondumas/templates/last_connected.pt diff --git a/mondumas/layout.py b/mondumas/layout.py index 58a87d3..3c71bf4 100644 --- a/mondumas/layout.py +++ b/mondumas/layout.py @@ -1,31 +1,40 @@ # -*- coding: utf8 -*- from pyramid_layout.layout import layout_config from views.default import ( - to_euro, - to_percent, - to_decimal, - ) + to_euro, + to_percent, + to_decimal, +) from pyramid.security import authenticated_userid @layout_config(template='templates/layouts/global_layout.pt') class GlobalLayout(object): - # page_title = u"Pagode Tinh-Do" + # page_title = u"Pagode Tinh-Do" - def __init__(self, context, request): - self.context = context - self.request = request - self.home_url = request.application_url + def __init__(self, context, request): + self.context = context + self.request = request + self.home_url = request.application_url - def to_decimal(self, x): - return to_decimal(x) + def to_decimal(self, x): + return to_decimal(x) - def to_euro(self, x): - return to_euro(x) + def to_euro(self, x): + return to_euro(x) - def to_percent(self, x): - return to_percent(x) + def to_percent(self, x): + return to_percent(x) - def isAnonymous(self): - user = authenticated_userid(self.request) - return user is None - + def isAnonymous(self): + user = authenticated_userid(self.request) + return user is None + + def isAdmin(self): + logged_in = authenticated_userid(self.request) + is_admin = False + if logged_in is not None: + groups = groupfinder(logged_in, self.request) + if 'group:administrators' in groups: + is_admin = True + + return is_admin diff --git a/mondumas/models/default.py b/mondumas/models/default.py index 281ca08..61847d2 100644 --- a/mondumas/models/default.py +++ b/mondumas/models/default.py @@ -46,3 +46,13 @@ def update_membre_mdp(request, login, password): query = "UPDATE p_users SET mdp = SHA1(:password), mdp_oublie=NULL, mdp_oublie_date=NULL WHERE CD_UTI=:login;" execute_query(request, query, {'login': login, 'password': password}) +def update_last_connection(request, login): + """Update last connection for login """ + query = "UPDATE p_users SET dern_cnx_le=NOW() WHERE CD_UTI=:login;" + execute_query(request, query, {'login': login}) + +def get_members_by_last_connection(request, ): + # lire les donnees de l'eleve + query = "SELECT * FROM p_users WHERE dern_cnx_le IS NOT NULL ORDER BY dern_cnx_le DESC" + results = request.dbsession.execute(query, ).fetchall() + return results diff --git a/mondumas/routes.py b/mondumas/routes.py index 8d13932..7f913e0 100644 --- a/mondumas/routes.py +++ b/mondumas/routes.py @@ -6,6 +6,7 @@ def includeme(config): config.add_route('dossier_view', '/dossier_view/{nodossier}') config.add_route('rdv_edit','/rdv_edit/{nodossier}/{nolig}') config.add_route('envoyer_mdp', '/envoyer_mdp') + config.add_route('last_connected', '/last_connected') config.add_route('login', '/login') config.add_route('logout', '/logout') config.add_route('redefinir_mdp', '/redefinir_mdp/{lien}') diff --git a/mondumas/security.py b/mondumas/security.py index c7d8c01..c27e419 100644 --- a/mondumas/security.py +++ b/mondumas/security.py @@ -4,9 +4,8 @@ def groupfinder(userid, request): member = get_member_by_id(request, userid) if member: - mbr_id = member.CD_UTI - # Chi hay Phuoc ? - if mbr_id == 8 or mbr_id == 9: + # Roles administrateur ? + if member.access == 9: return ['group:administrators'] else: return [] # it means that userid is logged in (it returns None if userid isn't logged in) diff --git a/mondumas/templates/agenda/agenda.pt b/mondumas/templates/agenda/agenda.pt index 565d4fa..6f30839 100644 --- a/mondumas/templates/agenda/agenda.pt +++ b/mondumas/templates/agenda/agenda.pt @@ -41,10 +41,13 @@ $(document).ready(function() { $('#calendar').fullCalendar({ locale: 'fr', header: { - left: 'agendaDay agendaWeek month', + left: 'agendaDay agendaWeek month listMonth', center: 'prev title next', right: 'today' }, + defaultView: 'agendaWeek', + minTime: "07:00:00", + maxTime: "21:00:00", events:${fullcalendar_events}, }); }); diff --git a/mondumas/templates/home.pt b/mondumas/templates/home.pt index 0f1ac4f..a56a570 100644 --- a/mondumas/templates/home.pt +++ b/mondumas/templates/home.pt @@ -11,7 +11,12 @@
-
+

diff --git a/mondumas/templates/last_connected.pt b/mondumas/templates/last_connected.pt new file mode 100644 index 0000000..991640d --- /dev/null +++ b/mondumas/templates/last_connected.pt @@ -0,0 +1,26 @@ + +
+ + +
+ + + + + + + + + + +
DateCodeNomemail
+ + + +
+
+ +
+
+ + diff --git a/mondumas/views/default.py b/mondumas/views/default.py index 0fbbd95..1159e93 100644 --- a/mondumas/views/default.py +++ b/mondumas/views/default.py @@ -164,6 +164,10 @@ def login(request): if record : # mot de passe hash valide ? if record.mdp == hashlib.sha1(password).hexdigest(): + update_last_connection(request, login) + # force le commit car il ne se fait pas automatiquement après l'update + transaction.commit() + headers = remember(request, login) return HTTPFound(location=came_from, headers=headers) @@ -177,6 +181,14 @@ def login(request): 'message': message, } +@view_config(route_name='last_connected', renderer='../templates/last_connected.pt', permission='manage') +def last_connected(request): + items = get_members_by_last_connection(request) + + return { + 'page_title': u"Derniers connectés", + 'items': items, + } @view_config(route_name='logout') def logout(request):