mirror of
https://github.com/chibicitiberiu/ytsm.git
synced 2024-02-24 05:43:31 +00:00
50 lines
1.6 KiB
Python
50 lines
1.6 KiB
Python
from django.contrib.auth.mixins import LoginRequiredMixin
|
|
from django.http import HttpResponseForbidden
|
|
from django.urls import reverse_lazy
|
|
from django.views.generic import FormView
|
|
|
|
from YtManagerApp.management.scheduler.jobs.synchronize_job import SynchronizeJob
|
|
from YtManagerApp.views.forms.settings import SettingsForm, AdminSettingsForm
|
|
|
|
|
|
class SettingsView(LoginRequiredMixin, FormView):
|
|
form_class = SettingsForm
|
|
template_name = 'YtManagerApp/settings.html'
|
|
success_url = reverse_lazy('home')
|
|
|
|
def get_initial(self):
|
|
initial = super().get_initial()
|
|
initial.update(SettingsForm.get_initials(self.request.user))
|
|
return initial
|
|
|
|
def form_valid(self, form):
|
|
form.save(self.request.user)
|
|
return super().form_valid(form)
|
|
|
|
|
|
class AdminSettingsView(LoginRequiredMixin, FormView):
|
|
form_class = AdminSettingsForm
|
|
template_name = 'YtManagerApp/settings_admin.html'
|
|
success_url = reverse_lazy('home')
|
|
|
|
def post(self, request, *args, **kwargs):
|
|
if not request.user.is_authenticated or not request.user.is_superuser:
|
|
return HttpResponseForbidden()
|
|
|
|
return super().post(request, *args, **kwargs)
|
|
|
|
def get_context_data(self, **kwargs):
|
|
context = super().get_context_data(**kwargs)
|
|
# TODO: present stats
|
|
return context
|
|
|
|
def get_initial(self):
|
|
initial = super().get_initial()
|
|
initial.update(AdminSettingsForm.get_initials())
|
|
return initial
|
|
|
|
def form_valid(self, form):
|
|
form.save()
|
|
SynchronizeJob.schedule_global_job()
|
|
return super().form_valid(form)
|