mirror of
https://github.com/chibicitiberiu/ytsm.git
synced 2024-02-24 05:43:31 +00:00
Added admin settings page. Improve dynamic_preferences integration.
This commit is contained in:
@ -3,11 +3,10 @@ import logging
|
||||
from crispy_forms.helper import FormHelper
|
||||
from crispy_forms.layout import Layout, HTML, Submit, Column
|
||||
from django import forms
|
||||
from django.contrib.auth import authenticate, login
|
||||
from django.contrib.auth.models import User
|
||||
from YtManagerApp.views.forms.auth import ExtendedUserCreationForm
|
||||
from django.urls import reverse_lazy
|
||||
from YtManagerApp.management.appconfig import global_prefs
|
||||
|
||||
from YtManagerApp.views.forms.auth import ExtendedUserCreationForm
|
||||
|
||||
logger = logging.getLogger("FirstTimeWizard")
|
||||
|
||||
|
80
app/YtManagerApp/views/forms/settings.py
Normal file
80
app/YtManagerApp/views/forms/settings.py
Normal file
@ -0,0 +1,80 @@
|
||||
from crispy_forms.helper import FormHelper
|
||||
from crispy_forms.layout import Layout, HTML, Submit
|
||||
from django import forms
|
||||
|
||||
from YtManagerApp.models import UserSettings
|
||||
|
||||
|
||||
class SettingsForm(forms.ModelForm):
|
||||
class Meta:
|
||||
model = UserSettings
|
||||
exclude = ['user']
|
||||
|
||||
def __init__(self, *args, **kwargs):
|
||||
super().__init__(*args, **kwargs)
|
||||
self.helper = FormHelper()
|
||||
self.helper.form_class = 'form-horizontal'
|
||||
self.helper.label_class = 'col-lg-3'
|
||||
self.helper.field_class = 'col-lg-9'
|
||||
self.helper.layout = Layout(
|
||||
'mark_deleted_as_watched',
|
||||
'delete_watched',
|
||||
HTML('<h2>Download settings</h2>'),
|
||||
'auto_download',
|
||||
'download_path',
|
||||
'download_file_pattern',
|
||||
'download_format',
|
||||
'download_order',
|
||||
'download_global_limit',
|
||||
'download_subscription_limit',
|
||||
HTML('<h2>Subtitles download settings</h2>'),
|
||||
'download_subtitles',
|
||||
'download_subtitles_langs',
|
||||
'download_subtitles_all',
|
||||
'download_autogenerated_subtitles',
|
||||
'download_subtitles_format',
|
||||
Submit('submit', value='Save')
|
||||
)
|
||||
|
||||
|
||||
class AdminSettingsForm(forms.Form):
|
||||
|
||||
api_key = forms.CharField(label="YouTube API key")
|
||||
|
||||
allow_registrations = forms.BooleanField(
|
||||
label="Allow user registrations",
|
||||
help_text="Disabling this option will prevent anyone from registering to the site.",
|
||||
initial=True,
|
||||
required=False
|
||||
)
|
||||
|
||||
sync_schedule = forms.CharField(
|
||||
label="Synchronization schedule",
|
||||
help_text="How often should the application look for new videos.",
|
||||
initial="5 * * * *",
|
||||
required=True
|
||||
)
|
||||
|
||||
scheduler_concurrency = forms.IntegerField(
|
||||
label="Synchronization concurrency",
|
||||
help_text="How many jobs are executed executed in parallel. Since most jobs are I/O bound (mostly use the hard "
|
||||
"drive and network), there is no significant advantage to increase it.",
|
||||
initial=2,
|
||||
required=True
|
||||
)
|
||||
|
||||
def __init__(self, *args, **kwargs):
|
||||
super().__init__(*args, **kwargs)
|
||||
self.helper = FormHelper()
|
||||
self.helper.form_class = 'form-horizontal'
|
||||
self.helper.label_class = 'col-lg-3'
|
||||
self.helper.field_class = 'col-lg-9'
|
||||
self.helper.layout = Layout(
|
||||
HTML('<h2>General settings</h2>'),
|
||||
'api_key',
|
||||
'allow_registrations',
|
||||
HTML('<h2>Scheduler settings</h2>'),
|
||||
'sync_schedule',
|
||||
'scheduler_concurrency',
|
||||
Submit('submit', value='Save')
|
||||
)
|
Reference in New Issue
Block a user