1 |
c15cd5d6
|
Benjamin Dauvergne
|
# -*- coding: utf-8 -*-
|
2 |
|
|
|
3 |
2e9ee32b
|
Benjamin Dauvergne
|
from django.shortcuts import render, redirect
|
4 |
c15cd5d6
|
Benjamin Dauvergne
|
from django.template.defaultfilters import slugify
|
5 |
|
|
|
6 |
2e9ee32b
|
Benjamin Dauvergne
|
from cbv import HOME_SERVICE_COOKIE, TemplateView
|
7 |
c15cd5d6
|
Benjamin Dauvergne
|
|
8 |
2e9ee32b
|
Benjamin Dauvergne
|
from calebasse.ressources.models import Service
|
9 |
1ae7d450
|
Mikaël Ates
|
from calebasse.middleware.request import get_request
|
10 |
|
|
from calebasse.utils import is_validator
|
11 |
|
|
|
12 |
c15cd5d6
|
Benjamin Dauvergne
|
|
13 |
|
|
APPLICATIONS = (
|
14 |
87abc503
|
Mikaël Ates
|
(u'Gestion des dossiers', 'dossiers', False),
|
15 |
|
|
(u'Agenda', 'agenda', False),
|
16 |
90ff0811
|
Jérôme Schneider
|
(u'Saisie des actes', 'actes', True),
|
17 |
64ec5b79
|
Mikaël Ates
|
(u'Facturation et décompte', 'facturation', True),
|
18 |
87abc503
|
Mikaël Ates
|
(u'Gestion des personnes', 'personnes', True),
|
19 |
|
|
(u'Gestion des ressources', 'ressources', True),
|
20 |
5178d952
|
Mikaël Ates
|
(u'Statistiques', 'statistics', True),
|
21 |
c15cd5d6
|
Benjamin Dauvergne
|
)
|
22 |
|
|
|
23 |
2e9ee32b
|
Benjamin Dauvergne
|
def redirect_to_homepage(request):
|
24 |
|
|
service_name = request.COOKIES.get(HOME_SERVICE_COOKIE, 'cmpp').lower()
|
25 |
|
|
return redirect('homepage', service=service_name)
|
26 |
c15cd5d6
|
Benjamin Dauvergne
|
|
27 |
2e9ee32b
|
Benjamin Dauvergne
|
class Homepage(TemplateView):
|
28 |
|
|
template_name='calebasse/homepage.html'
|
29 |
23bca0c9
|
Serghei MIHAI
|
cookies_to_clear = [('agenda-tabs', )]
|
30 |
efe3f40d
|
Serghei MIHAI
|
|
31 |
|
|
def dispatch(self, request, **kwargs):
|
32 |
|
|
if 'service' in kwargs:
|
33 |
23bca0c9
|
Serghei MIHAI
|
self.cookies_to_clear = [('agenda-tabs',
|
34 |
0cbf950f
|
Serghei MIHAI
|
'/%s/agenda' % kwargs['service']),
|
35 |
|
|
('agenda-ressource-tabs',
|
36 |
|
|
'/%s/agenda' % kwargs['service']),
|
37 |
efe3f40d
|
Serghei MIHAI
|
]
|
38 |
|
|
return super(Homepage, self).dispatch(request, **kwargs)
|
39 |
2e9ee32b
|
Benjamin Dauvergne
|
|
40 |
|
|
def get_context_data(self, **kwargs):
|
41 |
|
|
services = Service.objects.values_list('name', 'slug')
|
42 |
2fc71f9b
|
Mikaël Ates
|
services = sorted(services, key=lambda tup: tup[0])
|
43 |
2e9ee32b
|
Benjamin Dauvergne
|
ctx = super(Homepage, self).get_context_data(**kwargs)
|
44 |
1ae7d450
|
Mikaël Ates
|
applications = list(APPLICATIONS)
|
45 |
2e9ee32b
|
Benjamin Dauvergne
|
ctx.update({
|
46 |
1ae7d450
|
Mikaël Ates
|
'applications': applications,
|
47 |
2e9ee32b
|
Benjamin Dauvergne
|
'services': services,
|
48 |
|
|
'service_name': self.service.name,
|
49 |
|
|
})
|
50 |
|
|
return ctx
|
51 |
|
|
|
52 |
|
|
homepage = Homepage.as_view()
|