Author: rmarianski
Date: 2007-11-11 14:25:11 -0500 (Sun, 11 Nov 2007)
New Revision: 10896
Modified:
opencore/trunk/opencore/listen/events.py
Log:
verify that mailing list isn't already registered before creating auto
discussion list
Modified: opencore/trunk/opencore/listen/events.py
===================================================================
--- opencore/trunk/opencore/listen/events.py 2007-11-11 18:48:01 UTC (rev
10895)
+++ opencore/trunk/opencore/listen/events.py 2007-11-11 19:25:11 UTC (rev
10896)
@@ -1,12 +1,15 @@
from decorator import decorator
+from zope.component import getUtility
from zope.app.event.objectevent import ObjectCreatedEvent
from zope.event import notify
from Products.CMFCore.utils import getToolByName
from Products.listen.interfaces import IWriteMembershipList
+from Products.listen.interfaces import IListLookup
from opencore.listen.mailinglist import OpenMailingList
from opencore.project.utils import get_featurelets
+from utils import getSuffix
# make sure that modification date gets updated
# when new messages are sent to list
@@ -62,7 +65,16 @@
proj_id = proj.getId()
proj_title = proj.Title()
ml_id = '%s-discussion' % proj_id
+ address = '%s%s' % (ml_id, getSuffix())
+ # need to verify that a mailing list with this name isn't already created
+ portal = getToolByName(proj, 'portal_url').getPortalObject()
+ ll = getUtility(IListLookup, context=portal)
+ if ll.getListForAddress(address) is not None:
+ # XXX we'll just silently fail for now, not sure what else we can do
+ # psm maybe?
+ return
+
# XXX invokeFactory depends on the title being set in the request
ml_title = u'%s discussion' % (proj_title)
proj.REQUEST.set('title', ml_title)
@@ -77,7 +89,6 @@
memlist = IWriteMembershipList(ml)
- portal = getToolByName(proj, 'portal_url').getPortalObject()
cat = getToolByName(portal, 'portal_catalog')
teams = getToolByName(portal, 'portal_teams')
try:
--
Archive:
http://www.openplans.org/projects/opencore/lists/openplans-svn/archive/2007/11/1194809112377
To unsubscribe send an email with subject unsubscribe to [EMAIL PROTECTED]
Please contact [EMAIL PROTECTED] for questions.