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