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)
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)
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)
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)
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)
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)
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
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
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)
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)
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