def expand_macro(self, formatter, name, content, args=None): """ Returns the outcome from macro. Supported arguments: - count: Number of entries to show """ req = formatter.req papi = Projects() userstore = get_userstore() # Parse optional arguments if args is None: args = parse_args(content) if len(args) > 1: args = args[1] featured_projects = papi.get_projects_for_rss('FEATURED', limit_count=args.get( 'count', 5)) data = {'featured_projects': featured_projects} return Chrome(self.env).render_template(req, 'multiproject_featured.html', data, fragment=True)
def expand_macro(self, formatter, name, content, args=None): """ Returns the outcome from macro. Supported arguments: - count: Number of entries to show """ req = formatter.req papi = Projects() userstore = get_userstore() projects = [] # Parse optional arguments if args is None: args = parse_args(content) if len(args) > 1: args = args[1] projects = papi.get_projects_for_rss('MOSTACTIVE', limit_count=args.get('count', 5), limit_activity=self.min_activity) return Chrome(self.env).render_template(req, 'multiproject_active.html', {'active_projects': projects}, fragment=True)
def process_request(self, req): """ Process request for listing, creating and removing projects """ prjs = Projects() data = {} data['home'] = conf.url_home_path.rstrip('/') + "/rss" data['tracurl'] = conf.url_home_path.rstrip('/') # Having url_service here is probably a good idea. Otherwise RSS readers have no idea # where to fetch the relative path /project from. data['projroot'] = conf.url_service.rstrip('/') data['host'] = conf.domain_name data['url'] = req.path_info.rstrip('/').lstrip('/') if re.match(r'/rss/mostactive.xml$', req.path_info): data['projects'] = prjs.get_projects_for_rss('MOSTACTIVE', limit_count=50) data['title'] = 'Most active public projects' elif re.match(r'/rss/newest.xml$', req.path_info): min_activity = self.config.getint('multiproject-projects', 'min_activity', 0) data['projects'] = prjs.get_projects_for_rss( 'NEWEST', limit_count=50, limit_activity=min_activity) data['title'] = 'Newest public projects' elif re.match(r'/rss/featured.xml$', req.path_info): data['projects'] = prjs.get_projects_for_rss('FEATURED', limit_count=50) data['title'] = 'Featured projects' elif re.match(r'/rss/projects/.*.xml', req.path_info): username = req.path_info[req.path_info.rfind('/') + 1:-4] # username is validated in get_participated_public_projects data['projects'] = prjs.get_participated_public_projects(username) data['title'] = '%s\'s projects' % username else: data['projects'] = None # Support for both RSS 2.0 (default) and RSS 1.0 formats if 'rss10' == req.args.get('format', 'notset'): return "rss_feed_template.rss10", data, 'application/rss+xml' return "rss_feed_template.rss", data, 'application/rss+xml'
def _list_mostactive_public_projects(self, req): prjs = Projects() page_size = 25 data = {} limit_start, page_size = self._add_rss_pagination(req, data, page_size) data['projects'] = prjs.get_projects_for_rss('MOSTACTIVE', limit_start=limit_start, limit_count=page_size) return 'rss_list.html', data, None
def _list_recent_public_projects(self, req): prjs = Projects() page_size = 25 data = {} limit_start, page_size = self._add_rss_pagination(req, data, page_size) min_activity = self.config.getint('multiproject-projects', 'min_activity') data['projects'] = prjs.get_projects_for_rss('NEWEST', limit_start=limit_start, limit_count=page_size, limit_activity=min_activity) return 'rss_list.html', data, None
def process_request(self, req): """ Process request for listing, creating and removing projects """ prjs = Projects() data = {} data['home'] = conf.url_home_path.rstrip('/') + "/rss" data['tracurl'] = conf.url_home_path.rstrip('/') # Having url_service here is probably a good idea. Otherwise RSS readers have no idea # where to fetch the relative path /project from. data['projroot'] = conf.url_service.rstrip('/') data['host'] = conf.domain_name data['url'] = req.path_info.rstrip('/').lstrip('/') if re.match (r'/rss/mostactive.xml$', req.path_info): data['projects'] = prjs.get_projects_for_rss('MOSTACTIVE', limit_count=50) data['title'] = 'Most active public projects' elif re.match (r'/rss/newest.xml$', req.path_info): min_activity = self.config.getint('multiproject-projects', 'min_activity', 0) data['projects'] = prjs.get_projects_for_rss('NEWEST', limit_count=50, limit_activity=min_activity) data['title'] = 'Newest public projects' elif re.match (r'/rss/featured.xml$', req.path_info): data['projects'] = prjs.get_projects_for_rss('FEATURED', limit_count=50) data['title'] = 'Featured projects' elif re.match(r'/rss/projects/.*.xml', req.path_info): username = req.path_info[req.path_info.rfind('/') + 1:-4] # username is validated in get_participated_public_projects data['projects'] = prjs.get_participated_public_projects(username) data['title'] = '%s\'s projects' % username else: data['projects'] = None # Support for both RSS 2.0 (default) and RSS 1.0 formats if 'rss10' == req.args.get('format', 'notset'): return "rss_feed_template.rss10", data, 'application/rss+xml' return "rss_feed_template.rss", data, 'application/rss+xml'
def _list_recent_public_projects(self, req): prjs = Projects() page_size = 25 data = {} limit_start, page_size = self._add_rss_pagination(req, data, page_size) min_activity = self.config.getint('multiproject-projects', 'min_activity') data['projects'] = prjs.get_projects_for_rss( 'NEWEST', limit_start=limit_start, limit_count=page_size, limit_activity=min_activity) return 'rss_list.html', data, None
def expand_macro(self, formatter, name, content, args=None): """ Returns the outcome from macro. Supported arguments: - count: Number of entries to show """ req = formatter.req papi = Projects() userstore = get_userstore() projects = [] # Parse optional arguments if args is None: args = parse_args(content) if len(args) > 1: args = args[1] min_activity = self.config.getint('multiproject-projects', 'min_activity') projects = papi.get_projects_for_rss('NEWEST', limit_count=args.get('count', 5), limit_activity=min_activity) return Chrome(self.env).render_template(req, 'multiproject_recent.html', {'recent_projects': projects}, fragment=True)
def expand_macro(self, formatter, name, content, args=None): """ Returns the outcome from macro. Supported arguments: - count: Number of entries to show """ req = formatter.req papi = Projects() userstore = get_userstore() # Parse optional arguments if args is None: args = parse_args(content) if len(args) > 1: args = args[1] featured_projects = papi.get_projects_for_rss('FEATURED', limit_count=args.get('count', 5)) data = { 'featured_projects': featured_projects } return Chrome(self.env).render_template(req, 'multiproject_featured.html', data, fragment=True)