def group_tmpl(portal, objs, **kwargs):
     keyer = lambda item: path_in_site(item['ob'])
     sorted_items = sorted(objs, key=keyer)
     items_str = ''.join('[%s]' % path_in_site(item['ob']) for
                         item in sorted_items)
     body = '%s %s %s' % (template_name, items_str,
                          portal.title_or_id())
     return {'subject': 'notifications', 'body_text': body}
    def test_walk_subscriptions(self):
        subs1 = list((path_in_site(obj), sub) for
                     obj, n, sub in walk_subscriptions(self.portal))
        self.assertEqual(len(subs1), 2)
        self.assertTrue(('f1/b/2', self.user2_sub) in subs1)
        self.assertTrue(('f1/b', self.user1_sub) in subs1)

        subs2 = list((path_in_site(obj), sub) for
                     obj, n, sub in
                     walk_subscriptions(self.portal['f1']['b']['2']))
        self.assertEqual(len(subs2), 1)
        self.assertTrue(('f1/b/2', self.user2_sub) in subs1)

        subs3 = list(walk_subscriptions(self.portal['f1']['a']))
        self.assertEqual(len(subs3), 0)
Exemple #3
0
 def admin_get_subscriptions(self):
     for obj, sub_id, subscription in walk_subscriptions(self.getSite()):
         yield {
             'user': subscription.to_string(obj),
             'location': path_in_site(obj),
             'sub_id': sub_id,
             'lang': subscription.lang,
             'notif_type': subscription.notif_type,
         }
Exemple #4
0
    def _update(self, portal):
        self.log.info('updating %r', portal)

        portal_schemas = portal['portal_schemas']
        for schema in portal_schemas.objectValues('Naaya Schema'):
            for widget in schema.objectValues():
                names = exorcize_local_properties(widget)
                if names is not None:
                    self.log.info('cleaned up %r: %r', path_in_site(widget),
                                  names)

        return True
Exemple #5
0
 def manageMainTopics(self, maintopics=None, REQUEST=None):
     """
     Update main topics.
     """
     site = self.getSite()
     if maintopics is None: maintopics = []
     else: maintopics = self.utConvertToList(maintopics)
     site.maintopics = []
     for maintopic in maintopics:
         folder_ob = self.utGetObject(maintopic)
         site.maintopics.append(path_in_site(folder_ob))
     site._p_changed = True
     if REQUEST: REQUEST.RESPONSE.redirect('manage_maintopics_html?save=ok')
 def _update(self, portal):
     portal.maintopics_settings = {
         'expanded': True,
         'persistent': True,
         'expand_levels': 1,
         'max_levels': 1
     }
     maintopics = []
     old_maintopics = portal.utSortObjsListByAttr(filter(lambda x: x is not None, map(lambda f, x: f(x, None), (portal.utGetObject,)*len(portal.maintopics), portal.maintopics)), 'sortorder', 0)
     for path_ob in old_maintopics:
         maintopics.append(path_in_site(path_ob))
     portal.maintopics = maintopics
     portal._p_changed = True
     return True
Exemple #7
0
    def list_user_subscriptions(self, REQUEST, get_all=False):
        user_id = self.get_user_id(REQUEST)

        if get_all:
            obj = self.get_context().getSite()
        else:
            obj = self.get_context()

        for obj, n, subscription in walk_subscriptions(obj):
            if not isinstance(subscription, AccountSubscription):
                continue
            if subscription.user_id != user_id:
                continue
            yield {
                'location': path_in_site(obj),
                'notif_type': subscription.notif_type,
                'lang': subscription.lang,
            }
 def _update(self, portal):
     portal.maintopics_settings = {
         'expanded': True,
         'persistent': True,
         'expand_levels': 1,
         'max_levels': 1
     }
     maintopics = []
     old_maintopics = portal.utSortObjsListByAttr(
         filter(
             lambda x: x is not None,
             map(lambda f, x: f(x, None),
                 (portal.utGetObject, ) * len(portal.maintopics),
                 portal.maintopics)), 'sortorder', 0)
     for path_ob in old_maintopics:
         maintopics.append(path_in_site(path_ob))
     portal.maintopics = maintopics
     portal._p_changed = True
     return True
 def single_tmpl(ob, person, portal, **kwargs):
     return {'subject': 'notifications',
             'body_text': 'instant [%s] %s' %
                 (path_in_site(ob), portal.title_or_id())}
 def walk_site_subscriptions(self):
     return set((sub.user_id, path_in_site(obj),
                 sub.notif_type, sub.lang) for
                     obj, n, sub in walk_subscriptions(self.portal))
Exemple #11
0
 def path_in_site(self, obj):
     """ Return path relative to site root """
     return path_in_site(obj)
 def subscr():
     return set((path_in_site(obj), sub.notif_type, sub.user_id) for
                 obj, n, sub in walk_subscriptions(self.portal))
Exemple #13
0
 def initial_jstree_node(self, context):
     if self.relative:
         return path_in_site(context)
     else:
         return ""
Exemple #14
0
 def get_location(self):
     return path_in_site(self.get_context())