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
« 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
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="")
12class GitRepositoryActiveManager(models.Manager):
13 def get_queryset(self):
14 return super().get_queryset().filter(deleted=None)
17class GitRepository(core_models.CoreModel):
18 # TODO: GitHub, GitLab, BitBucket, etc. integrations
20 class Meta:
21 ordering = ['current__name', 'current__url']
23 active_objects = GitRepositoryActiveManager()
24 current = models.ForeignKey(GitRepositoryData, on_delete=models.CASCADE)
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)