source: products/quintagroup.plonegooglesitemaps/branches/sitemap_date/quintagroup/plonegooglesitemaps/indexers.py @ 3506

Last change on this file since 3506 was 3505, checked in by potar, 12 years ago

fixed pyflakes

File size: 1.8 KB
Line 
1from plone.app.layout.navigation.defaultpage import getDefaultPage
2
3from zope.interface import Interface
4
5from quintagroup.plonegooglesitemaps.utils import dateTime
6
7#BBB: for compatibility with older plone versions
8# (Plone 3.0, Plone 3.1, Plone3.2)
9try:
10    from plone.indexer import indexer
11    indexer
12    IS_NEW = True
13except ImportError:
14    IS_NEW = False
15
16    class IDummyInterface:
17        pass
18
19    class indexer:
20
21        def __init__(self, *interfaces):
22            self.interfaces = IDummyInterface,
23
24        def __call__(self, callable):
25            callable.__component_adapts__ = self.interfaces
26            callable.__implemented__ = Interface
27            return callable
28
29
30@indexer(Interface)
31def sitemap_date(obj, **kwargs):
32    """ Method gets date for sitemap """
33
34    def lastModificationDate(folderish_date, default_page):
35        """  Method compares date (folderish object)
36            with another date (default_page) and returns the last
37        """
38
39        # get modification date
40        child_mdate = dateTime(default_page)
41
42        if folderish_date > child_mdate:
43            last_date = folderish_date
44        else:
45            last_date = child_mdate
46
47        child = getDefaultPage(default_page)
48        if not child:
49            return last_date
50
51        return lastModificationDate(last_date,
52                                    default_page[child])
53
54    default_page = getDefaultPage(obj)
55    # get modification date
56    date = dateTime(obj)
57    if default_page:
58        date = lastModificationDate(date, getattr(obj, default_page))
59
60    return date.HTML4()
61
62#BBB: for compatibility with older plone versions
63# (Plone 3.0, Plone 3.1, Plone3.2)
64if not IS_NEW:
65    from Products.CMFPlone.CatalogTool import registerIndexableAttribute
66    registerIndexableAttribute('sitemap_date', sitemap_date)
Note: See TracBrowser for help on using the repository browser.