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

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

fixed pep8

  • Property svn:eol-style set to native
File size: 1.7 KB
RevLine 
[2396]1import re
[1593]2from DateTime import DateTime
[2396]3from zope.component import getMultiAdapter
[2415]4from plone.memoize.view import memoize
[3163]5from quintagroup.plonegooglesitemaps.browser.commonview \
6    import CommonSitemapView, implements, ISitemapView
[1593]7
[2396]8reTrailingParenthtical = re.compile("\s*\(.*\)\s*", re.S)
9
[3152]10formatDate = lambda d: DateTime(d).strftime("%Y-%m-%d")
[2751]11
[3152]12
[1593]13class NewsSitemapView(CommonSitemapView):
14    """
[2396]15    News Sitemap browser view
[1593]16    """
17    implements(ISitemapView)
18
[2415]19    @property
20    def additional_maps(self):
[3152]21
[2415]22        return (
[3506]23            ('publication_date',
24             lambda x: x.Date and formatDate(x.Date) or ""),
[3152]25            ('keywords', lambda x: x.Subject and ', '.join(x.Subject) or ""),
26            ('title', lambda x: x.Title or x.getId or x.id),
[3506]27            ('name', lambda x: x.Title and
28                reTrailingParenthtical.sub("", x.Title) or ""),
[3152]29            ('language', lambda x: x.Language or self.default_language()),
30            ('access', lambda x: x.gsm_access or ""),
[3506]31            ('genres', lambda x: x.gsm_genres and
32                ", ".join(x.gsm_genres) or ""),
[3152]33            ('stock', lambda x: x.gsm_stock or ""),
[2415]34        )
[1593]35
[2415]36    @memoize
37    def default_language(self):
[3152]38        pps = getMultiAdapter((self.context, self.request),
39                              name="plone_portal_state")
[2415]40        return pps.default_language
41
[1593]42    def getFilteredObjects(self):
43        min_date = DateTime() - 3
[2742]44        return self.portal_catalog(
[3152]45            path=self.search_path,
46            portal_type=self.context.getPortalTypes(),
47            review_state=self.context.getStates(),
48            effective={"query": min_date,
[3487]49                       "range": "min"},
50            is_default_page=False
[3506]51        )
Note: See TracBrowser for help on using the repository browser.