def render_announcement_preference_box(self, req, panel): klass = self.__class__.__name__ if req.method == "POST": with self.env.db_transaction as db: SubscriptionAttribute.\ delete_by_sid_and_class(self.env, req.session.sid, req.session.authenticated, klass, db) def _map(value): g = re.match('^joinable_group_(.*)', value) if g: if req.args.as_bool(value): return g.groups()[0] groups = set(filter(None, map(_map, req.args.keys()))) SubscriptionAttribute.add(self.env, req.session.sid, req.session.authenticated, klass, 'ticket', groups, db) attrs = filter(None, map( lambda x: x['target'], SubscriptionAttribute.find_by_sid_and_class( self.env, req.session.sid, req.session.authenticated, klass ) )) data = dict(joinable_groups={}) for group in self.joinable_groups: data['joinable_groups'][group] = (group in attrs) and True or None return 'prefs_announcer_joinable_groups.html', data
def render_announcement_preference_box(self, req, panel): klass = self.__class__.__name__ if req.method == 'POST': with self.env.db_transaction as db: sess = req.session SubscriptionAttribute\ .delete_by_sid_and_class(self.env, sess.sid, sess.authenticated, klass, db) users = map(lambda x: x.strip(), req.args.get('announcer_watch_users').split(',')) SubscriptionAttribute.add(self.env, sess.sid, sess.authenticated, klass, 'user', users, db) attrs = filter( None, map( lambda x: x['target'], SubscriptionAttribute.find_by_sid_and_class( self.env, req.session.sid, req.session.authenticated, klass))) data = dict(announcer_watch_users=','.join(attrs)) return 'prefs_announcer_watch_users.html', data
def render_announcement_preference_box(self, req, panel): klass = self.__class__.__name__ if req.method == "POST": with self.env.db_transaction as db: SubscriptionAttribute.\ delete_by_sid_and_class(self.env, req.session.sid, req.session.authenticated, klass, db) def _map(value): g = re.match('^component_(.*)', value) if g: if req.args.as_bool(value): return g.groups()[0] components = set(filter(None, map(_map, req.args.keys()))) SubscriptionAttribute.add(self.env, req.session.sid, req.session.authenticated, klass, 'ticket', components, db) d = {} attrs = filter(None, map( lambda x: x['target'], SubscriptionAttribute.find_by_sid_and_class( self.env, req.session.sid, req.session.authenticated, klass ) )) for c in model.Component.select(self.env): if c.name in attrs: d[c.name] = True else: d[c.name] = None return 'prefs_announcer_joinable_components.html', dict(components=d)
def render_announcement_preference_box(self, req, panel): klass = self.__class__.__name__ if req.method == "POST": with self.env.db_transaction as db: SubscriptionAttribute.\ delete_by_sid_and_class(self.env, req.session.sid, req.session.authenticated, klass, db) def _map(value): g = re.match('^joinable_group_(.*)', value) if g: if req.args.as_bool(value): return g.groups()[0] groups = set(filter(None, map(_map, req.args.keys()))) SubscriptionAttribute.add(self.env, req.session.sid, req.session.authenticated, klass, 'ticket', groups, db) attrs = filter( None, map( lambda x: x['target'], SubscriptionAttribute.find_by_sid_and_class( self.env, req.session.sid, req.session.authenticated, klass))) data = dict(joinable_groups={}) for group in self.joinable_groups: data['joinable_groups'][group] = (group in attrs) and True or None return 'prefs_announcer_joinable_groups.html', data
def render_announcement_preference_box(self, req, panel): klass = self.__class__.__name__ if req.method == "POST": with self.env.db_transaction as db: SubscriptionAttribute.\ delete_by_sid_and_class(self.env, req.session.sid, req.session.authenticated, klass, db) def _map(value): g = re.match('^component_(.*)', value) if g: if req.args.as_bool(value): return g.groups()[0] components = set(filter(None, map(_map, req.args.keys()))) SubscriptionAttribute.add(self.env, req.session.sid, req.session.authenticated, klass, 'ticket', components, db) d = {} attrs = filter( None, map( lambda x: x['target'], SubscriptionAttribute.find_by_sid_and_class( self.env, req.session.sid, req.session.authenticated, klass))) for c in model.Component.select(self.env): if c.name in attrs: d[c.name] = True else: d[c.name] = None return 'prefs_announcer_joinable_components.html', dict(components=d)
def do_update(db): SubscriptionAttribute.delete_by_sid_and_class(self.env, req.session.sid, req.session.authenticated, klass, db) users = map(lambda x: x.strip(), req.args.get("announcer_watch_users").split(',')) SubscriptionAttribute.add(self.env, req.session.sid, req.session.authenticated, klass, 'user', users, db)
def do_update(db): SubscriptionAttribute.delete_by_sid_and_class( self.env, sess.sid, sess.authenticated, klass, db) SubscriptionAttribute.add(self.env, sess.sid, sess.authenticated, klass, 'wiki', (req.args.get('wiki_interests'), ), db)
def do_update(db): SubscriptionAttribute.delete_by_sid_and_class( self.env, req.session.sid, req.session.authenticated, klass) blogs = set(map(lambda x: x.strip(), req.args.get('announcer_watch_bloggers').split(','))) SubscriptionAttribute.add(self.env, req.session.sid, req.session.authenticated, klass, 'blog', blogs)
def do_update(db): sess = req.session SubscriptionAttribute.delete_by_sid_and_class( self.env, sess.sid, sess.authenticated, klass, db) users = map(lambda x: x.strip(), req.args.get("announcer_watch_users").split(',')) SubscriptionAttribute.add(self.env, sess.sid, sess.authenticated, klass, 'user', users, db)
def do_update(db): SubscriptionAttribute.delete_by_sid_and_class( self.env, req.session.sid, req.session.authenticated, klass) blogs = set( map(lambda x: x.strip(), req.args.get('announcer_watch_bloggers').split(','))) SubscriptionAttribute.add(self.env, req.session.sid, req.session.authenticated, klass, 'blog', blogs)
def do_update(db): SubscriptionAttribute.delete_by_sid_and_class(self.env, req.session.sid, req.session.authenticated, klass, db) def _map(value): g = re.match('^joinable_group_(.*)', value) if g: if istrue(req.args.get(value)): return g.groups()[0] groups = set(filter(None, map(_map,req.args.keys()))) SubscriptionAttribute.add(self.env, req.session.sid, req.session.authenticated, klass, 'ticket', groups, db)
def do_update(db): SubscriptionAttribute.delete_by_sid_and_class( self.env, req.session.sid, req.session.authenticated, klass, db ) def _map(value): g = re.match("^component_(.*)", value) if g: if istrue(req.args.get(value)): return g.groups()[0] components = set(filter(None, map(_map, req.args.keys()))) SubscriptionAttribute.add( self.env, req.session.sid, req.session.authenticated, klass, "ticket", components, db )
def do_update(db): SubscriptionAttribute.delete_by_sid_and_class( self.env, req.session.sid, req.session.authenticated, klass, db) def _map(value): g = re.match('^component_(.*)', value) if g: if istrue(req.args.get(value)): return g.groups()[0] components = set(filter(None, map(_map, req.args.keys()))) SubscriptionAttribute.add(self.env, req.session.sid, req.session.authenticated, klass, 'ticket', components, db)
def do_update(db): attrs = SubscriptionAttribute.find_by_sid_class_and_target( self.env, req.session.sid, req.session.authenticated, klass, name) if attrs: SubscriptionAttribute.delete_by_sid_class_and_target( self.env, req.session.sid, req.session.authenticated, klass, name) req.session['_blog_watch_message_'] = \ _('You are no longer watching this blog post.') else: SubscriptionAttribute.add( self.env, req.session.sid, req.session.authenticated, klass, 'blog', (name,)) req.session['_blog_watch_message_'] = \ _('You are now watching this blog post.')
def do_update(db): attrs = SubscriptionAttribute.find_by_sid_class_and_target( self.env, req.session.sid, req.session.authenticated, klass, name) if attrs: SubscriptionAttribute.delete_by_sid_class_and_target( self.env, req.session.sid, req.session.authenticated, klass, name) req.session['_blog_watch_message_'] = \ _('You are no longer watching this blog post.') else: SubscriptionAttribute.add(self.env, req.session.sid, req.session.authenticated, klass, 'blog', (name, )) req.session['_blog_watch_message_'] = \ _('You are now watching this blog post.')
def test_add_delete(self): attr = SubscriptionAttribute(self.env) attr.add(self.env, 'user', 1, 'GeneralWikiSubscriber','wiki', ('TracWiki', 'TracWiki')) cursor = self.db.cursor() cursor.execute("SELECT COUNT(*) FROM subscription_attribute") count = cursor.fetchone() self.assertEqual(count[0], 2) attr.delete(self.env, 1) # Make sure, that we really deleted the 1st attribute. cursor.execute("SELECT target FROM subscription_attribute") for attribute in cursor.fetchone(): self.assertEqual(attribute, 'TracWiki') cursor.execute("SELECT COUNT(*) FROM subscription_attribute") count = cursor.fetchone() self.assertEqual(count[0], 1) # Deleting non-existent subscriptions is handled gracefully. attr.delete(self.env, 1)
def render_announcement_preference_box(self, req, panel): klass = self.__class__.__name__ if req.method == "POST": with self.env.db_transaction: SubscriptionAttribute.delete_by_sid_and_class( self.env, req.session.sid, req.session.authenticated, klass) blogs = set(map(lambda x: x.strip(), req.args.get( 'announcer_watch_bloggers').split(','))) SubscriptionAttribute.add(self.env, req.session.sid, req.session.authenticated, klass, 'blog', blogs) attrs = SubscriptionAttribute.\ find_by_sid_and_class(self.env, req.session.sid, req.session.authenticated, klass) data = {'sids': ','.join(set(map(lambda x: x['target'], attrs)))} return 'prefs_announcer_watch_bloggers.html', dict(data=data)
def render_announcement_preference_box(self, req, panel): klass = self.__class__.__name__ sess = req.session if req.method == 'POST': with self.env.db_transaction as db: SubscriptionAttribute.\ delete_by_sid_and_class(self.env, sess.sid, sess.authenticated, klass, db) SubscriptionAttribute.add(self.env, sess.sid, sess.authenticated, klass, 'wiki', (req.args.get('wiki_interests'), ), db) (interests, ) = SubscriptionAttribute.find_by_sid_and_class( self.env, sess.sid, sess.authenticated, klass) or ({ 'target': '' }, ) return 'prefs_announcer_wiki.html', dict(wiki_interests='\n'.join( urllib.unquote(x) for x in interests['target'].split(' ')))
def render_announcement_preference_box(self, req, panel): klass = self.__class__.__name__ sess = req.session if req.method == 'POST': with self.env.db_transaction as db: SubscriptionAttribute.\ delete_by_sid_and_class(self.env, sess.sid, sess.authenticated, klass, db) SubscriptionAttribute.add(self.env, sess.sid, sess.authenticated, klass, 'wiki', (req.args.get('wiki_interests'),), db) (interests,) = SubscriptionAttribute.find_by_sid_and_class( self.env, sess.sid, sess.authenticated, klass) or ( {'target': ''},) return 'prefs_announcer_wiki.html', dict( wiki_interests='\n'.join( urllib.unquote(x) for x in interests['target'].split(' ')))
def render_announcement_preference_box(self, req, panel): klass = self.__class__.__name__ if req.method == 'POST': with self.env.db_transaction as db: sess = req.session SubscriptionAttribute\ .delete_by_sid_and_class(self.env, sess.sid, sess.authenticated, klass, db) users = map(lambda x: x.strip(), req.args.get('announcer_watch_users').split(',')) SubscriptionAttribute.add(self.env, sess.sid, sess.authenticated, klass, 'user', users, db) attrs = filter(None, map( lambda x: x['target'], SubscriptionAttribute.find_by_sid_and_class( self.env, req.session.sid, req.session.authenticated, klass ) )) data = dict(announcer_watch_users=','.join(attrs)) return 'prefs_announcer_watch_users.html', data
def process_request(self, req): klass = self.__class__.__name__ m = re.match(r'^/blog_watch/(.*)', req.path_info) (name,) = m.groups() with self.env.db_transaction: attrs = SubscriptionAttribute.find_by_sid_class_and_target( self.env, req.session.sid, req.session.authenticated, klass, name) if attrs: SubscriptionAttribute.delete_by_sid_class_and_target( self.env, req.session.sid, req.session.authenticated, klass, name) req.session['_blog_watch_message_'] = \ _("You are no longer watching this blog post.") else: SubscriptionAttribute.add( self.env, req.session.sid, req.session.authenticated, klass, 'blog', (name,)) req.session['_blog_watch_message_'] = \ _("You are now watching this blog post.") req.redirect(req.href.blog(name))
def set_watch(self, sid, authenticated, realm, target): klass = self.__class__.__name__ SubscriptionAttribute.add(self.env, sid, authenticated, klass, realm, (target, ))
def do_update(db): SubscriptionAttribute.delete_by_sid_and_class(self.env, req.session.sid, req.session.authenticated, klass, db) SubscriptionAttribute.add(self.env, req.session.sid, req.session.authenticated, klass, 'wiki', req.args.get('wiki_interests', db))
def do_update(db): SubscriptionAttribute.delete_by_sid_and_class(self.env, sess.sid, sess.authenticated, klass, db) SubscriptionAttribute.add( self.env, sess.sid, sess.authenticated, klass, "wiki", (req.args.get("wiki_interests"),), db )
def set_watch(self, sid, authenticated, realm, target): klass = self.__class__.__name__ SubscriptionAttribute.add(self.env, sid, authenticated, klass, realm, (target,))