Пример #1
0
def change_lang(request):
    """
    Change current documentation language.
    """
    lang = request.GET.get('lang_code', 'en')

    # By default, intend to redirect to the home page.

    path = urlparse(request.META.get('HTTP_REFERER')).path

    if path == '/about_cn.html':
        response = redirect('/about_en.html')
    elif path == '/about_en.html':
        response = redirect('/about_cn.html')
    elif path.endswith('404.html'):
        portal_helper.set_preferred_language(request, None, lang)
        response = redirect('/404.html')
    elif path in ['/documentation/models', '/documentation/mobile']:
        # There is no information on lang and version. The only way is to redirect to the documentation home
        response = redirect('/documentation/%s' % lang)
    elif not path in ['/', '/en', '/zh']:
        # If not for homepage, its regular documentations.
        response = _find_matching_equivalent_page_for(path, request, lang)
    else:
        response = redirect('/%s' % lang)

    return response
Пример #2
0
def search(request):
    """
    Placeholder for a search results page that uses local indexes.
    If this has a 'autocomplete' param, consider it an autocomplete request and
    serve a response by proxying to the local node search server.
    """
    autocomplete_query = request.GET.get('autocomplete', None)
    version = request.GET.get('version', '')
    lang = request.GET.get('language', '')

    if autocomplete_query:
        return JsonResponse(
            requests.get(settings.SEARCH_SERVER_URL + '/search',
                         params={
                             'q': autocomplete_query,
                             'version': version,
                             'lang': lang
                         }).json())

    else:
        portal_helper.set_preferred_language(request, None, lang)

        return render(
            request, 'search.html', {
                'q': request.GET.get('q', ''),
                'lang': lang,
                'CURRENT_DOCS_VERSION': version,
            })
Пример #3
0
def change_lang(request):
    """
    Change current documentation language.
    """
    lang = request.GET.get('lang_code', 'en')

    response = redirect('/')
    portal_helper.set_preferred_language(request, response, lang)

    return response
Пример #4
0
def huangpu_root(request):
    portal_helper.set_preferred_language(request, None, 'zh')

    is_mobile = parse(request.META.get('HTTP_USER_AGENT', '')).is_mobile

    return render(
        request, 'huangpu-mobile.html' if is_mobile else 'huangpu.html', {
            'title': '黄埔计划延展图',
            'wrapper_class': 'huangpu-mobile' if is_mobile else None
        })
Пример #5
0
def search(request):
    """
    Placeholder for a search results page that uses local indexes.
    """
    lang = request.GET.get('language', '')
    portal_helper.set_preferred_language(request, None, lang)

    return render(
        request, 'search.html', {
            'q': request.GET.get('q', ''),
            'lang': lang,
            'CURRENT_DOCS_VERSION': request.GET.get('version', ''),
        })
Пример #6
0
def change_lang(request):
    """
    Change current documentation language.
    """
    lang = request.GET.get('lang_code', 'en')

    # By default, intend to redirect to the home page.
    response = redirect('/')

    # Needs to set the preferred language first in case the following code reads lang from portal_helper.
    portal_helper.set_preferred_language(request, response, lang)

    # Use the page the user was on, right before attempting to change the language.
    # If there is a known page the user was on, attempt to redirect to it's root contents.
    from_path = urllib.unquote(request.GET.get('path', None))

    if from_path:
        # Get which content the user was reading.
        content_id = request.GET.get('content_id')

        if content_id:
            # Get the proper version.
            docs_version = portal_helper.get_preferred_version(request)

            # Grabbing root_navigation to check if the current lang supports this book
            # It also makes sure that all_links_cache is ready.
            root_navigation = sitemap_helper.get_sitemap(docs_version, lang)

            if content_id in root_navigation:
                all_links_cache = cache.get(
                    sitemap_helper.get_all_links_cache_key(docs_version, lang),
                    None)

                key = url_helper.link_cache_key(from_path)

                if all_links_cache and key in all_links_cache:
                    response = redirect(all_links_cache[key])
                else:
                    # There is no translated path. Use the first link in the contents instead
                    response = _redirect_first_link_in_contents(
                        request, docs_version, content_id)

        # If the user happens to be coming from the blog.
        elif from_path.startswith('/blog'):
            # Blog doesn't a content_id and translated version. Simply redirect back to the original path.
            response = redirect(from_path)

    portal_helper.set_preferred_language(request, response, lang)

    return response
Пример #7
0
def base_context(request):
    path = urlparse(request.path).path
    content_id, lang, version = url_helper.get_parts_from_url_path(path)

    if not version:
        version = portal_helper.get_preferred_version(request)

    if lang in ['en', 'zh'
                ] and lang != portal_helper.get_preferred_language(request):
        portal_helper.set_preferred_language(request, None, lang)
    else:
        lang = portal_helper.get_preferred_language(request)

    return {
        'CURRENT_DOCS_VERSION': version,
        'settings': settings,
        'url_helper': url_helper,
        'lang': lang,
        'content_id': content_id
    }
Пример #8
0
def cn_home_root(request):
    response = redirect('/')
    portal_helper.set_preferred_language(request, response, 'zh')
    return response
Пример #9
0
def about_cn(request):
    portal_helper.set_preferred_language(request, None, 'zh')
    return render(request, 'about_cn.html')
Пример #10
0
def zh_home_root(request):
    portal_helper.set_preferred_language(request, None, 'zh')
    return render(request, 'index.html')
Пример #11
0
def suite_root(request):
    portal_helper.set_preferred_language(request, None, 'zh')
    return render(request, 'pps.html')
Пример #12
0
def en_home_root(request):
    portal_helper.set_preferred_language(request, None, 'en')
    return render(request, 'visualdl/index.html')