Exemple #1
0
def view(request):
    if not request.user.is_authenticated:
        ctx = {
            "next": request.GET.get(REDIRECT_FIELD_NAME, ""),
        }
        return render(request, "welcome.html", ctx)

    lang = request.COOKIES.get(COOKIE_NAME, None)

    if lang is None:
        supported = Language.live.cached_dict(
            show_all=request.user.is_superuser)
        lang = get_lang_from_http_header(request, supported)

    if lang is not None and lang not in ("projects", ""):
        url = reverse("pootle-language-browse", args=[lang])
    else:
        url = reverse("pootle-projects-browse")

    # Preserve query strings
    args = request.GET.urlencode()
    qs = "?%s" % args if args else ""
    redirect_url = "%s%s" % (url, qs)

    return redirect(redirect_url)
Exemple #2
0
def view(request):
    if not request.user.is_authenticated:
        ctx = {
            'next': request.GET.get(REDIRECT_FIELD_NAME, ''),
        }
        return WelcomeView.as_view()(request, ctx)

    lang = request.COOKIES.get(COOKIE_NAME, None)

    if lang is None:
        supported = Language.live.cached_dict(
            show_all=request.user.is_superuser
        )
        lang = get_lang_from_http_header(request, supported)

    if lang is not None and lang not in ('projects', ''):
        url = reverse('pootle-language-browse', args=[lang])
    else:
        url = reverse('pootle-projects-browse')

    # Preserve query strings
    args = request.GET.urlencode()
    qs = '?%s' % args if args else ''
    redirect_url = '%s%s' % (url, qs)

    return redirect(redirect_url)
Exemple #3
0
def view(request):
    if not request.user.is_authenticated:
        ctx = {
            'next': request.GET.get(REDIRECT_FIELD_NAME, ''),
        }
        return WelcomeView.as_view()(request, ctx)

    lang = request.COOKIES.get(COOKIE_NAME, None)

    if lang is None:
        supported = Language.live.cached_dict(
            show_all=request.user.is_superuser)
        lang = get_lang_from_http_header(request, supported)

    if lang is not None and lang not in ('projects', ''):
        url = reverse('pootle-language-browse', args=[lang])
    else:
        url = reverse('pootle-projects-browse')

    # Preserve query strings
    args = request.GET.urlencode()
    qs = '?%s' % args if args else ''
    redirect_url = '%s%s' % (url, qs)

    return redirect(redirect_url)
Exemple #4
0
def view(request):
    lang = request.COOKIES.get(COOKIE_NAME, None)

    if lang is None:
        supported = dict(Language.live.cached().values_list('code', 'fullname'))
        lang = get_lang_from_http_header(request, supported)

    if lang is not None and lang not in ('projects', ''):
        url = reverse('pootle-language-overview', args=[lang])
    else:
        url = reverse('pootle-projects-overview')

    # Preserve query strings
    args = request.GET.urlencode()
    qs = '?%s' % args if args else ''
    redirect_url = '%s%s' % (url, qs)

    return redirect(redirect_url)
Exemple #5
0
 def dispatch(self, request, *args, **kwargs):
     if not request.user.is_authenticated:
         ctx = {'next': request.GET.get(REDIRECT_FIELD_NAME, '')}
         return WelcomeView.as_view()(request, ctx)
     lang = request.COOKIES.get(COOKIE_NAME, None)
     if lang is None:
         lang = get_lang_from_http_header(
             request, (self.all_languages
                       if request.user.is_superuser else self.languages))
     if lang is not None and lang not in ('projects', ''):
         url = reverse('pootle-language-browse', args=[lang])
     else:
         url = reverse('pootle-projects-browse')
     # Preserve query strings
     args = request.GET.urlencode()
     qs = '?%s' % args if args else ''
     redirect_url = '%s%s' % (url, qs)
     return redirect(redirect_url)
Exemple #6
0
def view(request):
    lang = request.COOKIES.get(COOKIE_NAME, None)

    if lang is None:
        supported = dict(Language.live.cached().values_list(
            'code', 'fullname'))
        lang = get_lang_from_http_header(request, supported)

    if lang is not None and lang not in ('projects', ''):
        url = reverse('pootle-language-overview', args=[lang])
    else:
        url = reverse('pootle-projects-overview')

    # Preserve query strings
    args = request.GET.urlencode()
    qs = '?%s' % args if args else ''
    redirect_url = '%s%s' % (url, qs)

    return redirect(redirect_url)
Exemple #7
0
def view(request):
    lang = request.COOKIES.get(COOKIE_NAME, None)
    set_cookie = False

    if lang is None:
        set_cookie = True
        supported = dict(Language.live.cached().values_list('code', 'fullname'))
        lang = get_lang_from_http_header(request, supported)

    if lang is not None and lang != 'projects':
        response = HttpResponseRedirect(reverse('pootle-language-overview',
                                        args=[lang]))
    else:
        response = HttpResponseRedirect(reverse('pootle-project-list'))

    if set_cookie:
        response.set_cookie(COOKIE_NAME,
                            lang if lang is not None else 'projects')

    return response
