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

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

19 

20 for id, name, description in built_in_issue_priorities: 

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

22 

23 

24class BuiltInIssuePriority(core_models.CoreModel): 

25 class Meta: 

26 ordering = ['name'] 

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

28 

29 class IssuePriorities(models.TextChoices): 

30 LOW = 'LOW', 'Low' 

31 MEDIUM = 'MEDIUM', 'Medium' 

32 HIGH = 'HIGH', 'High' 

33 CRITICAL = 'CRITICAL', 'Critical' 

34 

35 objects = BuiltInIssuePriorityManager() 

36 

37 name = models.CharField(max_length=255) 

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

39 

40 

41class CustomIssuePriorityData(core_models.CoreModel): 

42 class Meta: 

43 ordering = ['name'] 

44 

45 name = models.CharField(max_length=255) 

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

47 

48 

49class CustomIssuePriorityActiveManager(models.Manager): 

50 def get_queryset(self): 

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

52 

53 

54class CustomIssuePriority(core_models.CoreModel): 

55 class Meta: 

56 ordering = ['current__name'] 

57 

58 active_objects = CustomIssuePriorityActiveManager() 

59 

60 current = models.ForeignKey(CustomIssuePriorityData, on_delete=models.CASCADE)