Merge branch 'development' into feature/list-of-incomplete-vorgaben
This commit is contained in:
@@ -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
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
@@ -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"""
|
||||||
|
|||||||
@@ -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>
|
||||||
|
|||||||
Reference in New Issue
Block a user