Began refactoring javascript code

This commit is contained in:
2020-04-23 00:47:27 +03:00
parent 8fa67a81d8
commit 6afca61dd9
22 changed files with 832 additions and 388 deletions

View 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

View 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)