Exemple #8
0
def view(request):
    lang = request.COOKIES.get(COOKIE_NAME, None)
    set_cookie = False

    if lang is None:
        set_cookie = True
        supported = dict(Language.live.cached().values_list(
            'code', 'fullname'))
        lang = get_lang_from_http_header(request, supported)

    if lang is not None and lang != 'projects':
        response = HttpResponseRedirect(
            reverse('pootle-language-overview', args=[lang]))
    else:
        response = HttpResponseRedirect(reverse('pootle-project-list'))

    if set_cookie:
        response.set_cookie(COOKIE_NAME,
                            lang if lang is not None else 'projects')

    return response
Exemple #9
0
 def dispatch(self, request, *args, **kwargs):
     if not request.user.is_authenticated:
         ctx = {
             'next': request.GET.get(REDIRECT_FIELD_NAME, '')}
         return WelcomeView.as_view()(request, ctx)
     lang = request.COOKIES.get(COOKIE_NAME, None)
     if lang is None:
         lang = get_lang_from_http_header(
             request,
             (self.all_languages
              if request.user.is_superuser
              else self.languages))
     if lang is not None and lang not in ('projects', ''):
         url = reverse('pootle-language-browse', args=[lang])
     else:
         url = reverse('pootle-projects-browse')
     # Preserve query strings
     args = request.GET.urlencode()
     qs = '?%s' % args if args else ''
     redirect_url = '%s%s' % (url, qs)
     return redirect(redirect_url)
Exemple #10
0
def view(request):
    if not request.user.is_authenticated():
        ctx = {
            'next': request.GET.get(REDIRECT_FIELD_NAME, ''),
        }
        return render(request, 'welcome.html', ctx)

    lang = request.COOKIES.get(COOKIE_NAME, None)

    if lang is None:
        supported = dict(Language.live.cached().values_list('code', 'fullname'))
        lang = get_lang_from_http_header(request, supported)

    if lang is not None and lang not in ('projects', ''):
        url = reverse('pootle-language-overview', args=[lang])
    else:
        url = reverse('pootle-projects-overview')

    # Preserve query strings
    args = request.GET.urlencode()
    qs = '?%s' % args if args else ''
    redirect_url = '%s%s' % (url, qs)

    return redirect(redirect_url)
Exemple #11
0
def test_get_lang_from_http_header(rf):
    # Test no header.
    request = rf.get("")
    assert 'HTTP_ACCEPT_LANGUAGE' not in request.META
    assert get_lang_from_http_header(request, SUPPORTED_LANGUAGES) is None

    # Test empty header.
    request = rf.get("", HTTP_ACCEPT_LANGUAGE='')
    assert get_lang_from_http_header(request, SUPPORTED_LANGUAGES) is None

    # Test header with wildcard.
    request = rf.get("", HTTP_ACCEPT_LANGUAGE='*')
    assert get_lang_from_http_header(request, SUPPORTED_LANGUAGES) is None

    # Test header with supported language.
    request = rf.get("", HTTP_ACCEPT_LANGUAGE='gl')
    assert get_lang_from_http_header(request, SUPPORTED_LANGUAGES) == 'gl'

    # Test cookie with longer supported language.
    request = rf.get("", HTTP_ACCEPT_LANGUAGE='es-AR')
    assert get_lang_from_http_header(request, SUPPORTED_LANGUAGES) == 'es-ar'

    # Test header with longer underscore language code for a supported
    # language.
    request = rf.get("", HTTP_ACCEPT_LANGUAGE='gl_ES')
    assert get_lang_from_http_header(request, SUPPORTED_LANGUAGES) is None

    # Test header with longer hyphen language code for a supported language.
    request = rf.get("", HTTP_ACCEPT_LANGUAGE='fr-FR')
    assert get_lang_from_http_header(request, SUPPORTED_LANGUAGES) == 'fr'

    # Test header with shorter language code for a supported language.
    request = rf.get("", HTTP_ACCEPT_LANGUAGE='es')
    assert get_lang_from_http_header(request, SUPPORTED_LANGUAGES) is None

    # Test header with unsupported language.
    request = rf.get("", HTTP_ACCEPT_LANGUAGE='FAIL')
    assert get_lang_from_http_header(request, SUPPORTED_LANGUAGES) is None

    # Test header with unsupported longer underscore language.
    request = rf.get("", HTTP_ACCEPT_LANGUAGE='the_FAIL')
    assert get_lang_from_http_header(request, SUPPORTED_LANGUAGES) is None

    # Test header with unsupported longer hyphen language.
    request = rf.get("", HTTP_ACCEPT_LANGUAGE='the-FAIL')
    assert get_lang_from_http_header(request, SUPPORTED_LANGUAGES) is None