mirror of
https://github.com/meeb/tubesync.git
synced 2025-06-24 22:16:37 +00:00
Add TaskScheduleView
This commit is contained in:
parent
dc38c0a37a
commit
3b17f69346
@ -24,7 +24,7 @@ from common.utils import append_uri_params
|
|||||||
from background_task.models import Task, CompletedTask
|
from background_task.models import Task, CompletedTask
|
||||||
from .models import Source, Media, MediaServer
|
from .models import Source, Media, MediaServer
|
||||||
from .forms import (ValidateSourceForm, ConfirmDeleteSourceForm, RedownloadMediaForm,
|
from .forms import (ValidateSourceForm, ConfirmDeleteSourceForm, RedownloadMediaForm,
|
||||||
SkipMediaForm, EnableMediaForm, ResetTasksForm,
|
SkipMediaForm, EnableMediaForm, ResetTasksForm, ScheduleTaskForm,
|
||||||
ConfirmDeleteMediaServerForm)
|
ConfirmDeleteMediaServerForm)
|
||||||
from .utils import validate_url, delete_file, multi_key_sort, mkdir_p
|
from .utils import validate_url, delete_file, multi_key_sort, mkdir_p
|
||||||
from .tasks import (map_task_to_instance, get_error_message,
|
from .tasks import (map_task_to_instance, get_error_message,
|
||||||
@ -1004,6 +1004,41 @@ class ResetTasks(FormView):
|
|||||||
return append_uri_params(url, {'message': 'reset'})
|
return append_uri_params(url, {'message': 'reset'})
|
||||||
|
|
||||||
|
|
||||||
|
class TaskScheduleView(FormView, SingleObjectMixin):
|
||||||
|
'''
|
||||||
|
Confirm that the task should be re-scheduled.
|
||||||
|
'''
|
||||||
|
|
||||||
|
template_name = 'sync/task-schedule.html'
|
||||||
|
form_class = ScheduleTaskForm
|
||||||
|
model = Task
|
||||||
|
|
||||||
|
def __init__(self, *args, **kwargs):
|
||||||
|
self.object = None
|
||||||
|
self.schedule = 0
|
||||||
|
super().__init__(*args, **kwargs)
|
||||||
|
|
||||||
|
def dispatch(self, request, *args, **kwargs):
|
||||||
|
self.object = self.get_object()
|
||||||
|
return super().dispatch(request, *args, **kwargs)
|
||||||
|
|
||||||
|
def get_success_url(self):
|
||||||
|
return append_uri_params(
|
||||||
|
reverse_lazy('sync:tasks'),
|
||||||
|
dict(
|
||||||
|
message='scheduled',
|
||||||
|
pk=str(self.object.pk),
|
||||||
|
),
|
||||||
|
)
|
||||||
|
|
||||||
|
def form_valid(self, form):
|
||||||
|
max_attempts = getattr(settings, 'MAX_ATTEMPTS', 15)
|
||||||
|
self.object.attempts = max_attempts // 2
|
||||||
|
self.object.run_at = timezone.now() + timezone.timedelta(seconds=self.schedule)
|
||||||
|
self.object.save()
|
||||||
|
return super().form_valid(form)
|
||||||
|
|
||||||
|
|
||||||
class MediaServersView(ListView):
|
class MediaServersView(ListView):
|
||||||
'''
|
'''
|
||||||
List of media servers which have been added.
|
List of media servers which have been added.
|
||||||
|
Loading…
Reference in New Issue
Block a user