[Erp5-report] r21528 - /erp5/trunk/products/ERP5/Tool/NotificationTool.py

nobody at svn.erp5.org nobody at svn.erp5.org
Thu Jun 12 14:17:48 CEST 2008


Author: nicolas
Date: Thu Jun 12 14:17:47 2008
New Revision: 21528

URL: http://svn.erp5.org?rev=21528&view=rev
Log:
Do not hardcode Portal Type

Modified:
    erp5/trunk/products/ERP5/Tool/NotificationTool.py

Modified: erp5/trunk/products/ERP5/Tool/NotificationTool.py
URL: http://svn.erp5.org/erp5/trunk/products/ERP5/Tool/NotificationTool.py?rev=21528&r1=21527&r2=21528&view=diff
==============================================================================
--- erp5/trunk/products/ERP5/Tool/NotificationTool.py (original)
+++ erp5/trunk/products/ERP5/Tool/NotificationTool.py Thu Jun 12 14:17:47 2008
@@ -226,7 +226,8 @@
                   notifier_list=None, priority_level=None,
                   store_as_event=False,
                   message_text_format='text/plain',
-                  event_keyword_argument_dict=None):
+                  event_keyword_argument_dict=None,
+                  portal_type_list=None):
     """
       This method provides a common API to send messages to erp5 users
       from object actions of worflow scripts.
@@ -265,15 +266,19 @@
       event_keyword_argument_dict -- additional keyword arguments which is used for
                                      constructor of event document.
 
+      portal_type_list -- Portal Type of Users
+
     TODO: support default notification email
     """
     portal = self.getPortalObject()
     catalog_tool = getToolByName(self, 'portal_catalog')
-
+    if portal_type_list is None:
+      portal_type_list = ('Person',)
     # Find "From" Person
     from_person = None
     if isinstance(sender, basestring):
-      sender = catalog_tool.getResultValue(portal_type='Person', reference=sender)
+      sender = catalog_tool.getResultValue(portal_type=portal_type_list,
+                                           reference=sender)
     if sender is not None:
       email_value = sender.getDefaultEmailValue()
       if email_value is not None and email_value.asText():
@@ -286,7 +291,8 @@
         recipient = (recipient,)
       for person in recipient:
         if isinstance(person, basestring):
-          person = catalog_tool.getResultValue(portal_type='Person', reference=person)
+          person = catalog_tool.getResultValue(portal_type=portal_type_list,
+                                               reference=person)
           if person is None:
             # For backward compatibility. I recommend to use ValueError.(yusei)
             raise IndexError, "Can't find person document which reference is '%s'" % person




More information about the Erp5-report mailing list