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

1from django.db import models 

2 

3from core.models import core as core_models 

4from core.models import user as core_user_models 

5 

6 

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() 

18 

19 for id, name, description in built_in_issue_severities: 

20 self.create(id=id, created_by=system_user, name=name, description=description) 

21 

22 

23class BuiltInIssueSeverity(core_models.CoreModel): 

24 class Meta: 

25 ordering = ['name'] 

26 unique_together = ['name', 'description'] 

27 

28 class IssueSeverities(models.TextChoices): 

29 MINOR = 'MINOR', 'Minor' 

30 MAJOR = 'MAJOR', 'Major' 

31 CRITICAL = 'CRITICAL', 'Critical' 

32 

33 objects = BuiltInIssueSeverityManager() 

34 

35 name = models.CharField(max_length=255) 

36 description = models.TextField(blank=True, null=True, default="") 

37 

38 

39class CustomIssueSeverityData(core_models.CoreModel): 

40 class Meta: 

41 ordering = ['name'] 

42 

43 name = models.CharField(max_length=255) 

44 description = models.TextField(blank=True, null=True, default="") 

45 

46 

47class CustomIssueSeverityActiveManager(models.Manager): 

48 def get_queryset(self): 

49 return super().get_queryset().filter(deleted=None) 

50 

51 

52class CustomIssueSeverity(core_models.CoreModel): 

53 class Meta: 

54 ordering = ['current__name'] 

55 

56 active_objects = CustomIssueSeverityActiveManager() 

57 

58 current = models.ForeignKey(CustomIssueSeverityData, on_delete=models.CASCADE)