Coverage for project/models/severity.py: 100.00%
33 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 BuiltInIssueSeverityManager(models.Manager):
8 def initialize_built_in_severities(self):
9 """
10 Keep this in sync with the BuiltInIssueSeverity.IssueSeverities class.
11 """
12 built_in_issue_severities = [
13 ('e82b1549-0beb-44ee-926b-d03b5dd95aa7', 'MINOR', 'Minor'),
14 ('9aaa5bfe-3150-4db1-ad02-ee47694f569b', 'MAJOR', 'Major'),
15 ('8e0432d7-81c6-4a3d-a5c8-a2dfbba1b330', 'CRITICAL', 'Critical'),
16 ]
17 system_user = core_user_models.CoreUser.objects.get_or_create_system_user()
19 for id, name, description in built_in_issue_severities:
20 self.create(id=id, created_by=system_user, name=name, description=description)
23class BuiltInIssueSeverity(core_models.CoreModel):
24 class Meta:
25 ordering = ['name']
26 unique_together = ['name', 'description']
28 class IssueSeverities(models.TextChoices):
29 MINOR = 'MINOR', 'Minor'
30 MAJOR = 'MAJOR', 'Major'
31 CRITICAL = 'CRITICAL', 'Critical'
33 objects = BuiltInIssueSeverityManager()
35 name = models.CharField(max_length=255)
36 description = models.TextField(blank=True, null=True, default="")
39class CustomIssueSeverityData(core_models.CoreModel):
40 class Meta:
41 ordering = ['name']
43 name = models.CharField(max_length=255)
44 description = models.TextField(blank=True, null=True, default="")
47class CustomIssueSeverityActiveManager(models.Manager):
48 def get_queryset(self):
49 return super().get_queryset().filter(deleted=None)
52class CustomIssueSeverity(core_models.CoreModel):
53 class Meta:
54 ordering = ['current__name']
56 active_objects = CustomIssueSeverityActiveManager()
58 current = models.ForeignKey(CustomIssueSeverityData, on_delete=models.CASCADE)