Intervention relations enhancements

* refactors model relation to compensation and payment by applying 1-n instead of n-n
This commit is contained in:
mipel 2021-07-23 09:36:43 +02:00
parent eaa9c43afe
commit b962e22c04
2 changed files with 18 additions and 3 deletions

View File

@ -12,6 +12,7 @@ from django.utils import timezone
from django.utils.timezone import now from django.utils.timezone import now
from compensation.settings import COMPENSATION_IDENTIFIER_LENGTH, COMPENSATION_IDENTIFIER_TEMPLATE from compensation.settings import COMPENSATION_IDENTIFIER_LENGTH, COMPENSATION_IDENTIFIER_TEMPLATE
from intervention.models import Intervention
from konova.models import BaseObject, BaseResource, Geometry from konova.models import BaseObject, BaseResource, Geometry
from konova.utils.generators import generate_random_string from konova.utils.generators import generate_random_string
from organisation.models import Organisation from organisation.models import Organisation
@ -29,6 +30,13 @@ class Payment(BaseResource):
blank=True, blank=True,
help_text="Refers to german money transfer 'Verwendungszweck'", help_text="Refers to german money transfer 'Verwendungszweck'",
) )
intervention = models.ForeignKey(
Intervention,
null=True,
blank=True,
on_delete=models.CASCADE,
related_name='payments'
)
class CompensationControl(BaseResource): class CompensationControl(BaseResource):
@ -81,6 +89,14 @@ class Compensation(BaseObject):
geometry = models.ForeignKey(Geometry, null=True, blank=True, on_delete=models.SET_NULL) geometry = models.ForeignKey(Geometry, null=True, blank=True, on_delete=models.SET_NULL)
documents = models.ManyToManyField("konova.Document", blank=True) documents = models.ManyToManyField("konova.Document", blank=True)
intervention = models.ForeignKey(
Intervention,
on_delete=models.CASCADE,
null=True,
blank=True,
related_name='compensations'
)
# Users having access on this object # Users having access on this object
users = models.ManyToManyField(User) users = models.ManyToManyField(User)

View File

@ -11,7 +11,6 @@ from django.db import transaction
from django.utils import timezone from django.utils import timezone
from django.utils.timezone import now from django.utils.timezone import now
from compensation.models import Payment, Compensation
from intervention.settings import INTERVENTION_IDENTIFIER_LENGTH, INTERVENTION_IDENTIFIER_TEMPLATE from intervention.settings import INTERVENTION_IDENTIFIER_LENGTH, INTERVENTION_IDENTIFIER_TEMPLATE
from konova.models import BaseObject, Geometry from konova.models import BaseObject, Geometry
from konova.utils.generators import generate_random_string from konova.utils.generators import generate_random_string
@ -51,8 +50,8 @@ class Intervention(BaseObject):
next_version = models.ForeignKey("Intervention", null=True, blank=True, on_delete=models.DO_NOTHING) next_version = models.ForeignKey("Intervention", null=True, blank=True, on_delete=models.DO_NOTHING)
# Compensation or payments, one-directional # Compensation or payments, one-directional
payments = models.ManyToManyField(Payment, related_name="+", blank=True) #payments = models.ManyToManyField(Payment, related_name="+", blank=True)
compensations = models.ManyToManyField(Compensation, related_name="+", blank=True) #compensations = models.ManyToManyField(Compensation, related_name="+", blank=True)
# Users having access on this object # Users having access on this object
users = models.ManyToManyField(User) users = models.ManyToManyField(User)