mirror of
https://github.com/chibicitiberiu/ytsm.git
synced 2024-02-24 05:43:31 +00:00
Began refactoring javascript code
This commit is contained in:
0
app/YtManagerApp/views/settings/__init__.py
Normal file
0
app/YtManagerApp/views/settings/__init__.py
Normal file
31
app/YtManagerApp/views/settings/providers_view.py
Normal file
31
app/YtManagerApp/views/settings/providers_view.py
Normal file
@ -0,0 +1,31 @@
|
||||
from django.contrib.auth.mixins import LoginRequiredMixin
|
||||
from django.views.generic import TemplateView
|
||||
|
||||
from YtManagerApp.services import Services
|
||||
from collections import namedtuple
|
||||
|
||||
VideoProviderInfoViewModel = namedtuple('VideoProviderInfoViewModel',
|
||||
['id', 'name', 'is_configured', 'image_src'])
|
||||
|
||||
|
||||
class ProvidersView(LoginRequiredMixin, TemplateView):
|
||||
template_name = 'YtManagerApp/settings/providers.html'
|
||||
|
||||
def get_context_data(self, **kwargs):
|
||||
context = super().get_context_data(**kwargs)
|
||||
|
||||
providers = []
|
||||
have_unconfigured = False
|
||||
for provider in Services.videoProviderManager().get_available_providers():
|
||||
providers.append(VideoProviderInfoViewModel(
|
||||
id=provider.id,
|
||||
name=provider.name,
|
||||
is_configured=provider.is_configured,
|
||||
image_src=f"YtManagerApp/img/video_providers/{provider.id}.png"
|
||||
))
|
||||
if not provider.is_configured:
|
||||
have_unconfigured = True
|
||||
|
||||
context['providers'] = sorted(providers, key=lambda x: x.name)
|
||||
context['have_unconfigured'] = have_unconfigured
|
||||
return context
|
49
app/YtManagerApp/views/settings/settings.py
Normal file
49
app/YtManagerApp/views/settings/settings.py
Normal file
@ -0,0 +1,49 @@
|
||||
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.services import Services
|
||||
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()
|
||||
Services.subscriptionManager().schedule_global_synchronize_job()
|
||||
return super().form_valid(form)
|
Reference in New Issue
Block a user