[1593] | 1 | from zope.component import adapter |
---|
| 2 | from Products.CMFCore.utils import getToolByName |
---|
| 3 | #from quintagroup.plonegooglesitemaps.events import AfterTransitionEvent |
---|
[3163] | 4 | from Products.DCWorkflow.interfaces import IAfterTransitionEvent |
---|
[3488] | 5 | from Acquisition import aq_parent |
---|
| 6 | from plone.app.layout.navigation.defaultpage import isDefaultPage |
---|
| 7 | |
---|
[1593] | 8 | from quintagroup.plonegooglesitemaps.utils import ping_google |
---|
| 9 | |
---|
[3152] | 10 | |
---|
[1593] | 11 | @adapter(IAfterTransitionEvent) |
---|
| 12 | def pingGoogle(event): |
---|
[3152] | 13 | tr_id = getattr(event.transition, 'id', '') |
---|
[1593] | 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: |
---|
[3152] | 23 | url = getToolByName(object, 'portal_url') |
---|
| 24 | plone_home = url.getPortalObject().absolute_url() |
---|
[1593] | 25 | wftrans_name = "%s#%s" % (event.workflow.id, tr_id) |
---|
| 26 | obj_ptype = object.portal_type |
---|
| 27 | for sm in sitemaps: |
---|
[3498] | 28 | if wftrans_name in sm.getPingTransitions() and \ |
---|
[3501] | 29 | obj_ptype in sm.getPortalTypes(): |
---|
| 30 | ping_google(plone_home, sm.id) |
---|
[1593] | 31 | return 0 |
---|
[3488] | 32 | |
---|
| 33 | |
---|
| 34 | def 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) |
---|