##// END OF EJS Templates
Show thread OPs in the landing page instead of link and title list
Show thread OPs in the landing page instead of link and title list

File last commit:

r1701:99ec870f default
r1793:9acfb664 default
Show More
settings.py
80 lines | 2.9 KiB | text/x-python | PythonLexer
from django.db import transaction
from django.shortcuts import render, redirect
from django.utils import timezone
from django.utils.decorators import method_decorator
from django.views.decorators.csrf import csrf_protect
from boards.abstracts.settingsmanager import get_settings_manager, \
SETTING_USERNAME, SETTING_LAST_NOTIFICATION_ID, SETTING_IMAGE_VIEWER
from boards.middlewares import SESSION_TIMEZONE
from boards.views.base import BaseBoardView, CONTEXT_FORM
from boards.forms import SettingsForm, PlainErrorList
from boards import settings
from boards.models import Attachment
FORM_THEME = 'theme'
FORM_USERNAME = 'username'
FORM_TIMEZONE = 'timezone'
FORM_IMAGE_VIEWER = 'image_viewer'
CONTEXT_HIDDEN_TAGS = 'hidden_tags'
TEMPLATE = 'boards/settings.html'
class SettingsView(BaseBoardView):
@method_decorator(csrf_protect)
def get(self, request):
params = dict()
settings_manager = get_settings_manager(request)
selected_theme = settings_manager.get_theme()
form = SettingsForm(
initial={
FORM_THEME: selected_theme,
FORM_IMAGE_VIEWER: settings_manager.get_setting(
SETTING_IMAGE_VIEWER,
default=settings.get('View', 'DefaultImageViewer')),
FORM_USERNAME: settings_manager.get_setting(SETTING_USERNAME),
FORM_TIMEZONE: request.session.get(
SESSION_TIMEZONE, timezone.get_current_timezone()),
},
error_class=PlainErrorList)
params[CONTEXT_FORM] = form
params[CONTEXT_HIDDEN_TAGS] = settings_manager.get_hidden_tags()
return render(request, TEMPLATE, params)
@method_decorator(csrf_protect)
def post(self, request):
settings_manager = get_settings_manager(request)
with transaction.atomic():
form = SettingsForm(request.POST, error_class=PlainErrorList)
if form.is_valid():
selected_theme = form.cleaned_data[FORM_THEME]
username = form.cleaned_data[FORM_USERNAME].lower()
settings_manager.set_theme(selected_theme)
settings_manager.set_setting(SETTING_IMAGE_VIEWER,
form.cleaned_data[FORM_IMAGE_VIEWER])
old_username = settings_manager.get_setting(SETTING_USERNAME)
if username != old_username:
settings_manager.set_setting(SETTING_USERNAME, username)
settings_manager.set_setting(SETTING_LAST_NOTIFICATION_ID, None)
request.session[SESSION_TIMEZONE] = form.cleaned_data[FORM_TIMEZONE]
return redirect('settings')
else:
params = dict()
params[CONTEXT_FORM] = form
params[CONTEXT_HIDDEN_TAGS] = settings_manager.get_hidden_tags()
return render(request, TEMPLATE, params)