source: products/quintagroup.plonegooglesitemaps/tags/1.4.4/quintagroup/plonegooglesitemaps/browser/newssitemapview.py

Last change on this file was 2420, checked in by mylan, 14 years ago

#131: Added 'stock_tickers' tag to newssitemap view, news extender schema

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