source: products/quintagroup.seoptimizer/branches/refactoring2.3.0/quintagroup/seoptimizer/util.py @ 1877

Last change on this file since 1877 was 1673, checked in by liebster, 14 years ago

Fixed imports by Plone4

  • Property svn:eol-style set to native
File size: 1.5 KB
Line 
1from AccessControl import ClassSecurityInfo
2
3try:
4    from App.class_init import InitializeClass
5except ImportError:
6    from Globals import InitializeClass
7
8def createMultiColumnList(self,slist, numCols, sort_on='title_or_id'):
9    try:
10        mcl = self.createMultiColumnList(slist, numCols, sort_on=sort_on)
11        return mcl
12    except AttributeError:
13        return [slist]
14
15class SortedDict(dict):
16    """ A sorted dictionary.
17    """
18    security = ClassSecurityInfo()
19
20    security.declarePublic('items')
21    def items(self):
22        primary_metatags = self.pmt
23        lst = [(name,self[name]) for name in primary_metatags                    \
24                                                 if name in self.keys()] +       \
25              [(name, self[name]) for name in self.keys()                        \
26                                                 if name not in primary_metatags]
27        return lst
28
29
30    security.declarePublic('__init__')
31    def __init__(self, *args, **kwargs):
32        super(SortedDict,self).__init__(*args, **kwargs)
33        self.pmt = []
34
35
36    security.declarePublic('__setitem__')
37    def __setitem__(self, i, y):
38        super(SortedDict,self).__setitem__(i, y)
39        if i not in self.pmt:
40            self.pmt.append(i)
41
42    security.declarePublic('pop')
43    def pop(self, k, *args, **kwargs):
44        super(SortedDict,self).pop(k, *args, **kwargs)
45        if k in self.pmt:
46            self.pmt.remove(k)
47
48try:
49    InitializeClass(SortedDict)
50except:
51    pass
Note: See TracBrowser for help on using the repository browser.