Mercurial > hg > montage
annotate montage/formatters.py @ 5:d60a5ffbf4f4
* include a new template to display images in a grid
* refactor Images formatter
* stub for thumbnails
author | k0s <k0scist@gmail.com> |
---|---|
date | Fri, 25 Dec 2009 17:22:01 -0500 |
parents | 4b8aa9b0a45b |
children | 93af41dcff3a |
rev | line source |
---|---|
2 | 1 import mimetypes |
5
d60a5ffbf4f4
* include a new template to display images in a grid
k0s <k0scist@gmail.com>
parents:
2
diff
changeset
|
2 from decoupage.formatters import FormatterBase |
0 | 3 |
5
d60a5ffbf4f4
* include a new template to display images in a grid
k0s <k0scist@gmail.com>
parents:
2
diff
changeset
|
4 class Images(FormatterBase): |
d60a5ffbf4f4
* include a new template to display images in a grid
k0s <k0scist@gmail.com>
parents:
2
diff
changeset
|
5 """display images with thumbnails""" |
d60a5ffbf4f4
* include a new template to display images in a grid
k0s <k0scist@gmail.com>
parents:
2
diff
changeset
|
6 |
d60a5ffbf4f4
* include a new template to display images in a grid
k0s <k0scist@gmail.com>
parents:
2
diff
changeset
|
7 defaults = { 'size': 'x', |
d60a5ffbf4f4
* include a new template to display images in a grid
k0s <k0scist@gmail.com>
parents:
2
diff
changeset
|
8 'columns': None } |
0 | 9 |
10 def __init__(self, arg): | |
5
d60a5ffbf4f4
* include a new template to display images in a grid
k0s <k0scist@gmail.com>
parents:
2
diff
changeset
|
11 FormatterBase.__init__(self, arg) |
0 | 12 |
5
d60a5ffbf4f4
* include a new template to display images in a grid
k0s <k0scist@gmail.com>
parents:
2
diff
changeset
|
13 # get image size for display |
d60a5ffbf4f4
* include a new template to display images in a grid
k0s <k0scist@gmail.com>
parents:
2
diff
changeset
|
14 width, height = [ i.strip() for i in self.size.split('x', 1) ] |
d60a5ffbf4f4
* include a new template to display images in a grid
k0s <k0scist@gmail.com>
parents:
2
diff
changeset
|
15 self.width = width or None |
d60a5ffbf4f4
* include a new template to display images in a grid
k0s <k0scist@gmail.com>
parents:
2
diff
changeset
|
16 self.height = height or None |
d60a5ffbf4f4
* include a new template to display images in a grid
k0s <k0scist@gmail.com>
parents:
2
diff
changeset
|
17 |
0 | 18 def __call__(self, request, data): |
5
d60a5ffbf4f4
* include a new template to display images in a grid
k0s <k0scist@gmail.com>
parents:
2
diff
changeset
|
19 |
d60a5ffbf4f4
* include a new template to display images in a grid
k0s <k0scist@gmail.com>
parents:
2
diff
changeset
|
20 # add width + height data |
2 | 21 data['width'] = self.width |
22 data['height'] = self.height | |
23 | |
24 # filter out non-images | |
25 _files = [] | |
26 for f in data['files']: | |
27 mimetype = mimetypes.guess_type(f['name'])[0] | |
28 if mimetype and mimetype.split('/')[0] == 'image': | |
29 _files.append(f) | |
5
d60a5ffbf4f4
* include a new template to display images in a grid
k0s <k0scist@gmail.com>
parents:
2
diff
changeset
|
30 f['link'] = f['path'] |
2 | 31 data['files'] = _files |
5
d60a5ffbf4f4
* include a new template to display images in a grid
k0s <k0scist@gmail.com>
parents:
2
diff
changeset
|
32 |
d60a5ffbf4f4
* include a new template to display images in a grid
k0s <k0scist@gmail.com>
parents:
2
diff
changeset
|
33 # columns for grid display |
d60a5ffbf4f4
* include a new template to display images in a grid
k0s <k0scist@gmail.com>
parents:
2
diff
changeset
|
34 if self.columns is None: |
d60a5ffbf4f4
* include a new template to display images in a grid
k0s <k0scist@gmail.com>
parents:
2
diff
changeset
|
35 data['columns'] = len(data['files']) |
d60a5ffbf4f4
* include a new template to display images in a grid
k0s <k0scist@gmail.com>
parents:
2
diff
changeset
|
36 else: |
d60a5ffbf4f4
* include a new template to display images in a grid
k0s <k0scist@gmail.com>
parents:
2
diff
changeset
|
37 data['columns'] = int(self.columns) |
2 | 38 |
5
d60a5ffbf4f4
* include a new template to display images in a grid
k0s <k0scist@gmail.com>
parents:
2
diff
changeset
|
39 # thumbnails |
d60a5ffbf4f4
* include a new template to display images in a grid
k0s <k0scist@gmail.com>
parents:
2
diff
changeset
|
40 if 'thumbnails' not in self.args: |
d60a5ffbf4f4
* include a new template to display images in a grid
k0s <k0scist@gmail.com>
parents:
2
diff
changeset
|
41 return |
d60a5ffbf4f4
* include a new template to display images in a grid
k0s <k0scist@gmail.com>
parents:
2
diff
changeset
|
42 for f in data['files']: |
d60a5ffbf4f4
* include a new template to display images in a grid
k0s <k0scist@gmail.com>
parents:
2
diff
changeset
|
43 raise NotImplementedError |
d60a5ffbf4f4
* include a new template to display images in a grid
k0s <k0scist@gmail.com>
parents:
2
diff
changeset
|
44 import pdb; pdb.set_trace() |