all mapdata models use new_serialize now
This commit is contained in:
parent
40f19afc28
commit
05890de06a
7 changed files with 4 additions and 110 deletions
|
@ -408,11 +408,6 @@ class AccessRestrictionMixin(SerializableMixin, models.Model):
|
|||
class Meta:
|
||||
abstract = True
|
||||
|
||||
def _serialize(self, **kwargs):
|
||||
result = super()._serialize(**kwargs)
|
||||
result['access_restriction'] = self.access_restriction_id
|
||||
return result
|
||||
|
||||
def details_display(self, **kwargs):
|
||||
result = super().details_display(**kwargs)
|
||||
result['display'].extend([
|
||||
|
|
|
@ -16,9 +16,6 @@ class SerializableMixin(models.Model):
|
|||
class Meta:
|
||||
abstract = True
|
||||
|
||||
def serialize(self, **kwargs):
|
||||
return self._serialize(**kwargs)
|
||||
|
||||
@classmethod
|
||||
def serialize_type(cls, **kwargs):
|
||||
return OrderedDict((
|
||||
|
@ -28,13 +25,6 @@ class SerializableMixin(models.Model):
|
|||
('title_plural', str(cls._meta.verbose_name_plural)),
|
||||
))
|
||||
|
||||
def _serialize(self, include_type=False, **kwargs):
|
||||
result = {}
|
||||
if include_type:
|
||||
result['type'] = self.__class__.__name__.lower()
|
||||
result['id'] = self.pk
|
||||
return result
|
||||
|
||||
def details_display(self, **kwargs):
|
||||
return {
|
||||
'id': self.pk,
|
||||
|
@ -66,17 +56,6 @@ class TitledMixin(SerializableMixin, models.Model):
|
|||
class Meta:
|
||||
abstract = True
|
||||
|
||||
def serialize(self, **kwargs):
|
||||
result = super().serialize(**kwargs)
|
||||
return result
|
||||
|
||||
def _serialize(self, detailed=True, **kwargs):
|
||||
result = super()._serialize(detailed=detailed, **kwargs)
|
||||
if detailed:
|
||||
result['titles'] = self.titles
|
||||
result['title'] = self.title
|
||||
return result
|
||||
|
||||
@property
|
||||
def other_titles(self):
|
||||
return tuple(title for lang, title in self.titles.items() if lang != get_language())
|
||||
|
@ -114,11 +93,6 @@ class BoundsMixin(SerializableMixin, models.Model):
|
|||
cache.set(cache_key, result, 900)
|
||||
return result
|
||||
|
||||
def _serialize(self, level=True, **kwargs):
|
||||
result = super()._serialize(**kwargs)
|
||||
result['bounds'] = self.bounds
|
||||
return result
|
||||
|
||||
@property
|
||||
def bounds(self):
|
||||
# noinspection PyTypeChecker
|
||||
|
|
|
@ -82,19 +82,6 @@ class GeometryMixin(SerializableMixin):
|
|||
raise ValueError
|
||||
return good_representative_point(self.geometry)
|
||||
|
||||
def _serialize(self, geometry=True, simple_geometry=False, **kwargs):
|
||||
result = super()._serialize(simple_geometry=simple_geometry, **kwargs)
|
||||
if geometry and "geometry" not in self.get_deferred_fields():
|
||||
result['geometry'] = format_geojson(smart_mapping(self.geometry), rounded=False)
|
||||
if simple_geometry and "geometry" not in self.get_deferred_fields():
|
||||
result['point'] = (self.level_id, ) + tuple(round(i, 2) for i in self.point.coords[0])
|
||||
if not isinstance(self.geometry, Point):
|
||||
self.geometry: BaseGeometry
|
||||
minx, miny, maxx, maxy = self.geometry.bounds
|
||||
result['bounds'] = ((int(math.floor(minx)), int(math.floor(miny))),
|
||||
(int(math.ceil(maxx)), int(math.ceil(maxy))))
|
||||
return result
|
||||
|
||||
def details_display(self, detailed_geometry=True, **kwargs):
|
||||
result = super().details_display(**kwargs)
|
||||
result['geometry'] = self.get_geometry(detailed_geometry=detailed_geometry)
|
||||
|
|
|
@ -52,12 +52,6 @@ class LevelGeometryMixin(GeometryMixin):
|
|||
result['opacity'] = self.opacity
|
||||
return result
|
||||
|
||||
def _serialize(self, level=True, **kwargs):
|
||||
result = super()._serialize(**kwargs)
|
||||
if level:
|
||||
result['level'] = self.level_id
|
||||
return result
|
||||
|
||||
def details_display(self, **kwargs):
|
||||
result = super().details_display(**kwargs)
|
||||
result['display'].insert(3, (
|
||||
|
|
|
@ -50,12 +50,6 @@ class SpaceGeometryMixin(GeometryMixin):
|
|||
result['opacity'] = self.opacity
|
||||
return result
|
||||
|
||||
def _serialize(self, space=True, **kwargs):
|
||||
result = super()._serialize(**kwargs)
|
||||
if space:
|
||||
result['space'] = self.space_id
|
||||
return result
|
||||
|
||||
@property
|
||||
def subtitle(self):
|
||||
base_subtitle = super().subtitle
|
||||
|
@ -280,17 +274,6 @@ class LineObstacle(SpaceGeometryMixin, models.Model):
|
|||
result['color'] = color
|
||||
return result
|
||||
|
||||
def _serialize(self, geometry=True, **kwargs):
|
||||
result = super()._serialize(geometry=geometry, **kwargs)
|
||||
result['width'] = float(str(self.width))
|
||||
result['height'] = float(str(self.height))
|
||||
result['altitude'] = float(str(self.altitude))
|
||||
from c3nav.mapdata.render.theme import ColorManager
|
||||
result['color'] = self.get_color(ColorManager.for_theme(None))
|
||||
if geometry:
|
||||
result['buffered_geometry'] = format_geojson(mapping(self.buffered_geometry))
|
||||
return result
|
||||
|
||||
@property
|
||||
def color(self):
|
||||
from c3nav.mapdata.render.theme import ColorManager
|
||||
|
|
|
@ -85,13 +85,6 @@ class LocationSlug(SerializableMixin, models.Model):
|
|||
def effective_slug(self):
|
||||
return self.slug
|
||||
|
||||
def _serialize(self, **kwargs):
|
||||
result = super()._serialize(**kwargs)
|
||||
result["locationtype"] = self.__class__.__name__.lower()
|
||||
result['slug'] = self.slug
|
||||
result['effective_slug'] = self.effective_slug
|
||||
return result
|
||||
|
||||
def details_display(self, **kwargs):
|
||||
result = super().details_display(**kwargs)
|
||||
result['display'].insert(2, (_('Slug'), self.effective_slug))
|
||||
|
@ -186,25 +179,6 @@ class SpecificLocation(Location, models.Model):
|
|||
class Meta:
|
||||
abstract = True
|
||||
|
||||
def _serialize(self, detailed=True, **kwargs):
|
||||
result = super()._serialize(detailed=detailed, **kwargs)
|
||||
if grid.enabled:
|
||||
grid_square = self.grid_square
|
||||
if grid_square is not None:
|
||||
result['grid_square'] = grid_square or None
|
||||
if detailed:
|
||||
result["groups"] = [g.pk for g in self.groups.all()]
|
||||
result['groups_by_category'] = self.groups_by_category
|
||||
|
||||
result["label_settings"] = self.label_settings_id
|
||||
effective_label_settings = self.effective_label_settings
|
||||
if effective_label_settings:
|
||||
result['effective_label_settings'] = effective_label_settings.serialize(detailed=False)
|
||||
if self.label_overrides:
|
||||
# todo: what if only one language is set?
|
||||
result['label_override'] = self.label_override
|
||||
return result
|
||||
|
||||
@property
|
||||
def effective_label_settings(self):
|
||||
if self.label_settings:
|
||||
|
|
|
@ -12,6 +12,8 @@ from c3nav.mapdata.utils.json import format_geojson
|
|||
|
||||
|
||||
class DataOverlay(TitledMixin, models.Model):
|
||||
new_serialize = True
|
||||
|
||||
description = models.TextField(blank=True, verbose_name=_('Description'))
|
||||
stroke_color = models.TextField(blank=True, null=True, verbose_name=_('default stroke color'))
|
||||
stroke_width = models.FloatField(blank=True, null=True, verbose_name=_('default stroke width'))
|
||||
|
@ -28,6 +30,8 @@ class DataOverlay(TitledMixin, models.Model):
|
|||
|
||||
|
||||
class DataOverlayFeature(TitledMixin, GeometryMixin, models.Model):
|
||||
new_serialize = True
|
||||
|
||||
overlay = models.ForeignKey('mapdata.DataOverlay', on_delete=models.CASCADE, verbose_name=_('Overlay'), related_name='features')
|
||||
geometry = GeometryField()
|
||||
level = models.ForeignKey('mapdata.Level', on_delete=models.CASCADE, verbose_name=_('level'), related_name='data_overlay_features')
|
||||
|
@ -64,22 +68,5 @@ class DataOverlayFeature(TitledMixin, GeometryMixin, models.Model):
|
|||
def get_geojson_key(self):
|
||||
return 'dataoverlayfeature', self.id
|
||||
|
||||
def _serialize(self, **kwargs):
|
||||
result = super()._serialize(**kwargs)
|
||||
result.update({
|
||||
'level_id': self.level_id,
|
||||
'stroke_color': self.stroke_color,
|
||||
'stroke_width': self.stroke_width,
|
||||
'fill_color': self.fill_color,
|
||||
'show_label': self.show_label,
|
||||
'show_geometry': self.show_geometry,
|
||||
'interactive': self.interactive,
|
||||
'point_icon': self.point_icon,
|
||||
'external_url': self.external_url,
|
||||
'extra_data': self.extra_data,
|
||||
})
|
||||
result['level_id'] = self.level_id
|
||||
return result
|
||||
|
||||
class Meta:
|
||||
default_related_name = "dataoverlayfeatures"
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue