From d30c18dfbb0ad1d676e8d70305f15d81532fb227 Mon Sep 17 00:00:00 2001 From: tcely Date: Fri, 4 Jul 2025 19:05:53 -0400 Subject: [PATCH] Add `TaskHistory.schedule` method --- tubesync/common/models/tasks.py | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/tubesync/common/models/tasks.py b/tubesync/common/models/tasks.py index 8c1e9ecb..15031611 100644 --- a/tubesync/common/models/tasks.py +++ b/tubesync/common/models/tasks.py @@ -6,6 +6,23 @@ from django.utils import timezone from ..json import JSONEncoder # from common.json import JSONEncoder + +def set_verbose_name(task_wrapper, /, *args, vn_args=(), vn_fmt=None, **kwargs): + assert vn_fmt is not None, 'vn_fmt is required' + if vn_fmt is None: + return False + result = task_wrapper.schedule(*args, **kwargs) + try: + task_history = TaskHistory.objects.get(task_id=str(result.id)) + except TaskHistory.DoesNotExist: + pass + else: + task_history.verbose_name = str(vn_fmt).format(*vn_args) + task_history.save() + return True + return False + + class TaskHistoryQuerySet(models.QuerySet): def failed(self, within=None): @@ -73,6 +90,10 @@ class TaskHistory(models.Model): objects = TaskHistoryQuerySet.as_manager() + @classmethod + def schedule(cls, task_wrapper, /, *args, vn_args=(), vn_fmt=None, **kwargs): + return set_verbose_name(task_wrapper, *args, vn_fmt=vn_fmt, vn_args=vn_args, **kwargs) + def save(self, *args, **kwargs): self.queue = self.queue or None self.verbose_name = self.verbose_name or None