r252359 - collective.contentrules.comingsoon/trunk/collective/contentrules/comingsoon

"C??dric Messiant" <svn-changes-z4DKO/[email protected]>
Newsgroups gmane.comp.web.zope.plone.collective.cvs
Message-ID <[email protected]>
Author: cedricmessiant
Date: Fri May  3 12:40:13 2013
New Revision: 252359

Modified:
   collective.contentrules.comingsoon/trunk/collective/contentrules/comingsoon/notify.py
Log:
Fix bug : when delays are not filled, use default delay field

Modified: collective.contentrules.comingsoon/trunk/collective/contentrules/comingsoon/notify.py
==============================================================================
--- collective.contentrules.comingsoon/trunk/collective/contentrules/comingsoon/notify.py	(original)
+++ collective.contentrules.comingsoon/trunk/collective/contentrules/comingsoon/notify.py	Fri May  3 12:40:13 2013
@@ -26,25 +26,26 @@
 
     def notify(self, index='start'):
         registry = getUtility(IRegistry)
-        delays = registry.forInterface(IComingSoonSettings).delays
-        delays = {item['portal_type']: item['delay'] for item in delays}
         catalog = api.portal.get_tool(name='portal_catalog')
+        delays = registry.forInterface(IComingSoonSettings).delays
         error = 0
-        for portal_type, delay in delays.iteritems():
-            deadline = DateTime(DateTime().Date()) + delay
-            params = {'portal_type': portal_type,
-                      index: {'query': (deadline, deadline + 1),
-                              'range': 'minmax'},
-                      }
-            brains = catalog.searchResults(**params)
-            for brain in brains:
-                try:
-                    notify(ComingSoonEvent(brain.getObject()))
-                except ConflictError:
-                    raise
-                except Exception as e:
-                    error = 1
-                    logger.error("Error when notifying coming soon events : %s" % str(e))
+        if delays is not None:
+            delays = {item['portal_type']: item['delay'] for item in delays}
+            for portal_type, delay in delays.iteritems():
+                deadline = DateTime(DateTime().Date()) + delay
+                params = {'portal_type': portal_type,
+                          index: {'query': (deadline, deadline + 1),
+                                  'range': 'minmax'},
+                          }
+                brains = catalog.searchResults(**params)
+                for brain in brains:
+                    try:
+                        notify(ComingSoonEvent(brain.getObject()))
+                    except ConflictError:
+                        raise
+                    except Exception as e:
+                        error = 1
+                        logger.error("Error when notifying coming soon events : %s" % str(e))
 
         # default (old behavior)
         default_delay = registry.forInterface(IComingSoonSettings).delay

------------------------------------------------------------------------------
Get 100% visibility into Java/.NET code with AppDynamics Lite
It's a free troubleshooting tool designed for production
Get down to code-level detail for bottlenecks, with <2% overhead.
Download for free and get started troubleshooting in minutes.
http://p.sf.net/sfu/appdyn_d2d_ap2
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.