Beispiel #1
0
 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
Beispiel #2
0
    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 _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
Beispiel #4
0
    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
Beispiel #5
0
    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
Beispiel #6
0
    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