Example #1
0
    def render_announcement_preference_box(self, req, panel):
        klass = self.__class__.__name__

        if req.method == "POST":

            @self.env.with_transaction()
            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)

        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
Example #2
0
    def render_announcement_preference_box(self, req, panel):
        klass = self.__class__.__name__

        if req.method == "POST":

            @self.env.with_transaction()
            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)

        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)
Example #4
0
    def render_announcement_preference_box(self, req, panel):
        klass = self.__class__.__name__

        if req.method == "POST":

            @self.env.with_transaction()
            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
                )

        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('^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)
Example #7
0
    def render_announcement_preference_box(self, req, panel):
        klass = self.__class__.__name__

        if req.method == "POST":
            @self.env.with_transaction()
            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)

        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(' ')))
Example #9
0
    def render_announcement_preference_box(self, req, panel):
        klass = self.__class__.__name__

        if req.method == "POST":

            @self.env.with_transaction()
            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)

        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(' ')))
Example #11
0
    def render_announcement_preference_box(self, req, panel):
        klass = self.__class__.__name__
        sess = req.session

        if req.method == "POST":

            @self.env.with_transaction()
            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
                )

        (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(" "))),
        )
Example #12
0
    def render_announcement_preference_box(self, req, panel):
        klass = self.__class__.__name__

        if req.method == "POST":
            @self.env.with_transaction()
            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))

        (interests,) = SubscriptionAttribute.find_by_sid_and_class(
            self.env, req.session.sid, req.session.authenticated, klass
        ) or ({'target':''},)

        return "prefs_announcer_wiki.html", dict(
            wiki_interests = '\n'.join(
                urllib.unquote(x) for x in interests['target'].split(' ')
            )
        )
Example #13
0
    def render_announcement_preference_box(self, req, panel):
        klass = self.__class__.__name__

        if req.method == "POST":
            @self.env.with_transaction()
            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)

        attrs = filter(None, map(
            lambda x: x['target'],
            SubscriptionAttribute.find_by_sid_and_class(
                self.env, req.session.sid, req.session.authenticated, klass
            )
        ))
        return "prefs_announcer_watch_users.html", dict(data=dict(
            announcer_watch_users=','.join(attrs)
        ))
Example #14
0
    def render_announcement_preference_box(self, req, panel):
        klass = self.__class__.__name__
        if req.method == "POST":

            @self.env.with_transaction()
            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
                )

        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:
                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