from topp.featurelets.interfaces import IFeatureletSupporter before = IFeatureletSupporter(portal).getInstalledFeatureletIds() from Products.listen.interfaces.list_types import PostModeratedListTypeDefinition as PostModerated from Products.listen.content import ListTypeChanged from zope.event import notify if len(sys.argv) < 2: print __doc__ sys.exit(0) if sys.argv[1] == 'add': IFeatureletSupporter(portal).installFeaturelet('listen') lists_folder = IListenContainer(IListenFeatureletInstalled(portal).lists) for mlist in lists_folder.objectValues(spec='OpenMailingList'): # what a silly API :-( notify(ListTypeChanged(mlist, mlist.list_type.list_marker, PostModerated.list_marker)) elif sys.argv[1] == 'remove': IFeatureletSupporter(portal).removeFeaturelet('listen') elif sys.argv[1] == 'sync': lists_folder = IListenContainer(IListenFeatureletInstalled(portal).lists) mlists = [] for mlist in lists_folder.objectValues(spec='OpenMailingList'): if ISyncWithProjectMembership.providedBy(mlist): mlists.append(mlist)