annotate sat_website/templatetags/utils.py @ 29:b45621706d83

use Bootstrap carousels to display images and videos galeries: - one carousel for a 3x3 thumbnails grid - a second one in a modal window to view bigger pictures when a thumbnail is clicked
author souliane <souliane@mailoo.org>
date Wed, 21 Jan 2015 20:13:19 +0100
parents eda4deefecd1
children 9d553570cc61
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
eda4deefecd1 reorganisation of the menu using submenus
souliane <souliane@mailoo.org>
parents:
diff changeset
2 register = template.Library()
eda4deefecd1 reorganisation of the menu using submenus
souliane <souliane@mailoo.org>
parents:
diff changeset
3
eda4deefecd1 reorganisation of the menu using submenus
souliane <souliane@mailoo.org>
parents:
diff changeset
4 @register.filter
eda4deefecd1 reorganisation of the menu using submenus
souliane <souliane@mailoo.org>
parents:
diff changeset
5 def is_tuple(value):
eda4deefecd1 reorganisation of the menu using submenus
souliane <souliane@mailoo.org>
parents:
diff changeset
6 """Tell if this value is a tuple or not.
eda4deefecd1 reorganisation of the menu using submenus
souliane <souliane@mailoo.org>
parents:
diff changeset
7
eda4deefecd1 reorganisation of the menu using submenus
souliane <souliane@mailoo.org>
parents:
diff changeset
8 @param value (obj): any object
eda4deefecd1 reorganisation of the menu using submenus
souliane <souliane@mailoo.org>
parents:
diff changeset
9 @return: True if value is a tuple
eda4deefecd1 reorganisation of the menu using submenus
souliane <souliane@mailoo.org>
parents:
diff changeset
10 """
eda4deefecd1 reorganisation of the menu using submenus
souliane <souliane@mailoo.org>
parents:
diff changeset
11 # 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
12 # 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
13 return type(value) == tuple
eda4deefecd1 reorganisation of the menu using submenus
souliane <souliane@mailoo.org>
parents:
diff changeset
14
29
b45621706d83 use Bootstrap carousels to display images and videos galeries:
souliane <souliane@mailoo.org>
parents: 27
diff changeset
15 @register.filter
b45621706d83 use Bootstrap carousels to display images and videos galeries:
souliane <souliane@mailoo.org>
parents: 27
diff changeset
16 def buffer(value, n):
b45621706d83 use Bootstrap carousels to display images and videos galeries:
souliane <souliane@mailoo.org>
parents: 27
diff changeset
17 """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
18
b45621706d83 use Bootstrap carousels to display images and videos galeries:
souliane <souliane@mailoo.org>
parents: 27
diff changeset
19 @param value (list): a list object
b45621706d83 use Bootstrap carousels to display images and videos galeries:
souliane <souliane@mailoo.org>
parents: 27
diff changeset
20 @return: a list containing sub-lists
b45621706d83 use Bootstrap carousels to display images and videos galeries:
souliane <souliane@mailoo.org>
parents: 27
diff changeset
21
b45621706d83 use Bootstrap carousels to display images and videos galeries:
souliane <souliane@mailoo.org>
parents: 27
diff changeset
22 For example:
b45621706d83 use Bootstrap carousels to display images and videos galeries:
souliane <souliane@mailoo.org>
parents: 27
diff changeset
23
b45621706d83 use Bootstrap carousels to display images and videos galeries:
souliane <souliane@mailoo.org>
parents: 27
diff changeset
24 >>> buffer(range(10), 2)
b45621706d83 use Bootstrap carousels to display images and videos galeries:
souliane <souliane@mailoo.org>
parents: 27
diff changeset
25 [[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
26
b45621706d83 use Bootstrap carousels to display images and videos galeries:
souliane <souliane@mailoo.org>
parents: 27
diff changeset
27 >>> buffer(range(10), 3)
b45621706d83 use Bootstrap carousels to display images and videos galeries:
souliane <souliane@mailoo.org>
parents: 27
diff changeset
28 [[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
29
b45621706d83 use Bootstrap carousels to display images and videos galeries:
souliane <souliane@mailoo.org>
parents: 27
diff changeset
30 >>> buffer(range(10), 4)
b45621706d83 use Bootstrap carousels to display images and videos galeries:
souliane <souliane@mailoo.org>
parents: 27
diff changeset
31 [[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
32 """
b45621706d83 use Bootstrap carousels to display images and videos galeries:
souliane <souliane@mailoo.org>
parents: 27
diff changeset
33 result = []
b45621706d83 use Bootstrap carousels to display images and videos galeries:
souliane <souliane@mailoo.org>
parents: 27
diff changeset
34 index = 0
b45621706d83 use Bootstrap carousels to display images and videos galeries:
souliane <souliane@mailoo.org>
parents: 27
diff changeset
35 while index < len(value):
b45621706d83 use Bootstrap carousels to display images and videos galeries:
souliane <souliane@mailoo.org>
parents: 27
diff changeset
36 result.append(value[index:index + n])
b45621706d83 use Bootstrap carousels to display images and videos galeries:
souliane <souliane@mailoo.org>
parents: 27
diff changeset
37 index += n
b45621706d83 use Bootstrap carousels to display images and videos galeries:
souliane <souliane@mailoo.org>
parents: 27
diff changeset
38 return result