Coverage for project/models/priority.py: 100.00%
34 statements
« prev ^ index » next coverage.py v7.8.0, created at 2025-06-06 22:17 +0000
« prev ^ index » next coverage.py v7.8.0, created at 2025-06-06 22:17 +0000
1from django.db import models
3from core.models import core as core_models
4from core.models import user as core_user_models
7class BuiltInIssuePriorityManager(models.Manager):
8 def initialize_built_in_priorities(self):
9 """
10 Keep this in sync with the BuiltInIssuePriorities.IssuePriorities class.
11 """
12 built_in_issue_priorities = [
13 ('91dcbc0e-8189-4505-83e2-70892bb3bc26', 'LOW', 'Low'),
14 ('9756bb3a-521f-40a1-ae26-d1d2ecf2a54d', 'MEDIUM', 'Medium'),
15 ('376295d8-2132-410f-a9aa-4e32757f5324', 'HIGH', 'High'),
16 ('cbb014f3-f9ab-46da-926e-7d76bca69470', 'CRITICAL', 'Critical'),
17 ]
18 system_user = core_user_models.CoreUser.objects.get_or_create_system_user()
20 for id, name, description in built_in_issue_priorities:
21 self.create(id=id, created_by=system_user, name=name, description=description)
24class BuiltInIssuePriority(core_models.CoreModel):
25 class Meta:
26 ordering = ['name']
27 unique_together = ['name', 'description']
29 class IssuePriorities(models.TextChoices):
30 LOW = 'LOW', 'Low'
31 MEDIUM = 'MEDIUM', 'Medium'
32 HIGH = 'HIGH', 'High'
33 CRITICAL = 'CRITICAL', 'Critical'
35 objects = BuiltInIssuePriorityManager()
37 name = models.CharField(max_length=255)
38 description = models.TextField(blank=True, null=True, default="")
41class CustomIssuePriorityData(core_models.CoreModel):
42 class Meta:
43 ordering = ['name']
45 name = models.CharField(max_length=255)
46 description = models.TextField(blank=True, null=True, default="")
49class CustomIssuePriorityActiveManager(models.Manager):
50 def get_queryset(self):
51 return super().get_queryset().filter(deleted=None)
54class CustomIssuePriority(core_models.CoreModel):
55 class Meta:
56 ordering = ['current__name']
58 active_objects = CustomIssuePriorityActiveManager()
60 current = models.ForeignKey(CustomIssuePriorityData, on_delete=models.CASCADE)