def set_user_preview_site_theme(request, preview_site_theme): """ Sets the current user's preferred preview site theme. Args: request: the current request preview_site_theme (str or SiteTheme): the preview site theme or theme name. None can be specified to remove the preview site theme. """ if preview_site_theme: if isinstance(preview_site_theme, SiteTheme): preview_site_theme_name = preview_site_theme.theme_dir_name else: preview_site_theme_name = preview_site_theme if theme_exists(preview_site_theme_name): set_user_preference(request.user, PREVIEW_SITE_THEME_PREFERENCE_KEY, preview_site_theme_name) PageLevelMessages.register_success_message( request, _('Site theme changed to {site_theme}'.format(site_theme=preview_site_theme_name)) ) else: PageLevelMessages.register_error_message( request, _('Theme {site_theme} does not exist'.format(site_theme=preview_site_theme_name)) ) else: delete_user_preference(request.user, PREVIEW_SITE_THEME_PREFERENCE_KEY) PageLevelMessages.register_success_message(request, _('Site theme reverted to the default'))
def set_user_preview_site_theme(request, preview_site_theme): """ Sets the current user's preferred preview site theme. Args: request: the current request preview_site_theme (str or SiteTheme): the preview site theme or theme name. None can be specified to remove the preview site theme. """ if preview_site_theme: if isinstance(preview_site_theme, SiteTheme): preview_site_theme_name = preview_site_theme.theme_dir_name else: preview_site_theme_name = preview_site_theme if theme_exists(preview_site_theme_name): set_user_preference(request.user, PREVIEW_SITE_THEME_PREFERENCE_KEY, preview_site_theme_name) PageLevelMessages.register_success_message( request, _(u'Site theme changed to {site_theme}').format( site_theme=preview_site_theme_name)) else: PageLevelMessages.register_error_message( request, _(u'Theme {site_theme} does not exist').format( site_theme=preview_site_theme_name)) else: delete_user_preference(request.user, PREVIEW_SITE_THEME_PREFERENCE_KEY) PageLevelMessages.register_success_message( request, _('Site theme reverted to the default'))
def _clear_preview_language(self, request): """ Clears the preview language for the current user. """ delete_user_preference(request.user, DARK_LANGUAGE_KEY) if LANGUAGE_SESSION_KEY in request.session: del request.session[LANGUAGE_SESSION_KEY] PageLevelMessages.register_success_message( request, _('Language reset to the default'))
def _clear_preview_language(self, request): """ Clears the preview language for the current user. """ delete_user_preference(request.user, DARK_LANGUAGE_KEY) if LANGUAGE_SESSION_KEY in request.session: del request.session[LANGUAGE_SESSION_KEY] PageLevelMessages.register_success_message( request, _('Language reset to the default') )
def show_reference_template(request, template): """ Shows the specified template as an HTML page. This is used only in debug mode to allow the UX team to produce and work with static reference templates. e.g. http://localhost:8000/template/ux/reference/index.html shows the template from ux/reference/index.html Note: dynamic parameters can also be passed to the page. e.g. /template/ux/reference/index.html?name=Foo """ try: uses_pattern_library = u'/pattern-library/' in request.path is_v1 = u'/v1/' in request.path uses_bootstrap = not uses_pattern_library and not is_v1 context = { 'request': request, 'disable_courseware_js': not is_v1, 'uses_pattern_library': uses_pattern_library, 'uses_bootstrap': uses_bootstrap, } context.update(request.GET.dict()) # Support dynamic rendering of messages if request.GET.get('alert'): PageLevelMessages.register_info_message(request, request.GET.get('alert')) if request.GET.get('success'): PageLevelMessages.register_success_message( request, request.GET.get('success')) if request.GET.get('warning'): PageLevelMessages.register_warning_message( request, request.GET.get('warning')) if request.GET.get('error'): PageLevelMessages.register_error_message(request, request.GET.get('error')) # Add some messages to the course skeleton pages if u'course-skeleton.html' in request.path: PageLevelMessages.register_info_message( request, _('This is a test message')) PageLevelMessages.register_success_message( request, _('This is a success message')) PageLevelMessages.register_warning_message( request, _('This is a test warning')) PageLevelMessages.register_error_message(request, _('This is a test error')) return render_to_response(template, context) except TopLevelLookupException: return HttpResponseNotFound( 'Missing template {template}'.format(template=template))
def show_reference_template(request, template): """ Shows the specified template as an HTML page. This is used only in debug mode to allow the UX team to produce and work with static reference templates. e.g. http://localhost:8000/template/ux/reference/index.html shows the template from ux/reference/index.html Note: dynamic parameters can also be passed to the page. e.g. /template/ux/reference/index.html?name=Foo """ try: is_v1 = '/v1/' in request.path uses_bootstrap = not is_v1 context = { 'request': request, 'uses_bootstrap': uses_bootstrap, } context.update(request.GET.dict()) # Support dynamic rendering of messages if request.GET.get('alert'): PageLevelMessages.register_info_message(request, request.GET.get('alert')) if request.GET.get('success'): PageLevelMessages.register_success_message( request, request.GET.get('success')) if request.GET.get('warning'): PageLevelMessages.register_warning_message( request, request.GET.get('warning')) if request.GET.get('error'): PageLevelMessages.register_error_message(request, request.GET.get('error')) # Add some messages to the course skeleton pages if 'course-skeleton.html' in request.path: PageLevelMessages.register_info_message( request, _('This is a test message')) PageLevelMessages.register_success_message( request, _('This is a success message')) PageLevelMessages.register_warning_message( request, _('This is a test warning')) PageLevelMessages.register_error_message(request, _('This is a test error')) return render_to_response(template, context) except TemplateDoesNotExist: return HttpResponseNotFound( f'Missing template {bleach.clean(template, strip=True)}')
def _set_preview_language(self, request): """ Sets the preview language for the current user. """ preview_language = request.POST.get(LANGUAGE_INPUT_FIELD, '') if not preview_language.strip(): PageLevelMessages.register_error_message( request, _('Language not provided')) return set_user_preference(request.user, DARK_LANGUAGE_KEY, preview_language) PageLevelMessages.register_success_message( request, _(u'Language set to {preview_language}').format( preview_language=preview_language))
def _set_preview_language(self, request): """ Sets the preview language for the current user. """ preview_language = request.POST.get(LANGUAGE_INPUT_FIELD, '') if not preview_language.strip(): PageLevelMessages.register_error_message(request, _('Language not provided')) return set_user_preference(request.user, DARK_LANGUAGE_KEY, preview_language) PageLevelMessages.register_success_message( request, _(u'Language set to {preview_language}').format( preview_language=preview_language ) )
def show_reference_template(request, template): """ Shows the specified template as an HTML page. This is used only in debug mode to allow the UX team to produce and work with static reference templates. e.g. http://localhost:8000/template/ux/reference/index.html shows the template from ux/reference/index.html Note: dynamic parameters can also be passed to the page. e.g. /template/ux/reference/index.html?name=Foo """ try: uses_pattern_library = u'/pattern-library/' in request.path is_v1 = u'/v1/' in request.path uses_bootstrap = not uses_pattern_library and not is_v1 context = { 'request': request, 'uses_pattern_library': uses_pattern_library, 'uses_bootstrap': uses_bootstrap, } context.update(request.GET.dict()) # Support dynamic rendering of messages if request.GET.get('alert'): PageLevelMessages.register_info_message(request, request.GET.get('alert')) if request.GET.get('success'): PageLevelMessages.register_success_message(request, request.GET.get('success')) if request.GET.get('warning'): PageLevelMessages.register_warning_message(request, request.GET.get('warning')) if request.GET.get('error'): PageLevelMessages.register_error_message(request, request.GET.get('error')) # Add some messages to the course skeleton pages if u'course-skeleton.html' in request.path: PageLevelMessages.register_info_message(request, _('This is a test message')) PageLevelMessages.register_success_message(request, _('This is a success message')) PageLevelMessages.register_warning_message(request, _('This is a test warning')) PageLevelMessages.register_error_message(request, _('This is a test error')) return render_to_response(template, context) except TopLevelLookupException: return HttpResponseNotFound('Missing template {template}'.format(template=template))