예제 #1
0
def _render_static_content(request,
                           version,
                           content_id,
                           additional_context=None):
    """
    This is the primary function that renders all static content (.html) pages.
    It builds the context and passes it to the only documentation template rendering template.
    """
    isRaw = request.GET.get('raw', None)
    static_content_path = sitemap_helper.get_external_file_path(request.path)
    static_content = _get_static_content_from_template(static_content_path)

    if isRaw and isRaw == '1':
        response = HttpResponse(static_content, content_type="text/html")
        return response
    else:
        context = {
            'static_content': static_content,
            'content_id': content_id,
        }

        if additional_context:
            context.update(additional_context)

        template = 'content_panel.html'
        if content_id in [Content.MOBILE, Content.MODELS]:
            template = 'content_doc.html'

        response = render(request, template, context)
        if version:
            portal_helper.set_preferred_version(request, response, version)

        return response
예제 #2
0
def _render_static_content(request,
                           version,
                           content_id,
                           additional_context=None):
    """
    This is the primary function that renders all static content (.html) pages.
    It builds the context and passes it to the only documentation template rendering template.
    """

    static_content_path = sitemap_helper.get_external_file_path(request.path)

    context = {
        'static_content':
        _get_static_content_from_template(static_content_path),
        'content_id': content_id,
    }

    if additional_context:
        context.update(additional_context)

    template = 'visualdl/content_panel.html'

    response = render(request, template, context)
    if version:
        portal_helper.set_preferred_version(response, version)

    return response
예제 #3
0
def change_version(request):
    """
    Change current documentation version.
    """
    # Look for a new version in the URL get params.
    preferred_version = request.GET.get('preferred_version', settings.DEFAULT_DOCS_VERSION)

    # Refers to the name of the contents service, for eg. 'models', 'documentation', or 'book'.
    content_id = request.GET.get('content_id', None)

    # Infer language based on session/cookie.
    lang = portal_helper.get_preferred_language(request)

    root_navigation = sitemap_helper.get_sitemap(preferred_version, lang)

    response = home_root(request)

    if content_id:
        if content_id in root_navigation and root_navigation[content_id]:
            response = _redirect_first_link_in_contents(request, preferred_version, content_id)
        else:
            # This version doesn't support this book. Redirect it back to home
            response = redirect('/')

    # If no content service specified, just redirect to first page of root site navigation.
    elif root_navigation and len(root_navigation) > 0:
        for content_id, content in root_navigation.items():
            if content:
                response = _redirect_first_link_in_contents(request, preferred_version, content_id)

    portal_helper.set_preferred_version(request, response, preferred_version)

    return response
예제 #4
0
def home_root(request):
    if settings.CURRENT_PPO_MODE == settings.PPO_MODES.DOC_EDIT_MODE:
        context = {
            'folder_names': portal_helper.get_available_doc_folder_names(),
        }
        return render(request, 'index_doc_mode.html', context)

    elif settings.CURRENT_PPO_MODE == settings.PPO_MODES.DOC_VIEW_MODE:
        if portal_helper.has_downloaded_workspace_file():
            preferred_version = portal_helper.get_preferred_version(request)
            return _redirect_first_link_in_contents(request, preferred_version,
                                                    Content.DOCUMENTATION)
        else:
            response = render(request, 'index_doc_view_mode.html')
            portal_helper.set_preferred_version(response, 'develop')
            return response

    else:
        return render(request, 'index.html')
예제 #5
0
def home_root(request):
    if settings.CURRENT_PPO_MODE == settings.PPO_MODES.DOC_EDIT_MODE:
        if request.method == 'POST':
            form = PaddleOperatorsForm(request.POST)

            if form.is_valid():
                print 'PROCESSING PADDLE OPERATORS'
                output_path = get_destination_documentation_dir(
                    'doc_test', 'documentation')
                generate_operators_page(form['operatorsJson'].data,
                                        output_path, ['en', 'zh'])

                for lang in ['en', 'zh']:
                    generate_operators_sitemap(output_path, lang)

                sitemap_helper.remove_all_resolved_sitemaps()

                return redirect('/docs/%s/documentation/en/operators.html' %
                                settings.DEFAULT_DOCS_VERSION)
        else:
            form = PaddleOperatorsForm()

        context = {
            'folder_names': portal_helper.get_available_doc_folder_names(),
            'form': form
        }
        return render(request, 'index_doc_mode.html', context)

    elif settings.CURRENT_PPO_MODE == settings.PPO_MODES.DOC_VIEW_MODE:
        if portal_helper.has_downloaded_workspace_file():
            preferred_version = portal_helper.get_preferred_version(request)
            return _redirect_first_link_in_contents(request, preferred_version,
                                                    Content.DOCUMENTATION)
        else:
            response = render(request, 'index_doc_view_mode.html')
            portal_helper.set_preferred_version(request, response, 'develop')
            return response

    else:
        return render(request, 'index.html')
예제 #6
0
def _redirect_first_link_in_contents(request, version, content_id):
    """
    Given a version and a content service, redirect to the first link in it's
    navigation.
    """
    lang = portal_helper.get_preferred_language(request)
    root_navigation = sitemap_helper.get_sitemap(version, lang)

    try:
        # Get the first section link from the content.
        content = root_navigation[content_id]
        path = _get_first_link_in_contents(content, lang)

        if not path:
            msg = 'Cannot perform reverse lookup on link: %s' % path
            raise Exception(msg)

        response = redirect(path)
        portal_helper.set_preferred_version(request, response, version)
        return redirect(path)

    except Exception as e:
        print e.message
        return redirect('/')