Mercurial > hg > montage
view 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 |
line wrap: on
line source
import mimetypes from decoupage.formatters import FormatterBase class Images(FormatterBase): """display images with thumbnails""" defaults = { 'size': 'x', 'columns': None } def __init__(self, arg): FormatterBase.__init__(self, arg) # get image size for display width, height = [ i.strip() for i in self.size.split('x', 1) ] self.width = width or None self.height = height or None def __call__(self, request, data): # add width + height data data['width'] = self.width data['height'] = self.height # filter out non-images _files = [] for f in data['files']: mimetype = mimetypes.guess_type(f['name'])[0] if mimetype and mimetype.split('/')[0] == 'image': _files.append(f) f['link'] = f['path'] data['files'] = _files # columns for grid display if self.columns is None: data['columns'] = len(data['files']) else: data['columns'] = int(self.columns) # thumbnails if 'thumbnails' not in self.args: return for f in data['files']: raise NotImplementedError import pdb; pdb.set_trace()