update some dependencies
This commit is contained in:
parent
69de947995
commit
6eaf087f71
4 changed files with 9 additions and 17 deletions
|
@ -56,8 +56,8 @@ class GeometryField(models.JSONField):
|
||||||
if value is None or value == '':
|
if value is None or value == '':
|
||||||
return None
|
return None
|
||||||
if isinstance(value, str):
|
if isinstance(value, str):
|
||||||
# todo: this is all too complex, why do we need this?
|
raise ValueError('got a string in GeometryField.to_python()')
|
||||||
value = json.loads(value)
|
# todo: not a todo, hopefully
|
||||||
try:
|
try:
|
||||||
geometry = shape(value)
|
geometry = shape(value)
|
||||||
except Exception:
|
except Exception:
|
||||||
|
@ -107,23 +107,17 @@ class GeometryField(models.JSONField):
|
||||||
|
|
||||||
return format_geojson(mapping(value), rounded=False) if as_json else value
|
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):
|
def get_prep_value(self, value):
|
||||||
if value is None:
|
if value is None:
|
||||||
return 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)
|
self._validate_geomtype(value, exception=TypeError)
|
||||||
if value.is_empty:
|
if value.is_empty:
|
||||||
raise Exception('Cannot save empty geometry.')
|
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):
|
def value_to_string(self, obj):
|
||||||
value = self.value_from_object(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):
|
class JSONField(models.TextField):
|
||||||
|
|
|
@ -18,6 +18,7 @@ from c3nav.mapdata.models.base import SerializableMixin
|
||||||
from c3nav.mapdata.models.geometry.base import GeometryMixin
|
from c3nav.mapdata.models.geometry.base import GeometryMixin
|
||||||
from c3nav.mapdata.models.locations import SpecificLocation
|
from c3nav.mapdata.models.locations import SpecificLocation
|
||||||
from c3nav.mapdata.utils.cache.changes import changed_geometries
|
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
|
from c3nav.mapdata.utils.json import format_geojson
|
||||||
|
|
||||||
|
|
||||||
|
@ -97,7 +98,7 @@ class SpaceGeometryMixin(GeometryMixin):
|
||||||
|
|
||||||
def register_delete(self):
|
def register_delete(self):
|
||||||
space = self.space
|
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):
|
def save(self, *args, **kwargs):
|
||||||
self.register_change()
|
self.register_change()
|
||||||
|
|
|
@ -37,9 +37,6 @@ class WrappedGeometry():
|
||||||
wrapped_geojson = None
|
wrapped_geojson = None
|
||||||
|
|
||||||
def __init__(self, geojson):
|
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
|
self.wrapped_geojson = geojson
|
||||||
|
|
||||||
@cached_property
|
@cached_property
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
Django==4.2.3
|
Django==4.2.7
|
||||||
django-bootstrap3==23.4
|
django-bootstrap3==23.4
|
||||||
django-compressor==4.4
|
django-compressor==4.4
|
||||||
csscompressor==0.9.5
|
csscompressor==0.9.5
|
||||||
|
@ -7,12 +7,12 @@ django-ninja==1.0.1
|
||||||
django-filter==23.4
|
django-filter==23.4
|
||||||
django-environ==0.11.2
|
django-environ==0.11.2
|
||||||
shapely==2.0.2
|
shapely==2.0.2
|
||||||
pybind11==2.10.4
|
pybind11==2.11.1
|
||||||
MeshPy==2022.1.3
|
MeshPy==2022.1.3
|
||||||
# rtree==0.9.1
|
# rtree==0.9.1
|
||||||
celery==5.3.6
|
celery==5.3.6
|
||||||
requests==2.31.0
|
requests==2.31.0
|
||||||
Pillow==10.0.1
|
Pillow==10.1.0
|
||||||
qrcode==7.4.2
|
qrcode==7.4.2
|
||||||
matplotlib==3.8.2
|
matplotlib==3.8.2
|
||||||
scipy==1.11.4
|
scipy==1.11.4
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue