diff --git a/src/c3nav/editor/api.py b/src/c3nav/editor/api.py index e16b2eb7..d6b1c487 100644 --- a/src/c3nav/editor/api.py +++ b/src/c3nav/editor/api.py @@ -175,7 +175,8 @@ class EditorViewSet(ViewSet): 'column': '#888888', 'poi': '#4488cc', 'shadow': '#000000', - 'graphnode': '#00bb00', + 'graphnode': '#00BB00', + 'graphnode__space_transfer': '#008800', }) @list_route(methods=['get']) diff --git a/src/c3nav/editor/static/editor/js/editor.js b/src/c3nav/editor/static/editor/js/editor.js index 2b13fe9a..9c5eeca9 100644 --- a/src/c3nav/editor/static/editor/js/editor.js +++ b/src/c3nav/editor/static/editor/js/editor.js @@ -389,6 +389,9 @@ editor = { _get_geometry_style: function (feature) { // style callback for GeoJSON loader var style = editor._get_mapitem_type_style(feature.properties.type); + if (feature.properties.space_transfer) { + style = editor._get_mapitem_type_style('graphnode__space_transfer'); + } if (editor._level_control.current_level_id === editor._sublevel_control.current_level_id) { if (editor._sublevel_control.level_ids.indexOf(feature.properties.level) >= 0 && editor._level_control.current_level_id !== feature.properties.level) { style.stroke = true; diff --git a/src/c3nav/mapdata/models/graph.py b/src/c3nav/mapdata/models/graph.py index 1ec080e3..f049446d 100644 --- a/src/c3nav/mapdata/models/graph.py +++ b/src/c3nav/mapdata/models/graph.py @@ -19,6 +19,12 @@ class GraphNode(SpaceGeometryMixin, models.Model): verbose_name_plural = _('Graph Nodes') default_related_name = 'graphnodes' + def get_geojson_properties(self, *args, **kwargs) -> dict: + result = super().get_geojson_properties(*args, **kwargs) + if self.space_transfer: + result['space_transfer'] = True + return result + class WayType(TitledMixin, models.Model): """