Commit | Line | Data |
---|---|---|
0b2edb6e OL |
1 | # -*- encoding: utf-8 -*- |
2 | ||
bbf31587 EMS |
3 | import os |
4 | ||
5579d48d | 5 | from django import template |
75f0e87b | 6 | |
2c8d834d OL |
7 | from project.groups import grp_correspondants_rh, grp_administrateurs, \ |
8 | grp_drh, grp_drh2 | |
d41d8e47 | 9 | |
286d0aa9 | 10 | from project.dae.workflow import ETATS_EDITABLE |
d41d8e47 | 11 | |
5579d48d OL |
12 | |
13 | register = template.Library() | |
14 | ||
15 | @register.filter | |
3a62d4fe | 16 | def test_membre_drh(user): |
2c8d834d OL |
17 | grps = user.groups.all() |
18 | if grp_drh in grps or grp_drh2 in grps: | |
19 | return True | |
20 | else: | |
21 | return False | |
3a62d4fe OL |
22 | |
23 | @register.filter | |
5579d48d OL |
24 | def peut_ajouter(user): |
25 | for g in user.groups.all(): | |
d8cfc3d5 | 26 | if g in (grp_administrateurs, grp_correspondants_rh, grp_drh): |
5579d48d OL |
27 | return True |
28 | return False | |
29 | ||
286d0aa9 | 30 | @register.filter |
67c10912 OL |
31 | def peut_importer(user): |
32 | return grp_drh in user.groups.all() | |
33 | ||
34 | @register.filter | |
e7ee680f OL |
35 | def est_editable(obj, user): |
36 | klass = obj.__class__ | |
37 | groupes_users = user.groups.all() | |
c511cd1f EMS |
38 | if obj.etat in ETATS_EDITABLE and \ |
39 | (obj in klass.objects.mes_choses_a_faire(user).all() or grp_drh in groupes_users): | |
286d0aa9 OL |
40 | return True |
41 | else: | |
42 | return False | |
43 | ||
0b2edb6e OL |
44 | @register.filter |
45 | def region_ou_service(implantation): | |
46 | if implantation.id == 15: | |
47 | return u"Services centraux de Montréal (SCM)" | |
48 | if implantation.id == 19: | |
49 | return u"Services centraux de Paris (SCP)" | |
50 | return implantation.region | |
bbf31587 EMS |
51 | |
52 | @register.filter | |
53 | def basename(path): | |
54 | return os.path.basename(path) | |
428e3c0b EMS |
55 | |
56 | @register.inclusion_tag('dae/sort_header.html', takes_context=True) | |
57 | def sort_header(context, field, title): | |
58 | """Génère une entête qu'on peut cliquer pour trier la colonne correspondante dans une table.""" | |
59 | qs = context['request'].GET.copy() | |
60 | current = qs.get('tri', None) | |
61 | if current == field: | |
62 | cls = 'header headerSortUp' | |
63 | qs['tri'] = '-' + field | |
64 | elif current == '-' + field: | |
65 | cls = 'header headerSortDown' | |
66 | qs['tri'] = field | |
67 | else: | |
68 | cls = 'header' | |
69 | qs['tri'] = field | |
70 | return {'title': title, 'qs': qs.urlencode(), 'cls': cls} | |
71 | ||
72 | @register.inclusion_tag('dae/pagination.html', takes_context=True) | |
73 | def pagination(context, page): | |
74 | """Génère la navigation permettant de se promener de page en page.""" | |
75 | qs = context['request'].GET | |
76 | previous_qs = qs.copy() | |
77 | previous_qs['page'] = page.previous_page_number() | |
78 | next_qs = qs.copy() | |
79 | next_qs['page'] = page.next_page_number() | |
80 | return {'page': page, 'previous_qs': previous_qs.urlencode(), 'next_qs': next_qs.urlencode()} |