示例#1
0
def get_locale_from_request(request, session=None, user=None):
    if user is None:
        user_id = request.authenticated_userid or Everyone
        if user_id != Everyone:
            user = User.get(user_id)
    session = session or User.default_db
    if user:
        if '_LOCALE_' in request.params:
            locale = request.params['_LOCALE_']
            process_locale(locale, user, session,
                           LanguagePreferenceOrder.Parameter)
        elif '_LOCALE_' in request.cookies:
            locale = request.cookies['_LOCALE_']
            process_locale(locale, user, session,
                           LanguagePreferenceOrder.Cookie)
        else:
            # uses my locale negotiator
            locale = request.locale_name
            process_locale(locale, user, session,
                           LanguagePreferenceOrder.OS_Default)
    else:
        locale = request.localizer.locale_name
    target_locale = Locale.get_or_create(
        strip_country(locale), session)
    return target_locale
示例#2
0
def base_admin_view(request):
    """The Base admin view, for frontend urls"""
    user_id = authenticated_userid(request) or Everyone
    if user_id == Everyone:
        raise HTTPUnauthorized()
    context = get_default_context(request)

    session = Discussion.default_db
    preferences = Preferences.get_default_preferences(session)
    user = User.get(user_id)

    if '_LOCALE_' in request.cookies:
        locale = request.cookies['_LOCALE_']
        process_locale(locale, user, session, LanguagePreferenceOrder.Cookie)

    elif '_LOCALE_' in request.params:
        locale = request.params['_LOCALE_']
        process_locale(locale, user, session,
                       LanguagePreferenceOrder.Parameter)
    else:
        locale = request.locale_name
        process_locale(locale, user, session,
                       LanguagePreferenceOrder.OS_Default)

    target_locale = strip_country(locale)
    locale_labels = json.dumps(
        DummyGoogleTranslationService.target_locale_labels_cls(target_locale))
    context['translation_locale_names_json'] = locale_labels

    role_names = [x for (x, ) in session.query(Role.name).all()]
    permission_names = [x for (x, ) in session.query(Permission.name).all()]
    context['role_names'] = json.dumps(role_names)
    context['permission_names'] = json.dumps(permission_names)
    context['discussion'] = PseudoDiscussion()

    response = render_to_response('../../templates/adminIndex.jinja2',
                                  context,
                                  request=request)
    # Prevent caching the home, especially for proper login/logout
    response.cache_control.max_age = 0
    response.cache_control.prevent_auto = True
    return response
示例#3
0
def get_locale_from_request(request, session=None, user=None):
    if user is None:
        user_id = request.authenticated_userid or Everyone
        if user_id != Everyone:
            user = User.get(user_id)
    session = session or User.default_db
    if user:
        if '_LOCALE_' in request.params:
            locale = request.params['_LOCALE_']
            process_locale(locale, user, session,
                           LanguagePreferenceOrder.Parameter)
        elif '_LOCALE_' in request.cookies:
            locale = request.cookies['_LOCALE_']
            process_locale(locale, user, session,
                           LanguagePreferenceOrder.Cookie)
        else:
            # uses my locale negotiator
            locale = request.locale_name
            process_locale(locale, user, session,
                           LanguagePreferenceOrder.OS_Default)
    else:
        locale = request.localizer.locale_name
    target_locale = Locale.get_or_create(strip_country(locale), session)
    return target_locale