annotate sat_website/templatetags/utils.py @ 37:c570778a7620

add adhesion.html (needs some change)
author souliane <souliane@mailoo.org>
date Tue, 27 Jan 2015 08:17:55 +0100
parents 9d553570cc61
children a18800261cf6
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
27
eda4deefecd1 reorganisation of the menu using submenus
souliane <souliane@mailoo.org>
parents:
diff changeset
1 from django import template
34
9d553570cc61 add adhesion_form.html and thank_you.html
souliane <souliane@mailoo.org>
parents: 29
diff changeset
2 from django.forms import RadioSelect, CheckboxInput
27
eda4deefecd1 reorganisation of the menu using submenus
souliane <souliane@mailoo.org>
parents:
diff changeset
3 register = template.Library()
eda4deefecd1 reorganisation of the menu using submenus
souliane <souliane@mailoo.org>
parents:
diff changeset
4
eda4deefecd1 reorganisation of the menu using submenus
souliane <souliane@mailoo.org>
parents:
diff changeset
5 @register.filter
eda4deefecd1 reorganisation of the menu using submenus
souliane <souliane@mailoo.org>
parents:
diff changeset
6 def is_tuple(value):
eda4deefecd1 reorganisation of the menu using submenus
souliane <souliane@mailoo.org>
parents:
diff changeset
7 """Tell if this value is a tuple or not.
eda4deefecd1 reorganisation of the menu using submenus
souliane <souliane@mailoo.org>
parents:
diff changeset
8
eda4deefecd1 reorganisation of the menu using submenus
souliane <souliane@mailoo.org>
parents:
diff changeset
9 @param value (obj): any object
eda4deefecd1 reorganisation of the menu using submenus
souliane <souliane@mailoo.org>
parents:
diff changeset
10 @return: True if value is a tuple
eda4deefecd1 reorganisation of the menu using submenus
souliane <souliane@mailoo.org>
parents:
diff changeset
11 """
eda4deefecd1 reorganisation of the menu using submenus
souliane <souliane@mailoo.org>
parents:
diff changeset
12 # XXX: we would like to have is_type with an argument instead, but it would
eda4deefecd1 reorganisation of the menu using submenus
souliane <souliane@mailoo.org>
parents:
diff changeset
13 # rely on a strange comparison - isinstance(value, arg) doesn't work here
eda4deefecd1 reorganisation of the menu using submenus
souliane <souliane@mailoo.org>
parents:
diff changeset
14 return type(value) == tuple
eda4deefecd1 reorganisation of the menu using submenus
souliane <souliane@mailoo.org>
parents:
diff changeset
15
29
b45621706d83 use Bootstrap carousels to display images and videos galeries:
souliane <souliane@mailoo.org>
parents: 27
diff changeset
16 @register.filter
34
9d553570cc61 add adhesion_form.html and thank_you.html
souliane <souliane@mailoo.org>
parents: 29
diff changeset
17 def is_radio(value):
9d553570cc61 add adhesion_form.html and thank_you.html
souliane <souliane@mailoo.org>
parents: 29
diff changeset
18 """Tell if this value is a RadioSelect or not.
9d553570cc61 add adhesion_form.html and thank_you.html
souliane <souliane@mailoo.org>
parents: 29
diff changeset
19
9d553570cc61 add adhesion_form.html and thank_you.html
souliane <souliane@mailoo.org>
parents: 29
diff changeset
20 @param value (obj): any object
9d553570cc61 add adhesion_form.html and thank_you.html
souliane <souliane@mailoo.org>
parents: 29
diff changeset
21 @return: True if value is a RadioSelect
9d553570cc61 add adhesion_form.html and thank_you.html
souliane <souliane@mailoo.org>
parents: 29
diff changeset
22 """
9d553570cc61 add adhesion_form.html and thank_you.html
souliane <souliane@mailoo.org>
parents: 29
diff changeset
23 return type(value) == RadioSelect
9d553570cc61 add adhesion_form.html and thank_you.html
souliane <souliane@mailoo.org>
parents: 29
diff changeset
24
9d553570cc61 add adhesion_form.html and thank_you.html
souliane <souliane@mailoo.org>
parents: 29
diff changeset
25 @register.filter
9d553570cc61 add adhesion_form.html and thank_you.html
souliane <souliane@mailoo.org>
parents: 29
diff changeset
26 def is_checkbox(value):
9d553570cc61 add adhesion_form.html and thank_you.html
souliane <souliane@mailoo.org>
parents: 29
diff changeset
27 """Tell if this value is a CheckboxInput or not.
9d553570cc61 add adhesion_form.html and thank_you.html
souliane <souliane@mailoo.org>
parents: 29
diff changeset
28
9d553570cc61 add adhesion_form.html and thank_you.html
souliane <souliane@mailoo.org>
parents: 29
diff changeset
29 @param value (obj): any object
9d553570cc61 add adhesion_form.html and thank_you.html
souliane <souliane@mailoo.org>
parents: 29
diff changeset
30 @return: True if value is a CheckboxInput
9d553570cc61 add adhesion_form.html and thank_you.html
souliane <souliane@mailoo.org>
parents: 29
diff changeset
31 """
9d553570cc61 add adhesion_form.html and thank_you.html
souliane <souliane@mailoo.org>
parents: 29
diff changeset
32 return type(value) == CheckboxInput
9d553570cc61 add adhesion_form.html and thank_you.html
souliane <souliane@mailoo.org>
parents: 29
diff changeset
33
9d553570cc61 add adhesion_form.html and thank_you.html
souliane <souliane@mailoo.org>
parents: 29
diff changeset
34 @register.filter
9d553570cc61 add adhesion_form.html and thank_you.html
souliane <souliane@mailoo.org>
parents: 29
diff changeset
35 def selected_label(select):
9d553570cc61 add adhesion_form.html and thank_you.html
souliane <souliane@mailoo.org>
parents: 29
diff changeset
36 """Return the label of the single selected option.
9d553570cc61 add adhesion_form.html and thank_you.html
souliane <souliane@mailoo.org>
parents: 29
diff changeset
37
9d553570cc61 add adhesion_form.html and thank_you.html
souliane <souliane@mailoo.org>
parents: 29
diff changeset
38 @param select: a BoundField object bound to a Select with single choice.
9d553570cc61 add adhesion_form.html and thank_you.html
souliane <souliane@mailoo.org>
parents: 29
diff changeset
39 @return: unicode
9d553570cc61 add adhesion_form.html and thank_you.html
souliane <souliane@mailoo.org>
parents: 29
diff changeset
40 """
9d553570cc61 add adhesion_form.html and thank_you.html
souliane <souliane@mailoo.org>
parents: 29
diff changeset
41 for value, label in select.field.choices:
9d553570cc61 add adhesion_form.html and thank_you.html
souliane <souliane@mailoo.org>
parents: 29
diff changeset
42 if value == select.value():
9d553570cc61 add adhesion_form.html and thank_you.html
souliane <souliane@mailoo.org>
parents: 29
diff changeset
43 return label
9d553570cc61 add adhesion_form.html and thank_you.html
souliane <souliane@mailoo.org>
parents: 29
diff changeset
44 return None
9d553570cc61 add adhesion_form.html and thank_you.html
souliane <souliane@mailoo.org>
parents: 29
diff changeset
45
9d553570cc61 add adhesion_form.html and thank_you.html
souliane <souliane@mailoo.org>
parents: 29
diff changeset
46 @register.filter
29
b45621706d83 use Bootstrap carousels to display images and videos galeries:
souliane <souliane@mailoo.org>
parents: 27
diff changeset
47 def buffer(value, n):
b45621706d83 use Bootstrap carousels to display images and videos galeries:
souliane <souliane@mailoo.org>
parents: 27
diff changeset
48 """Split values in sub-lists of n elements.
b45621706d83 use Bootstrap carousels to display images and videos galeries:
souliane <souliane@mailoo.org>
parents: 27
diff changeset
49
b45621706d83 use Bootstrap carousels to display images and videos galeries:
souliane <souliane@mailoo.org>
parents: 27
diff changeset
50 @param value (list): a list object
b45621706d83 use Bootstrap carousels to display images and videos galeries:
souliane <souliane@mailoo.org>
parents: 27
diff changeset
51 @return: a list containing sub-lists
b45621706d83 use Bootstrap carousels to display images and videos galeries:
souliane <souliane@mailoo.org>
parents: 27
diff changeset
52
b45621706d83 use Bootstrap carousels to display images and videos galeries:
souliane <souliane@mailoo.org>
parents: 27
diff changeset
53 For example:
b45621706d83 use Bootstrap carousels to display images and videos galeries:
souliane <souliane@mailoo.org>
parents: 27
diff changeset
54
b45621706d83 use Bootstrap carousels to display images and videos galeries:
souliane <souliane@mailoo.org>
parents: 27
diff changeset
55 >>> buffer(range(10), 2)
b45621706d83 use Bootstrap carousels to display images and videos galeries:
souliane <souliane@mailoo.org>
parents: 27
diff changeset
56 [[0, 1], [2, 3], [4, 5], [6, 7], [8, 9]]
b45621706d83 use Bootstrap carousels to display images and videos galeries:
souliane <souliane@mailoo.org>
parents: 27
diff changeset
57
b45621706d83 use Bootstrap carousels to display images and videos galeries:
souliane <souliane@mailoo.org>
parents: 27
diff changeset
58 >>> buffer(range(10), 3)
b45621706d83 use Bootstrap carousels to display images and videos galeries:
souliane <souliane@mailoo.org>
parents: 27
diff changeset
59 [[0, 1, 2], [3, 4, 5], [6, 7, 8], [9]]
b45621706d83 use Bootstrap carousels to display images and videos galeries:
souliane <souliane@mailoo.org>
parents: 27
diff changeset
60
b45621706d83 use Bootstrap carousels to display images and videos galeries:
souliane <souliane@mailoo.org>
parents: 27
diff changeset
61 >>> buffer(range(10), 4)
b45621706d83 use Bootstrap carousels to display images and videos galeries:
souliane <souliane@mailoo.org>
parents: 27
diff changeset
62 [[0, 1, 2, 3], [4, 5, 6, 7], [8, 9]]
b45621706d83 use Bootstrap carousels to display images and videos galeries:
souliane <souliane@mailoo.org>
parents: 27
diff changeset
63 """
b45621706d83 use Bootstrap carousels to display images and videos galeries:
souliane <souliane@mailoo.org>
parents: 27
diff changeset
64 result = []
b45621706d83 use Bootstrap carousels to display images and videos galeries:
souliane <souliane@mailoo.org>
parents: 27
diff changeset
65 index = 0
b45621706d83 use Bootstrap carousels to display images and videos galeries:
souliane <souliane@mailoo.org>
parents: 27
diff changeset
66 while index < len(value):
b45621706d83 use Bootstrap carousels to display images and videos galeries:
souliane <souliane@mailoo.org>
parents: 27
diff changeset
67 result.append(value[index:index + n])
b45621706d83 use Bootstrap carousels to display images and videos galeries:
souliane <souliane@mailoo.org>
parents: 27
diff changeset
68 index += n
b45621706d83 use Bootstrap carousels to display images and videos galeries:
souliane <souliane@mailoo.org>
parents: 27
diff changeset
69 return result