update some dependencies

This commit is contained in:
Laura Klünder 2023-12-01 01:56:23 +01:00
parent 69de947995
commit 6eaf087f71
4 changed files with 9 additions and 17 deletions

View file

@ -56,8 +56,8 @@ class GeometryField(models.JSONField):
if value is None or value == '':
return None
if isinstance(value, str):
# todo: this is all too complex, why do we need this?
value = json.loads(value)
raise ValueError('got a string in GeometryField.to_python()')
# todo: not a todo, hopefully
try:
geometry = shape(value)
except Exception:
@ -107,23 +107,17 @@ class GeometryField(models.JSONField):
return format_geojson(mapping(value), rounded=False) if as_json else value
def get_db_prep_value(self, value, connection, prepared=False):
return super().get_db_prep_value(mapping(value), connection, prepared=prepared)
def get_prep_value(self, value):
if value is None:
return None
if isinstance(value, dict):
# todo: this should also not be needed but whatever
value = shape(value)
self._validate_geomtype(value, exception=TypeError)
if value.is_empty:
raise Exception('Cannot save empty geometry.')
return json.dumps(self.get_final_value(value, as_json=True))
return self.get_final_value(value, as_json=True)
def value_to_string(self, obj):
value = self.value_from_object(obj)
return self.get_prep_value(value)
return json.dumps(self.get_prep_value(value))
class JSONField(models.TextField):

View file

@ -18,6 +18,7 @@ from c3nav.mapdata.models.base import SerializableMixin
from c3nav.mapdata.models.geometry.base import GeometryMixin
from c3nav.mapdata.models.locations import SpecificLocation
from c3nav.mapdata.utils.cache.changes import changed_geometries
from c3nav.mapdata.utils.geometry import unwrap_geom
from c3nav.mapdata.utils.json import format_geojson
@ -97,7 +98,7 @@ class SpaceGeometryMixin(GeometryMixin):
def register_delete(self):
space = self.space
changed_geometries.register(space.level_id, space.geometry.intersection(self.geometry))
changed_geometries.register(space.level_id, space.geometry.intersection(unwrap_geom(self.geometry)))
def save(self, *args, **kwargs):
self.register_change()

View file

@ -37,9 +37,6 @@ class WrappedGeometry():
wrapped_geojson = None
def __init__(self, geojson):
if isinstance(geojson, str):
# todo: this should not be needed unless the database is fucked
geojson = json.loads(geojson)
self.wrapped_geojson = geojson
@cached_property

View file

@ -1,4 +1,4 @@
Django==4.2.3
Django==4.2.7
django-bootstrap3==23.4
django-compressor==4.4
csscompressor==0.9.5
@ -7,12 +7,12 @@ django-ninja==1.0.1
django-filter==23.4
django-environ==0.11.2
shapely==2.0.2
pybind11==2.10.4
pybind11==2.11.1
MeshPy==2022.1.3
# rtree==0.9.1
celery==5.3.6
requests==2.31.0
Pillow==10.0.1
Pillow==10.1.0
qrcode==7.4.2
matplotlib==3.8.2
scipy==1.11.4