diff --git a/mondumas/models/agenda.py b/mondumas/models/agenda.py index 19452d4..2c32b9f 100644 --- a/mondumas/models/agenda.py +++ b/mondumas/models/agenda.py @@ -20,13 +20,13 @@ def execute_query(request, query, params): mark_changed(request.dbsession) transaction.commit() -def get_agendas(request,code): - if code =='': - query = "SELECT * FROM p_agenda where actif = 1 order by code;" +def get_users_actifs(request,cd_uti): + if cd_uti =='': + query = "SELECT * FROM p_users WHERE agenda IS NOT NULL ORDER BY NOM" results = request.dbsession.execute(query).fetchall() else: - query = "SELECT * FROM p_agenda where code = :code;" - results = request.dbsession.execute(query, {'code': code}).first() + query = "SELECT * FROM p_users WHERE cd_uti = :cd_uti;" + results = request.dbsession.execute(query, {'cd_uti': cd_uti}).first() return results def get_table(code): @@ -75,7 +75,7 @@ def get_dossier_rdv_by_no(request,nodossier, nolig): def get_rendez_vous(request, itc): d = datetime.now() - d = d - dateutil.relativedelta.relativedelta(months=2) + d = d - dateutil.relativedelta.relativedelta(months=3) # début du mois M-2 datedeb = d.strftime('%Y-%m-01') diff --git a/mondumas/routes.py b/mondumas/routes.py index 7f913e0..a48cade 100644 --- a/mondumas/routes.py +++ b/mondumas/routes.py @@ -9,5 +9,6 @@ def includeme(config): config.add_route('last_connected', '/last_connected') config.add_route('login', '/login') config.add_route('logout', '/logout') + config.add_route('planning', '/planning') config.add_route('redefinir_mdp', '/redefinir_mdp/{lien}') diff --git a/mondumas/templates/agenda/agenda.pt b/mondumas/templates/agenda/agenda.pt index 6f30839..96e7d76 100644 --- a/mondumas/templates/agenda/agenda.pt +++ b/mondumas/templates/agenda/agenda.pt @@ -8,18 +8,6 @@ Retour -
-
- -
-
- -
-

RDV Peinture RDV Menuiserie  diff --git a/mondumas/templates/agenda/planning.pt b/mondumas/templates/agenda/planning.pt new file mode 100644 index 0000000..9d74f87 --- /dev/null +++ b/mondumas/templates/agenda/planning.pt @@ -0,0 +1,59 @@ + +

+
+ +
+
+ +
+
+ +
+
+ +
+
+
+

+ RDV Peinture RDV Menuiserie  + RDV Plomberiee RDV Polynet  +

+
+
+
+
+
+
+
+
+
+
+ + + +
+ + + diff --git a/mondumas/templates/home.pt b/mondumas/templates/home.pt index a56a570..49ae8ce 100644 --- a/mondumas/templates/home.pt +++ b/mondumas/templates/home.pt @@ -7,14 +7,19 @@

-

AGENDA

+

MON AGENDA

+
+
+ +
+

PLANNING


-
+

Derniers connectés

diff --git a/mondumas/views/agenda.py b/mondumas/views/agenda.py index b1d6b37..97b3849 100644 --- a/mondumas/views/agenda.py +++ b/mondumas/views/agenda.py @@ -98,35 +98,16 @@ def dossier_view(request): 'details': details, } -@view_config(route_name='agenda', renderer='../templates/agenda/agenda.pt') +@view_config(route_name='agenda', renderer='../templates/agenda/agenda.pt', permission='view') def agenda(request): logged_in = authenticated_userid(request) - agenda = 'J' - access = 0 member = get_member_by_id(request, logged_in) - if member: - access = member.access - # determiner l'agenda du user - agenda = member.agenda - if not agenda: - agenda = 'J' - else: + if not member: request.session.flash(u"Identifiant %s introuvable" % (logged_in), 'danger') - return HTTPFound(location=request.route_url("/")) + return HTTPFound(location=request.route_url("/home")) - if access >= 5: - # si gestionnaire, lire les différents AGENDAS - agendas = get_agendas(request,'') - else: - agendas = [] - - # prendre en compte les paramètres de saisie - if 'agenda' in request.params: - agenda = request.params["agenda"] - - personne = get_agendas(request,agenda) - rows = get_rendez_vous(request, agenda) - page_title = u"Agenda de %s" % personne.nom + rows = get_rendez_vous(request, logged_in) + page_title = u"Agenda de %s" % member.NOM # construire la liste des events events = [] @@ -159,6 +140,59 @@ def agenda(request): return { 'page_title': page_title, 'fullcalendar_events': json.dumps(events), + } + +@view_config(route_name='planning', renderer='../templates/agenda/planning.pt', permission='view') +def planning(request): + logged_in = authenticated_userid(request) + member = get_member_by_id(request, logged_in) + if not member: + request.session.flash(u"Identifiant %s introuvable" % (logged_in), 'danger') + return HTTPFound(location=request.route_url("/home")) + + agenda = 'JMD' + # determiner le rôle du user + access = member.access + agendas = get_users_actifs(request,'') + + # prendre en compte les paramètres de saisie + if 'agenda' in request.params: + agenda = request.params["agenda"] + + personne = get_users_actifs(request,agenda) + rows = get_rendez_vous(request, agenda) + + # construire la liste des events + events = [] + for row in rows: + event_url = 'dossier_view/%s' % (row.nodossier) + event_title = row.c_nom + + # déterminer la couleur de l'event selon la societe + societe = row.nodossier[0:2] + if societe == "PE": + color = "#d9534f" # rouge danger + elif societe == "PL": + color = "#5cb85c" # vert success + elif societe == "PL": + color = "#5bc0de" # bleu info + else: + color = "#f0ad4e" # orange warning + + json_event = { + 'title': event_title, + 'start': row.rdv_debut.strftime('%Y-%m-%d %H:%M:%S'), + 'end': row.rdv_fin.strftime('%Y-%m-%d %H:%M:%S'), + 'allDay': False, + 'color': color, + 'url': event_url, + } + events.append(json_event) + + + return { + 'page_title': 'Planning', + 'fullcalendar_events': json.dumps(events), 'agendas': agendas, 'agenda': agenda, 'access': access,