#138 WIP Improvements
* adds geom back writing to form field in case of invalid geometry, so the invalid geometry will be shown again * updates tests * fixes bug where race condition of celery workers could lead to duplicates in parcels (needs migration)
This commit is contained in:
@@ -6,7 +6,7 @@ Created on: 15.11.21
|
||||
|
||||
"""
|
||||
from django.contrib.gis.db.models import MultiPolygonField
|
||||
from django.db import models
|
||||
from django.db import models, transaction
|
||||
from django.utils import timezone
|
||||
|
||||
from konova.models import BaseResource, UuidModel
|
||||
@@ -96,6 +96,7 @@ class Geometry(BaseResource):
|
||||
objs += set_objs
|
||||
return objs
|
||||
|
||||
@transaction.atomic
|
||||
def update_parcels(self):
|
||||
""" Updates underlying parcel information
|
||||
|
||||
|
||||
@@ -39,7 +39,17 @@ class District(UuidModel, AdministrativeSpatialReference):
|
||||
""" The model District refers to "Kreis"
|
||||
|
||||
"""
|
||||
pass
|
||||
|
||||
class Meta:
|
||||
constraints = [
|
||||
models.UniqueConstraint(
|
||||
fields=[
|
||||
"key",
|
||||
"name",
|
||||
],
|
||||
name="Unique district constraint"
|
||||
)
|
||||
]
|
||||
|
||||
|
||||
class Municipal(UuidModel, AdministrativeSpatialReference):
|
||||
@@ -53,6 +63,18 @@ class Municipal(UuidModel, AdministrativeSpatialReference):
|
||||
blank=True,
|
||||
)
|
||||
|
||||
class Meta:
|
||||
constraints = [
|
||||
models.UniqueConstraint(
|
||||
fields=[
|
||||
"key",
|
||||
"name",
|
||||
"district",
|
||||
],
|
||||
name="Unique municipal constraint"
|
||||
)
|
||||
]
|
||||
|
||||
|
||||
class ParcelGroup(UuidModel, AdministrativeSpatialReference):
|
||||
""" The model ParcelGroup refers to "Gemarkung", which is defined as a loose group of parcels
|
||||
@@ -65,6 +87,18 @@ class ParcelGroup(UuidModel, AdministrativeSpatialReference):
|
||||
blank=True,
|
||||
)
|
||||
|
||||
class Meta:
|
||||
constraints = [
|
||||
models.UniqueConstraint(
|
||||
fields=[
|
||||
"key",
|
||||
"name",
|
||||
"municipal",
|
||||
],
|
||||
name="Unique parcel group constraint"
|
||||
)
|
||||
]
|
||||
|
||||
|
||||
class Parcel(UuidModel):
|
||||
""" The Parcel model holds administrative data on covered properties.
|
||||
@@ -106,6 +140,21 @@ class Parcel(UuidModel):
|
||||
)
|
||||
updated_on = models.DateTimeField(auto_now_add=True)
|
||||
|
||||
class Meta:
|
||||
constraints = [
|
||||
models.UniqueConstraint(
|
||||
fields=[
|
||||
"district",
|
||||
"municipal",
|
||||
"parcel_group",
|
||||
"flr",
|
||||
"flrstck_nnr",
|
||||
"flrstck_zhlr",
|
||||
],
|
||||
name="Unique parcel constraint"
|
||||
)
|
||||
]
|
||||
|
||||
def __str__(self):
|
||||
return f"{self.parcel_group} | {self.flr} | {self.flrstck_zhlr} | {self.flrstck_nnr}"
|
||||
|
||||
|
||||
Reference in New Issue
Block a user