コード例 #1
0
ファイル: admin.py プロジェクト: nyuhuhuu/trachacks
 def process_admin_request(self, req, cat, page, path_info):
 
     mgr = SubscriptionManager(self.env)
     
     types = list(mgr.get_subscribables())
     subscriptions = {}
     for type in types:
         subscriptions[type] = list(mgr.get_subscriptions(type))
                 
     if req.method == 'POST':
         if req.args.get('add'):
             env = req.args.get('env')
             type = req.args.get('type')
             
             assert type in types
             
             # Verify that this looks like an env
             try:
                 open_env(env)
             except IOError:
                 raise TracError, "'%s' is not a valid Trac environment"%env
             
             if env not in subscriptions[type]:
                 mgr.subscribe_to(env, type)
             req.redirect(req.href.admin(cat,page))
     
     req.hdf['tracforge.types'] = types
     req.hdf['tracforge.subscriptions'] = subscriptions
     return 'tracforge_subscriptions_admin.cs', 'text/html'
コード例 #2
0
    def process_admin_request(self, req, cat, page, path_info):

        mgr = SubscriptionManager(self.env)

        types = list(mgr.get_subscribables())
        subscriptions = {}
        for type in types:
            subscriptions[type] = list(mgr.get_subscriptions(type))

        if req.method == 'POST':
            if req.args.get('add'):
                env = req.args.get('env')
                type = req.args.get('type')

                assert type in types

                # Verify that this looks like an env
                try:
                    open_env(env)
                except IOError:
                    raise TracError, "'%s' is not a valid Trac environment" % env

                if env not in subscriptions[type]:
                    mgr.subscribe_to(env, type)
                req.redirect(req.href.admin(cat, page))

        req.hdf['tracforge.types'] = types
        req.hdf['tracforge.subscriptions'] = subscriptions
        return 'tracforge_subscriptions_admin.cs', 'text/html'
コード例 #3
0
ファイル: changeset.py プロジェクト: nyuhuhuu/trachacks
    def get_timeline_events(self, req, start, stop, filters):
        if 'remote_changeset' in filters:
            for source in SubscriptionManager(self.env).get_subscriptions('changeset'):
                env = open_env(source)
                
                # Try to isolate the base URL to the other Trac
                base = ''
                if env in self.env_map: # First use our own mapping
                    base = self.env_map[base]
                else:
                    env_basename = os.path.split(env.path.rstrip(os.sep))[1]
                    if self.config.get('intertrac', env_basename+'.url'): # Then try using an intertrac link
                        base = self.config.get('intertrac', env_basename+'.url')
                    else: # And finally look for a sibling path
                        self.log.debug('ChangesetSubscribable: Falling back to sibling computation, base is %s'%env_basename)
                        url = req.href().rstrip('/').split('/')
                        url.pop()
                        url.append(env_basename)
                        base = '/'.join(url)

                self.log.debug('ChangesetSubscribable: Computed base URL of %s to be %s'%(env.path, base))
                new_href = Href(base)
                env.href = new_href
                new_req = PseudoRequest(req, new_href)
                cset = ChangesetModule(env)
                try:
                    for ret in cset.get_timeline_events(new_req, start, stop, ['changeset']):
                        kind, href, title, date, author, message = ret
                        title += Markup(' from %s',env.config.get('project','name',env.path))
                        yield (kind, href, title, date, author, message)
                except Exception, e:
                    self.log.debug('ChangesetSubscribable: %s'%traceback.format_exc())
                    raise e
コード例 #4
0
    def get_timeline_events(self, req, start, stop, filters):
        if 'remote_changeset' in filters:
            for source in SubscriptionManager(
                    self.env).get_subscriptions('changeset'):
                env = open_env(source)

                # Try to isolate the base URL to the other Trac
                base = ''
                if env in self.env_map:  # First use our own mapping
                    base = self.env_map[base]
                else:
                    env_basename = os.path.split(env.path.rstrip(os.sep))[1]
                    if self.config.get(
                            'intertrac', env_basename +
                            '.url'):  # Then try using an intertrac link
                        base = self.config.get('intertrac',
                                               env_basename + '.url')
                    else:  # And finally look for a sibling path
                        self.log.debug(
                            'ChangesetSubscribable: Falling back to sibling computation, base is %s'
                            % env_basename)
                        url = req.href().rstrip('/').split('/')
                        url.pop()
                        url.append(env_basename)
                        base = '/'.join(url)

                self.log.debug(
                    'ChangesetSubscribable: Computed base URL of %s to be %s' %
                    (env.path, base))
                new_href = Href(base)
                env.href = new_href
                new_req = PseudoRequest(req, new_href)
                cset = ChangesetModule(env)
                try:
                    for ret in cset.get_timeline_events(
                            new_req, start, stop, ['changeset']):
                        kind, href, title, date, author, message = ret
                        title += Markup(
                            ' from %s',
                            env.config.get('project', 'name', env.path))
                        yield (kind, href, title, date, author, message)
                except Exception, e:
                    self.log.debug('ChangesetSubscribable: %s' %
                                   traceback.format_exc())
                    raise e