コード例 #1
0
ファイル: peopledirectory.py プロジェクト: hj91/karl
def render_report_group(group, request, css_class=''):
    """Produce the HTML for a report group on a section index page"""
    if not (IPeopleSectionColumn.providedBy(group) or
            IPeopleReportGroup.providedBy(group)):
        return ''
    result = []
    title = getattr(group, 'title', '')
    if title:
        result.append('<h3>%s</h3>' % escape(group.title))
    if css_class:
        result.append('<ul class=%s>' % quoteattr(css_class))
    else:
        result.append('<ul>')
    for obj in group.values():
        if IPeopleReport.providedBy(obj):
            url = resource_url(obj, request)
            result.append('<li><a href=%s class=%s>%s</a></li>' % (
                quoteattr(url),
                quoteattr(obj.css_class),
                escape(obj.link_title)))
        elif IPeopleReportGroup.providedBy(obj):
            html = render_report_group(obj, request)
            result.append('<li>')
            result.append(html)
            result.append('</li>')
    result.append('</ul>')
    return '\n'.join(result)
コード例 #2
0
def section_view(context, request):

    subs = [
        sub for sub in context.values() if
        has_permission('view', sub, request) and IPeopleReport.providedBy(sub)
    ]

    if len(subs) == 1:
        return HTTPFound(location=resource_url(subs[0], request))

    api = TemplateAPI(context, request, context.title)
    peopledir = find_peopledirectory(context)
    peopledir_tabs = get_tabs(peopledir, request, context.__name__)
    columns = [{
        'html': render_report_group(x, request, 'column'),
        'width': getattr(x, 'width', 50)
    } for x in context.values()]
    columns = [x for x in columns if x['html']]
    return dict(
        api=api,
        peopledir=peopledir,
        peopledir_tabs=peopledir_tabs,
        context_tools=peopledir_tabs,
        columns=columns,
        actions=get_actions(context, request),
    )
コード例 #3
0
def render_report_group(group, request, css_class=''):
    """Produce the HTML for a report group on a section index page"""
    if not (IPeopleSectionColumn.providedBy(group)
            or IPeopleReportGroup.providedBy(group)):
        return ''
    result = []
    title = getattr(group, 'title', '')
    if title:
        result.append('<h3>%s</h3>' % escape(group.title))
    if css_class:
        result.append('<ul class=%s>' % quoteattr(css_class))
    else:
        result.append('<ul>')
    for obj in group.values():
        if IPeopleReport.providedBy(obj):
            url = resource_url(obj, request)
            result.append('<li><a href=%s class=%s>%s</a></li>' %
                          (quoteattr(url), quoteattr(
                              obj.css_class), escape(obj.link_title)))
        elif IPeopleReportGroup.providedBy(obj):
            html = render_report_group(obj, request)
            result.append('<li>')
            result.append(html)
            result.append('</li>')
    result.append('</ul>')
    return '\n'.join(result)
コード例 #4
0
ファイル: peopleconf.py プロジェクト: reebalazs/karl
def dump_peopledir(peopledir):
    old_style = getattr(peopledir, "categories", None) is not None
    template = PageTemplate(body=_DUMP_XML)
    if old_style:
        categories = peopledir.categories
    else:
        categories = peopledir["categories"]
    return template(
        peopledir=peopledir,
        categories=categories,
        sections=[(x, peopledir[x]) for x in peopledir.order],
        is_column=lambda x: IPeopleSectionColumn.providedBy(x),
        is_group=lambda x: IPeopleReportGroup.providedBy(x),
        is_report=lambda x: IPeopleReport.providedBy(x),
        is_redirector=lambda x: IPeopleRedirector.providedBy(x),
        category_items=_category_items,
        acl_info=_acl_info,
        column_info=_column_info,
        report_items=_report_items,
        report_filter_items=_report_filter_items,
    )
コード例 #5
0
ファイル: peopleconf.py プロジェクト: zagy/karl
def dump_peopledir(peopledir):
    old_style = getattr(peopledir, 'categories', None) is not None
    template = PageTemplate(body=_DUMP_XML)
    if old_style:
        categories = peopledir.categories
    else:
        categories = peopledir['categories']
    return template(
        peopledir=peopledir,
        categories=categories,
        sections=[(x, peopledir[x]) for x in peopledir.order],
        is_column=lambda x: IPeopleSectionColumn.providedBy(x),
        is_group=lambda x: IPeopleReportGroup.providedBy(x),
        is_report=lambda x: IPeopleReport.providedBy(x),
        is_redirector=lambda x: IPeopleRedirector.providedBy(x),
        category_items=_category_items,
        acl_info=_acl_info,
        column_info=_column_info,
        report_items=_report_items,
        report_filter_items=_report_filter_items,
    )
コード例 #6
0
ファイル: peopledirectory.py プロジェクト: cguardia/karl
def section_view(context, request):

    subs = [sub for sub in context.values()
              if has_permission('view', sub, request) and
                 IPeopleReport.providedBy(sub)]

    if len(subs) == 1:
        return HTTPFound(location=model_url(subs[0], request))

    api = TemplateAPI(context, request, context.title)
    peopledir = find_peopledirectory(context)
    peopledir_tabs = get_tabs(peopledir, request, context.__name__)
    columns = [{'html': render_report_group(x, request, 'column'),
                'width': getattr(x, 'width', 50)}
                        for x in context.values()]
    columns = [x for x in columns if x['html']]
    return dict(api=api,
                peopledir=peopledir,
                peopledir_tabs=peopledir_tabs,
                columns=columns,
                actions=get_actions(context, request),
               )
コード例 #7
0
ファイル: peopledirectory.py プロジェクト: boothead/karl
def render_report_group(group, request, css_class=''):
    """Produce the HTML for a report group on a section index page"""
    res = []
    if group.title:
        res.append('<h3>%s</h3>' % escape(group.title))
    if css_class:
        res.append('<ul class=%s>' % quoteattr(css_class))
    else:
        res.append('<ul>')
    for obj in group.reports:
        if IPeopleReport.providedBy(obj):
            url = model_url(obj, request)
            res.append('<li><a href=%s class=%s>%s</a></li>' % (
                quoteattr(url),
                quoteattr(obj.css_class),
                escape(obj.link_title)))
        elif IPeopleReportGroup.providedBy(obj):
            html = render_report_group(obj, request)
            res.append('<li>')
            res.append(html)
            res.append('</li>')
    res.append('</ul>')
    return '\n'.join(res)
コード例 #8
0
ファイル: peopledirectory.py プロジェクト: hathawsh/karl
def section_view(context, request):

    subs = [sub for sub in context.values() if has_permission("view", sub, request) and IPeopleReport.providedBy(sub)]

    if len(subs) == 1:
        return HTTPFound(location=resource_url(subs[0], request))

    api = TemplateAPI(context, request, context.title)
    peopledir = find_peopledirectory(context)
    peopledir_tabs = get_tabs(peopledir, request, context.__name__)
    columns = [
        {"html": render_report_group(x, request, "column"), "width": getattr(x, "width", 50)} for x in context.values()
    ]
    columns = [x for x in columns if x["html"]]
    return dict(
        api=api,
        peopledir=peopledir,
        peopledir_tabs=peopledir_tabs,
        columns=columns,
        actions=get_actions(context, request),
    )