Fix display of DataSource job results

This commit is contained in:
jeremystretch 2023-01-27 12:00:16 -05:00
parent 685e457d6f
commit f23f8d5ba4
2 changed files with 7 additions and 6 deletions

View File

@ -1,7 +1,5 @@
import logging import logging
from django_rq import job
from extras.choices import JobResultStatusChoices from extras.choices import JobResultStatusChoices
from .choices import * from .choices import *
from .models import DataSource from .models import DataSource
@ -9,7 +7,6 @@ from .models import DataSource
logger = logging.getLogger(__name__) logger = logging.getLogger(__name__)
@job('low')
def sync_datasource(job_result, *args, **kwargs): def sync_datasource(job_result, *args, **kwargs):
""" """
Call sync() on a DataSource. Call sync() on a DataSource.

View File

@ -11,6 +11,7 @@ from django.core.validators import MinValueValidator, ValidationError
from django.db import models from django.db import models
from django.http import HttpResponse, QueryDict from django.http import HttpResponse, QueryDict
from django.urls import reverse from django.urls import reverse
from django.urls.exceptions import NoReverseMatch
from django.utils import timezone from django.utils import timezone
from django.utils.formats import date_format from django.utils.formats import date_format
from django.utils.translation import gettext as _ from django.utils.translation import gettext as _
@ -634,7 +635,7 @@ class JobResult(models.Model):
def delete(self, *args, **kwargs): def delete(self, *args, **kwargs):
super().delete(*args, **kwargs) super().delete(*args, **kwargs)
rq_queue_name = get_config().QUEUE_MAPPINGS.get(self.obj_type.name, RQ_QUEUE_DEFAULT) rq_queue_name = get_config().QUEUE_MAPPINGS.get(self.obj_type.model, RQ_QUEUE_DEFAULT)
queue = django_rq.get_queue(rq_queue_name) queue = django_rq.get_queue(rq_queue_name)
job = queue.fetch_job(str(self.job_id)) job = queue.fetch_job(str(self.job_id))
@ -642,7 +643,10 @@ class JobResult(models.Model):
job.cancel() job.cancel()
def get_absolute_url(self): def get_absolute_url(self):
return reverse(f'extras:{self.obj_type.name}_result', args=[self.pk]) try:
return reverse(f'extras:{self.obj_type.model}_result', args=[self.pk])
except NoReverseMatch:
return None
def get_status_color(self): def get_status_color(self):
return JobResultStatusChoices.colors.get(self.status) return JobResultStatusChoices.colors.get(self.status)
@ -693,7 +697,7 @@ class JobResult(models.Model):
schedule_at: Schedule the job to be executed at the passed date and time schedule_at: Schedule the job to be executed at the passed date and time
interval: Recurrence interval (in minutes) interval: Recurrence interval (in minutes)
""" """
rq_queue_name = get_config().QUEUE_MAPPINGS.get(obj_type.name, RQ_QUEUE_DEFAULT) rq_queue_name = get_config().QUEUE_MAPPINGS.get(obj_type.model, RQ_QUEUE_DEFAULT)
queue = django_rq.get_queue(rq_queue_name) queue = django_rq.get_queue(rq_queue_name)
status = JobResultStatusChoices.STATUS_SCHEDULED if schedule_at else JobResultStatusChoices.STATUS_PENDING status = JobResultStatusChoices.STATUS_SCHEDULED if schedule_at else JobResultStatusChoices.STATUS_PENDING
job_result: JobResult = JobResult.objects.create( job_result: JobResult = JobResult.objects.create(