Skip to content

Commit 3363045

Browse files
authored
Mark ResultStatus labels and DBTaskResult fields for translation (#96)
Fixes #94
1 parent fa4feaa commit 3363045

File tree

3 files changed

+96
-16
lines changed

3 files changed

+96
-16
lines changed
Lines changed: 77 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,77 @@
1+
# Generated by Django 4.2.14 on 2024-08-02 13:17
2+
3+
from django.db import migrations, models
4+
5+
6+
class Migration(migrations.Migration):
7+
dependencies = [
8+
("django_tasks_database", "0005_alter_dbtaskresult_priority_and_more"),
9+
]
10+
11+
operations = [
12+
migrations.AlterField(
13+
model_name="dbtaskresult",
14+
name="args_kwargs",
15+
field=models.JSONField(verbose_name="args kwargs"),
16+
),
17+
migrations.AlterField(
18+
model_name="dbtaskresult",
19+
name="backend_name",
20+
field=models.TextField(verbose_name="backend name"),
21+
),
22+
migrations.AlterField(
23+
model_name="dbtaskresult",
24+
name="enqueued_at",
25+
field=models.DateTimeField(auto_now_add=True, verbose_name="enqueued at"),
26+
),
27+
migrations.AlterField(
28+
model_name="dbtaskresult",
29+
name="finished_at",
30+
field=models.DateTimeField(null=True, verbose_name="finished at"),
31+
),
32+
migrations.AlterField(
33+
model_name="dbtaskresult",
34+
name="priority",
35+
field=models.IntegerField(default=0, verbose_name="priority"),
36+
),
37+
migrations.AlterField(
38+
model_name="dbtaskresult",
39+
name="queue_name",
40+
field=models.TextField(default="default", verbose_name="queue name"),
41+
),
42+
migrations.AlterField(
43+
model_name="dbtaskresult",
44+
name="result",
45+
field=models.JSONField(default=None, null=True, verbose_name="result"),
46+
),
47+
migrations.AlterField(
48+
model_name="dbtaskresult",
49+
name="run_after",
50+
field=models.DateTimeField(null=True, verbose_name="run after"),
51+
),
52+
migrations.AlterField(
53+
model_name="dbtaskresult",
54+
name="started_at",
55+
field=models.DateTimeField(null=True, verbose_name="started at"),
56+
),
57+
migrations.AlterField(
58+
model_name="dbtaskresult",
59+
name="status",
60+
field=models.CharField(
61+
choices=[
62+
("NEW", "New"),
63+
("RUNNING", "Running"),
64+
("FAILED", "Failed"),
65+
("COMPLETE", "Complete"),
66+
],
67+
default="NEW",
68+
max_length=8,
69+
verbose_name="status",
70+
),
71+
),
72+
migrations.AlterField(
73+
model_name="dbtaskresult",
74+
name="task_path",
75+
field=models.TextField(verbose_name="task path"),
76+
),
77+
]

django_tasks/backends/database/models.py

Lines changed: 14 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@
88
from django.db.models.constraints import CheckConstraint
99
from django.utils import timezone
1010
from django.utils.module_loading import import_string
11+
from django.utils.translation import gettext_lazy as _
1112
from typing_extensions import ParamSpec
1213

1314
from django_tasks.task import (
@@ -71,34 +72,35 @@ class DBTaskResult(GenericBase[P, T], models.Model):
7172
id = models.UUIDField(primary_key=True, default=uuid.uuid4, editable=False)
7273

7374
status = models.CharField(
75+
_("status"),
7476
choices=ResultStatus.choices,
7577
default=ResultStatus.NEW,
7678
max_length=max(len(value) for value in ResultStatus.values),
7779
)
7880

79-
enqueued_at = models.DateTimeField(auto_now_add=True)
80-
started_at = models.DateTimeField(null=True)
81-
finished_at = models.DateTimeField(null=True)
81+
enqueued_at = models.DateTimeField(_("enqueued at"), auto_now_add=True)
82+
started_at = models.DateTimeField(_("started at"), null=True)
83+
finished_at = models.DateTimeField(_("finished at"), null=True)
8284

83-
args_kwargs = models.JSONField()
85+
args_kwargs = models.JSONField(_("args kwargs"))
8486

85-
priority = models.IntegerField(default=DEFAULT_PRIORITY)
87+
priority = models.IntegerField(_("priority"), default=DEFAULT_PRIORITY)
8688

87-
task_path = models.TextField()
89+
task_path = models.TextField(_("task path"))
8890

89-
queue_name = models.TextField(default=DEFAULT_QUEUE_NAME)
90-
backend_name = models.TextField()
91+
queue_name = models.TextField(_("queue name"), default=DEFAULT_QUEUE_NAME)
92+
backend_name = models.TextField(_("backend name"))
9193

92-
run_after = models.DateTimeField(null=True)
94+
run_after = models.DateTimeField(_("run after"), null=True)
9395

94-
result = models.JSONField(default=None, null=True)
96+
result = models.JSONField(_("result"), default=None, null=True)
9597

9698
objects = DBTaskResultQuerySet.as_manager()
9799

98100
class Meta:
99101
ordering = [F("priority").desc(), F("run_after").desc(nulls_last=True)]
100-
verbose_name = "Task Result"
101-
verbose_name_plural = "Task Results"
102+
verbose_name = _("Task Result")
103+
verbose_name_plural = _("Task Results")
102104
constraints = [
103105
CheckConstraint(
104106
check=Q(priority__range=(MIN_PRIORITY, MAX_PRIORITY)),

django_tasks/task.py

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@
1818
from asgiref.sync import async_to_sync, sync_to_async
1919
from django.db.models.enums import TextChoices
2020
from django.utils import timezone
21+
from django.utils.translation import gettext_lazy as _
2122
from typing_extensions import ParamSpec, Self
2223

2324
from .exceptions import ResultDoesNotExist
@@ -34,10 +35,10 @@
3435

3536

3637
class ResultStatus(TextChoices):
37-
NEW = ("NEW", "New")
38-
RUNNING = ("RUNNING", "Running")
39-
FAILED = ("FAILED", "Failed")
40-
COMPLETE = ("COMPLETE", "Complete")
38+
NEW = ("NEW", _("New"))
39+
RUNNING = ("RUNNING", _("Running"))
40+
FAILED = ("FAILED", _("Failed"))
41+
COMPLETE = ("COMPLETE", _("Complete"))
4142

4243

4344
T = TypeVar("T")

0 commit comments

Comments
 (0)