def _get_welcome_page(self, req): rendered_page = None wiki_welcome = WikiPage(self.env, 'WelcomePage') if wiki_welcome: context = Context.from_request(req, wiki_welcome.resource) wiki_renderer = WikiTextRenderer(self.env) rendered_page = wiki_renderer.render(context, 'text/x-trac-wiki', wiki_welcome.text) return rendered_page
def process_request(self, req): """ Process request for listing, creating and removing projects """ add_script(req, 'multiproject/js/summary.js') data = {} if req.authname == 'anonymous': req.perm.require('PROJECT_VIEW') if not ('PROJECT_VIEW' in req.perm or 'PROJECT_PRIVATE_VIEW' in req.perm): return 'no_access.html', data, None # Load project from db project = Project.get(self.env) if req.args.get('action') == 'timeline_events': return self.get_summary_timeline_events(req, project.created) # TODO: Move project timeline implementation into macro # Get recent timeline events # TODO: Move project downloads implementation into macro # Get list of featured downloads downloads = [] if self.env.is_component_enabled('tracdownloads.api.DownloadsApi'): api = None # In case of import error we don't have it, so don't return any downloads try: from tracdownloads.api import DownloadsApi api = DownloadsApi(self.env) except ImportError: self.log.warning( "Unable to import DownloadsApi, but it's enabled.") if api: downloads = api.get_summary_items() # Load wiki:SummaryPage and show it as a main page summary_content = None summary_wiki = WikiPage(self.env, 'SummaryPage') if summary_wiki: context = Context.from_request(req, summary_wiki.resource) wiki_renderer = WikiTextRenderer(self.env) summary_content = wiki_renderer.render(context, 'text/x-trac-wiki', summary_wiki.text) data = { '_project_': project, # project object of a project we are in 'downloads': downloads, # list of featured downloads 'wiki_summary': summary_content, # Rendered content of the SummaryPage 'is_summary': True, 'env': self.env, } return 'summary.html', data, None
def process_request(self, req): """ Process request for listing, creating and removing projects """ add_script(req, 'multiproject/js/summary.js') data = {} if req.authname == 'anonymous': req.perm.require('PROJECT_VIEW') if not ('PROJECT_VIEW' in req.perm or 'PROJECT_PRIVATE_VIEW' in req.perm): return 'no_access.html', data, None # Load project from db project = Project.get(self.env) if req.args.get('action') == 'timeline_events': return self.get_summary_timeline_events(req, project.created) # TODO: Move project timeline implementation into macro # Get recent timeline events # TODO: Move project downloads implementation into macro # Get list of featured downloads downloads = [] if self.env.is_component_enabled('tracdownloads.api.DownloadsApi'): api = None # In case of import error we don't have it, so don't return any downloads try: from tracdownloads.api import DownloadsApi api = DownloadsApi(self.env) except ImportError: self.log.warning("Unable to import DownloadsApi, but it's enabled.") if api: downloads = api.get_summary_items() # Load wiki:SummaryPage and show it as a main page summary_content = None summary_wiki = WikiPage(self.env, 'SummaryPage') if summary_wiki: context = Context.from_request(req, summary_wiki.resource) wiki_renderer = WikiTextRenderer(self.env) summary_content = wiki_renderer.render(context, 'text/x-trac-wiki', summary_wiki.text) data = { '_project_': project, # project object of a project we are in 'downloads': downloads, # list of featured downloads 'wiki_summary': summary_content, # Rendered content of the SummaryPage 'is_summary': True, 'env': self.env, } return 'summary.html', data, None
def render_macro(self, req, name, content): # Pull out the arguments source_obj = str(content) dest_format = "text/x-trac-wiki" if not req.perm.has_permission('FILE_VIEW'): return '' repo = self.env.get_repository(req.authname) node = repo.get_node(source_obj) out = node.get_content().read() if dest_format is None: dest_format = node.content_type or get_mimetype(source_obj, out) ctxt = Context.from_request(req, 'source', source_obj) # RFE: Add ticket: and comment: sources. <NPK> # RFE: Add attachment: source. <NPK> # If we have a preview format, use it # Escape if needed # if not self.config.getbool('wiki', 'render_unsafe_content', False): # try: # out = HTMLParser(StringIO(out)).parse() | HTMLSanitizer() # except ParseError: # out = escape(out) # reader = str(out).split("||") need_header = 1 foo = (str( WikiTextRenderer(self.env).render(ctxt, "text/x-trac-wiki", str(out)))) return foo
def filter_stream(self, req, method, filename, stream, data): if filename != 'ticket.html' and (filename != 'typedticket.html'): return stream ticket = data['ticket'] id = ticket.id try: int(id) isint = 1 except: isint = 0 if isint == 1: content = "[[TicketBackLinks(%d)]]" % ticket.id content = WikiTextRenderer(self.env).render( Context.from_request(req), 'text/x-trac-wiki', content) stream |= Transformer("//div[@class='description']").after( tag.div(content, **{'class': "description"})) return stream