diff --git a/gnuviechadmin/taskresults/admin.py b/gnuviechadmin/taskresults/admin.py index 3647426..05b8618 100644 --- a/gnuviechadmin/taskresults/admin.py +++ b/gnuviechadmin/taskresults/admin.py @@ -11,5 +11,10 @@ from .models import TaskResult @admin.register(TaskResult) class TaskResultAdmin(admin.ModelAdmin): - list_display = ('task_id', 'creator', 'signature', 'finished', 'state') - list_filter = ('finished',) + list_display = ("task_id", "creator", "signature", "finished", "state") + list_filter = ("finished", "creator") + date_hierarchy = "created" + readonly_fields = ("created", "modified") + + def has_add_permission(self, request): + return False diff --git a/gnuviechadmin/taskresults/management/commands/fetch_taskresults.py b/gnuviechadmin/taskresults/management/commands/fetch_taskresults.py index 8f42a1e..4e20299 100644 --- a/gnuviechadmin/taskresults/management/commands/fetch_taskresults.py +++ b/gnuviechadmin/taskresults/management/commands/fetch_taskresults.py @@ -13,6 +13,10 @@ class Command(BaseCommand): help = "fetch task results" def handle(self, *args, **options): - for taskresult in TaskResult.objects.filter(finished=False): - taskresult.fetch_result() - taskresult.save() + for task_result in TaskResult.objects.filter(finished=False): + if options["verbosity"] > 1: + print(f"fetching result for unfinished task {task_result.task_id}", file=self.stderr) + task_result.fetch_result() + if options["verbosity"] > 2: + print(f"fetched result for unfinished task {task_result.task_id}", file=self.stderr) + task_result.save() diff --git a/gnuviechadmin/taskresults/migrations/0004_alter_taskresult_options.py b/gnuviechadmin/taskresults/migrations/0004_alter_taskresult_options.py new file mode 100644 index 0000000..1626d2c --- /dev/null +++ b/gnuviechadmin/taskresults/migrations/0004_alter_taskresult_options.py @@ -0,0 +1,17 @@ +# Generated by Django 3.2.18 on 2023-04-29 08:55 + +from django.db import migrations + + +class Migration(migrations.Migration): + + dependencies = [ + ('taskresults', '0003_auto_20160109_1524'), + ] + + operations = [ + migrations.AlterModelOptions( + name='taskresult', + options={'ordering': ['-modified'], 'verbose_name': 'Task result', 'verbose_name_plural': 'Task results'}, + ), + ] diff --git a/gnuviechadmin/taskresults/models.py b/gnuviechadmin/taskresults/models.py index 580e777..a56136d 100644 --- a/gnuviechadmin/taskresults/models.py +++ b/gnuviechadmin/taskresults/models.py @@ -3,6 +3,7 @@ This model defines the database models to handle Celery AsyncResults. """ from django.db import models +from django.utils import timezone from django.utils.translation import gettext as _ from model_utils.models import TimeStampedModel @@ -33,7 +34,7 @@ class TaskResult(TimeStampedModel): class Meta: verbose_name = _("Task result") verbose_name_plural = _("Task results") - ordering = ["created"] + ordering = ["-modified"] def __str__(self): return "{creator} ({task_id}): {finished}".format(