def convert_subscription(old_subscription, portal, log): location = old_subscription.location user_id = old_subscription.user_id notif_type = old_subscription.notif_type lang = old_subscription.lang log.info("Updating (location=%r, user_id=%r, notif_type=%r, lang=%r)", location, user_id, notif_type, lang) try: obj = portal.unrestrictedTraverse(location) sc = ISubscriptionContainer(obj) new_subscription = AccountSubscription(user_id, notif_type, lang) sc.add(new_subscription) except: log.exception("Failed to update subscription")
def convert_subscription(old_subscription, portal, log): location = old_subscription.location user_id = old_subscription.user_id notif_type = old_subscription.notif_type lang = old_subscription.lang log.info('Updating (location=%r, user_id=%r, notif_type=%r, lang=%r)', location, user_id, notif_type, lang) try: obj = portal.unrestrictedTraverse(location) sc = ISubscriptionContainer(obj) new_subscription = AccountSubscription(user_id, notif_type, lang) sc.add(new_subscription) except: log.exception('Failed to update subscription')
def test_add(self): sc = ISubscriptionContainer(self.root) self.assertEqual(sc._next_id, 1) sub1 = AccountSubscription('gigel', 'instant', 'en') sub2 = AccountSubscription('user2', 'instant', 'en') sub3 = AnonymousSubscription(email='*****@*****.**', location='', notif_type='instant', lang='en', content_types=[]) sc.add(sub1) sc.add(sub2) sc.add(sub3) subs = list(sc) self.assertEqual(len(subs), 3) self.assertTrue(subs[0] is sub1) self.assertTrue(subs[1] is sub2) self.assertTrue(subs[2] is sub3) enum = dict(sc.list_with_keys()) self.assertEqual(enum.keys(), [1, 2, 3]) self.assertTrue(enum[1] is sub1) self.assertTrue(enum[2] is sub2) self.assertTrue(enum[3] is sub3) self.assertEqual(sc._next_id, 4)
def test_add(self): sc = ISubscriptionContainer(self.root) self.assertEqual(sc._next_id, 1) sub1 = AccountSubscription('gigel', 'instant', 'en') sub2 = AccountSubscription('user2', 'instant', 'en') sc.add(sub1) sc.add(sub2) subs = list(sc) self.assertEqual(len(subs), 2) self.assertTrue(subs[0] is sub1) self.assertTrue(subs[1] is sub2) enum = dict(sc.list_with_keys()) self.assertEqual(enum.keys(), [1, 2]) self.assertTrue(enum[1] is sub1) self.assertTrue(enum[2] is sub2) self.assertEqual(sc._next_id, 3)
def afterSetUp(self): addNyFolder(self.portal, id='f1', contributor='contributor') addNyFolder(self.portal['f1'], id='a', contributor='contributor') addNyFolder(self.portal['f1'], id='b', contributor='contributor') addNyFolder(self.portal['f1']['b'], id='2', contributor='contributor') f1 = self.portal['f1'] f1_b_sc = ISubscriptionContainer(f1['b']) f1_b_2_sc = ISubscriptionContainer(f1['b']['2']) self.user1_sub = AccountSubscription('user1', 'instant', 'en') f1_b_sc.add(self.user1_sub) self.user2_sub = AccountSubscription('user2', 'instant', 'en') f1_b_2_sc.add(self.user2_sub)
def test_remove(self): sc = ISubscriptionContainer(self.root) sub1 = AccountSubscription('user1', 'instant', 'en') sub2 = AccountSubscription('user2', 'instant', 'en') sc.add(sub1) sc.add(sub2) self.assertEqual(len(list(sc)), 2) enum = dict(sc.list_with_keys()) self.assertTrue(enum[1] is sub1) sc.remove(1) self.assertEqual(len(list(sc)), 1) self.assertTrue(list(sc)[0] is sub2)
def import_subscribers(self, notif_type='monthly'): ''' ''' from Products.NaayaCore.NotificationTool.interfaces import ISubscriptionContainer import xmlrpclib sdo = xmlrpclib.ServerProxy('http://sd-online.ewindows.eu.org') obs = sdo.a_subscribers_export() total_obs = len(obs) current_ob = 0 for ob in obs: current_ob += 1 notificationTool = self.getSite().portal_anonymous_notification notificationTool.import_email_subscription(ob['email'], ob['organisation'], ob['sector'], ob['country'], notif_type, 'en') print '%s of %s objects, SDO Id: %s' % (current_ob, total_obs, ob['id']) print 'Import finished.' subscription_container = ISubscriptionContainer(self.getSite()) for ob in subscription_container: print ob