feat: enhance incomplete Vorgaben page with table layout and admin integration #4

Merged
adebaumann merged 2 commits from feature/list-of-incomplete-vorgaben into development 2025-11-04 13:58:40 +00:00
4 changed files with 10 additions and 10 deletions
Showing only changes of commit b82c6fea38 - Show all commits

View File

@@ -25,7 +25,7 @@ spec:
mountPath: /data mountPath: /data
containers: containers:
- name: web - name: web
image: git.baumann.gr/adebaumann/vui:0.941 image: git.baumann.gr/adebaumann/vui:0.942
imagePullPolicy: Always imagePullPolicy: Always
ports: ports:
- containerPort: 8000 - containerPort: 8000

View File

@@ -60,7 +60,7 @@ class Vorgabe(models.Model):
order = models.IntegerField() order = models.IntegerField()
nummer = models.IntegerField() nummer = models.IntegerField()
dokument = models.ForeignKey(Dokument, on_delete=models.CASCADE, related_name='vorgaben') dokument = models.ForeignKey(Dokument, on_delete=models.CASCADE, related_name='vorgaben')
thema = models.ForeignKey(Thema, on_delete=models.PROTECT) thema = models.ForeignKey(Thema, on_delete=models.PROTECT, blank=False)
titel = models.CharField(max_length=255) titel = models.CharField(max_length=255)
referenzen = models.ManyToManyField(Referenz, blank=True) referenzen = models.ManyToManyField(Referenz, blank=True)
gueltigkeit_von = models.DateField() gueltigkeit_von = models.DateField()
@@ -132,13 +132,13 @@ class Vorgabe(models.Model):
}) })
return conflicts return conflicts
def clean(self): def clean(self):
""" """
Validate the Vorgabe before saving. Validate the Vorgabe before saving.
""" """
from django.core.exceptions import ValidationError from django.core.exceptions import ValidationError
# Check for conflicts with existing Vorgaben # Check for conflicts with existing Vorgaben
conflicts = self.find_conflicts() conflicts = self.find_conflicts()
if conflicts: if conflicts:
@@ -172,9 +172,9 @@ class Vorgabe(models.Model):
'vorgabe1': self, 'vorgabe1': self,
'vorgabe2': other_vorgabe, 'vorgabe2': other_vorgabe,
'conflict_type': 'date_range_intersection', 'conflict_type': 'date_range_intersection',
'message': f"Vorgabe {self.Vorgabennummer()} conflicts with " 'message': f"Vorgabe {self.Vorgabennummer()} in Konflikt mit "
f"existing {other_vorgabe.Vorgabennummer()} " f"bestehender {other_vorgabe.Vorgabennummer()} "
f"due to overlapping validity periods" f" - Geltungsdauer übeschneidet sich"
}) })
return conflicts return conflicts

View File

@@ -712,8 +712,8 @@ class VorgabeSanityCheckTest(TestCase):
with self.assertRaises(Exception) as context: with self.assertRaises(Exception) as context:
conflicting_vorgabe.clean() conflicting_vorgabe.clean()
self.assertIn('conflicts with existing', str(context.exception)) self.assertIn('Konflikt mit bestehender', str(context.exception))
self.assertIn('overlapping validity periods', str(context.exception)) self.assertIn('Geltungsdauer übeschneidet sich', str(context.exception))
def test_check_vorgabe_conflicts_utility(self): def test_check_vorgabe_conflicts_utility(self):
"""Test check_vorgabe_conflicts utility function""" """Test check_vorgabe_conflicts utility function"""

View File

@@ -31,6 +31,6 @@
<div class="flex-fill">{% block content %}Main Content{% endblock %}</div> <div class="flex-fill">{% block content %}Main Content{% endblock %}</div>
<div class="col-md-2">{% block sidebar_right %}{% endblock %}</div> <div class="col-md-2">{% block sidebar_right %}{% endblock %}</div>
</div> </div>
<div>VorgabenUI v0.941</div> <div>VorgabenUI v0.942</div>
</body> </body>
</html> </html>