issue-facade integration
This commit is contained in:
parent
c2b7cc64d6
commit
a907ed6f74
16 changed files with 642 additions and 95 deletions
|
|
@ -154,36 +154,42 @@ class AufgabenVerknuepfung(models.Model):
|
|||
|
||||
|
||||
class ExternalIssue(models.Model):
|
||||
SYSTEM_CHOICES = [
|
||||
('github', 'GitHub Issues'),
|
||||
('jira', 'Jira'),
|
||||
('linear', 'Linear'),
|
||||
('azure', 'Azure DevOps'),
|
||||
('sonstiges', 'Sonstiges'),
|
||||
BACKEND_CHOICES = [
|
||||
('local', 'Lokal (SQLite)'),
|
||||
('gitea', 'Gitea'),
|
||||
]
|
||||
SYNC_STATUS_CHOICES = [
|
||||
('manuell', 'Manuell'),
|
||||
('offen', 'Offen (extern)'),
|
||||
('geschlossen', 'Geschlossen (extern)'),
|
||||
('fehler', 'Sync-Fehler'),
|
||||
('open', 'Offen'),
|
||||
('in_progress', 'In Bearbeitung'),
|
||||
('blocked', 'Blockiert'),
|
||||
('closed', 'Geschlossen'),
|
||||
('error', 'Sync-Fehler'),
|
||||
]
|
||||
|
||||
aufgabe = models.OneToOneField(
|
||||
Aufgabe, on_delete=models.CASCADE, related_name='external_issue'
|
||||
)
|
||||
system = models.CharField(max_length=20, choices=SYSTEM_CHOICES)
|
||||
issue_url = models.URLField(blank=True)
|
||||
issue_key = models.CharField(max_length=100, blank=True,
|
||||
help_text='z.B. "GH-42" oder "PROJ-1234"')
|
||||
sync_status = models.CharField(max_length=20, choices=SYNC_STATUS_CHOICES,
|
||||
default='manuell')
|
||||
issue_facade_backend = models.CharField(
|
||||
max_length=20, choices=BACKEND_CHOICES, default='local'
|
||||
)
|
||||
issue_facade_id = models.CharField(
|
||||
max_length=200, blank=True,
|
||||
help_text='UUID (lokal) oder Issue-Number (Gitea)'
|
||||
)
|
||||
issue_url = models.URLField(blank=True)
|
||||
issue_key = models.CharField(max_length=100, blank=True,
|
||||
help_text='z.B. "#42" oder "PROJ-1234"')
|
||||
sync_status = models.CharField(
|
||||
max_length=20, choices=SYNC_STATUS_CHOICES, default='open'
|
||||
)
|
||||
letzter_sync = models.DateTimeField(null=True, blank=True)
|
||||
notizen = models.TextField(blank=True)
|
||||
erstellt_am = models.DateTimeField(auto_now_add=True)
|
||||
notizen = models.TextField(blank=True)
|
||||
erstellt_am = models.DateTimeField(auto_now_add=True)
|
||||
|
||||
class Meta:
|
||||
verbose_name = 'External Issue'
|
||||
verbose_name_plural = 'External Issues'
|
||||
verbose_name = 'External Issue'
|
||||
verbose_name_plural = 'External Issues'
|
||||
|
||||
def __str__(self):
|
||||
return f'{self.get_system_display()} {self.issue_key or self.issue_url}'
|
||||
ident = self.issue_key or (self.issue_facade_id[:8] if self.issue_facade_id else '?')
|
||||
return f'{self.get_issue_facade_backend_display()} #{ident}'
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue