Coverage for project/models/git_repository.py: 100.00%

14 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 

4 

5 

6class GitRepositoryData(core_models.CoreModel): 

7 name = models.CharField(max_length=255) 

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

9 url = models.CharField(max_length=255, blank=True, null=True, default="") 

10 

11 

12class GitRepositoryActiveManager(models.Manager): 

13 def get_queryset(self): 

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

15 

16 

17class GitRepository(core_models.CoreModel): 

18 # TODO: GitHub, GitLab, BitBucket, etc. integrations 

19 

20 class Meta: 

21 ordering = ['current__name', 'current__url'] 

22 

23 active_objects = GitRepositoryActiveManager() 

24 current = models.ForeignKey(GitRepositoryData, on_delete=models.CASCADE) 

25 

26 def __str__(self): 

27 potential_names = [] 

28 if self.current.name: 

29 potential_names.append(self.current.name) 

30 if self.current.url: 

31 potential_names.append(f"- ({self.current.url})") 

32 return " ".join(potential_names)