Esempio n. 1
0
def template_filter_index(request):
    if not doc:
        return missing_docutils_page(request)

    saved_tagset = template.registered_tags.copy(), template.registered_filters.copy()
    load_all_installed_template_libraries()

    filters = []
    for filtername in template.registered_filters:
        title, body, metadata = doc.parse_docstring(template.registered_filters[filtername][0].__doc__)
        if title:
            title = doc.parse_rst(title, 'filter', 'filter:' + filtername)
        if body:
            body = doc.parse_rst(body, 'filter', 'filter:' + filtername)
        for key in metadata:
            metadata[key] = doc.parse_rst(metadata[key], 'filter', 'filter:' + filtername)
        metadata['AcceptsArgument'] = template.registered_filters[filtername][1]
        library = template.registered_filters[filtername][0].__module__.split('.')[-1]
        if library == 'template_loader' or library == 'defaultfilters':
            library = None
        filters.append({
            'name'    : filtername,
            'title'   : title,
            'body'    : body,
            'meta'    : metadata,
            'library' : library,
        })

    template.registered_tags, template.registered_filters = saved_tagset

    return render_to_response('admin_doc/template_filter_index', {'filters': filters}, context_instance=DjangoContext(request))
Esempio n. 2
0
def view_detail(request, view):
    if not doc:
        return missing_docutils_page(request)

    mod, func = urlresolvers.get_mod_func(view)
    try:
        view_func = getattr(__import__(mod, '', '', ['']), func)
    except (ImportError, AttributeError):
        raise Http404
    title, body, metadata = doc.parse_docstring(view_func.__doc__)
    if title:
        title = doc.parse_rst(title, 'view', 'view:' + view)
    if body:
        body = doc.parse_rst(body, 'view', 'view:' + view)
    for key in metadata:
        metadata[key] = doc.parse_rst(metadata[key], 'model', 'view:' + view)
    return render_to_response('admin_doc/view_detail', {
        'name': view,
        'summary': title,
        'body': body,
        'meta': metadata,
    }, context_instance=DjangoContext(request))
Esempio n. 3
0
def template_tag_index(request):
    import sys

    if not doc:
        return missing_docutils_page(request)

    # We have to jump through some hoops with registered_tags to make sure
    # they don't get messed up by loading outside tagsets
    saved_tagset = template.registered_tags.copy(), template.registered_filters.copy()
    load_all_installed_template_libraries()

    # Gather docs
    tags = []
    for tagname in template.registered_tags:
        title, body, metadata = doc.parse_docstring(template.registered_tags[tagname].__doc__)
        if title:
            title = doc.parse_rst(title, 'tag', 'tag:' + tagname)
        if body:
            body = doc.parse_rst(body, 'tag', 'tag:' + tagname)
        for key in metadata:
            metadata[key] = doc.parse_rst(metadata[key], 'tag', 'tag:' + tagname)
        library = template.registered_tags[tagname].__module__.split('.')[-1]
        if library == 'template_loader' or library == 'defaulttags':
            library = None
        tags.append({
            'name'    : tagname,
            'title'   : title,
            'body'    : body,
            'meta'    : metadata,
            'library' : library,
        })

    # Fix registered_tags
    template.registered_tags, template.registered_filters = saved_tagset

    return render_to_response('admin_doc/template_tag_index', {'tags': tags}, context_instance=DjangoContext(request))