Sort for the user in Python

This commit is contained in:
tcely 2025-03-02 20:46:05 -05:00 committed by GitHub
parent c090453931
commit f905f4cf77
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

View File

@ -27,7 +27,7 @@ from .models import Source, Media, MediaServer
from .forms import (ValidateSourceForm, ConfirmDeleteSourceForm, RedownloadMediaForm, from .forms import (ValidateSourceForm, ConfirmDeleteSourceForm, RedownloadMediaForm,
SkipMediaForm, EnableMediaForm, ResetTasksForm, SkipMediaForm, EnableMediaForm, ResetTasksForm,
ConfirmDeleteMediaServerForm) ConfirmDeleteMediaServerForm)
from .utils import validate_url, delete_file from .utils import validate_url, delete_file, multi_key_sort
from .tasks import (map_task_to_instance, get_error_message, from .tasks import (map_task_to_instance, get_error_message,
get_source_completed_tasks, get_media_download_task, get_source_completed_tasks, get_media_download_task,
delete_task_by_media, index_source_task) delete_task_by_media, index_source_task)
@ -782,8 +782,8 @@ class TasksView(ListView):
prefix = '-' if 'ASC' != order else '' prefix = '-' if 'ASC' != order else ''
_priority = f'{prefix}priority' _priority = f'{prefix}priority'
return qs.order_by( return qs.order_by(
'run_at',
_priority, _priority,
'run_at',
) )
def get_context_data(self, *args, **kwargs): def get_context_data(self, *args, **kwargs):
@ -858,6 +858,19 @@ class TasksView(ListView):
elif mapped: elif mapped:
data['scheduled'].append(task) data['scheduled'].append(task)
order = getattr(settings,
'BACKGROUND_TASK_PRIORITY_ORDERING',
'DESC'
)
sort_keys = (
# key, reverse
('run_now', False),
('priority', 'ASC' != order),
('run_at', False),
)
data['errors'] = multi_key_sort(data['errors'], sort_keys, attr=True)
data['scheduled'] = multi_key_sort(data['scheduled'], sort_keys, attr=True)
return data return data