# HG changeset patch # User Jeff Hammel # Date 1284012777 25200 # Node ID 650e1b62a6288d33b01e4b20a973a7814f7780e1 # Parent 445af840aa5cee8405a25602f4b40be31dd1d141 add order formatter (untested) diff -r 445af840aa5c -r 650e1b62a628 decoupage/formatters.py --- a/decoupage/formatters.py Mon Sep 06 15:25:44 2010 -0700 +++ b/decoupage/formatters.py Wed Sep 08 23:12:57 2010 -0700 @@ -96,6 +96,30 @@ data['files'] = list(reversed(data['files'])) +class Order(object): + """ + put the files in a particular order + """ + def __init__(self, pattern): + if '=' in pattern: + key, value = pattern.split('=', 1) + assert key == 'file' + self.file = value + else: + self.order = [i.strip() for i in pattern.split(',')] + + def __call__(self, request, data): + + if self.file: + raise NotImplementedError + + files = [] + file_hash = dict([(i['name'], i) for i in data['files']]) + for f in self.order: + files.append(file_hash.get(f, None)) + files = [ i for i in files if i is not None ] + + class FilenameDescription(FormatterBase): """ obtain the description from the filename diff -r 445af840aa5c -r 650e1b62a628 setup.py --- a/setup.py Mon Sep 06 15:25:44 2010 -0700 +++ b/setup.py Wed Sep 08 23:12:57 2010 -0700 @@ -46,6 +46,7 @@ ignore = decoupage.formatters:Ignore include = decoupage.formatters:Include links = decoupage.formatters:Links + order = decoupage.formatters:Order scripts = decoupage.formatters:JavaScript sort = decoupage.formatters:Sort title = decoupage.formatters:TitleDescription