source: products/quintagroup.plonegooglesitemaps/branches/sitemap_date/quintagroup/plonegooglesitemaps/handlers.py @ 3488

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

added new handler for IObjectEditedEvent

  • Property svn:eol-style set to native
File size: 1.5 KB
Line 
1from zope.component import adapter
2from Products.CMFCore.utils import getToolByName
3#from quintagroup.plonegooglesitemaps.events import AfterTransitionEvent
4from Products.DCWorkflow.interfaces import IAfterTransitionEvent
5from Acquisition import aq_parent
6from plone.app.layout.navigation.defaultpage import isDefaultPage
7
8from quintagroup.plonegooglesitemaps.utils import ping_google
9
10
11@adapter(IAfterTransitionEvent)
12def pingGoogle(event):
13    tr_id = getattr(event.transition, 'id', '')
14    if not tr_id:
15        # object under creation
16        return 0
17
18    object = event.object
19    catalog = getToolByName(object, 'portal_catalog')
20
21    sitemaps = [b.getObject() for b in catalog(portal_type='Sitemap')]
22    if sitemaps:
23        url = getToolByName(object, 'portal_url')
24        plone_home = url.getPortalObject().absolute_url()
25        wftrans_name = "%s#%s" % (event.workflow.id, tr_id)
26        obj_ptype = object.portal_type
27        for sm in sitemaps:
28            if wftrans_name in sm.getPingTransitions() \
29               and obj_ptype in sm.getPortalTypes():
30                ping_google(plone_home, sm.id)
31    return 0
32
33
34def reindexParentObjects(obj, event):
35    """   Method reindexes folderish objects according
36        to modification date from default object
37    """
38    def reindex(obj):
39        container = aq_parent(obj)
40        if isDefaultPage(container, obj):
41            container.reindexObject(['sitemap_date'])
42            reindex(container)
43
44    reindex(obj)
Note: See TracBrowser for help on using the repository browser.