diff --git a/src/c3nav/editor/api.py b/src/c3nav/editor/api.py index 41807f00..ddc1aa26 100644 --- a/src/c3nav/editor/api.py +++ b/src/c3nav/editor/api.py @@ -83,7 +83,7 @@ class EditorViewSet(ViewSet): levels, levels_on_top, levels_under = self._get_levels_pk(request, level) # don't prefetch groups for now as changesets do not yet work with m2m-prefetches levels = Level.objects.filter(pk__in=levels).filter(Level.q_for_request(request)) - graphnodes = request.changeset.wrap_model('GraphNode').objects.filter(space_transfer=True) + graphnodes = request.changeset.wrap_model('GraphNode').objects.all() levels = levels.prefetch_related( Prefetch('spaces', request.changeset.wrap_model('Space').objects.filter(Space.q_for_request(request))), Prefetch('doors', request.changeset.wrap_model('Door').objects.filter(Door.q_for_request(request))), @@ -130,6 +130,7 @@ class EditorViewSet(ViewSet): space = next(s for s in other_spaces if s.pk == space.pk) other_spaces = [s for s in other_spaces if s.geometry.intersects(doors_space_geom) and s.pk != space.pk] + all_other_spaces = other_spaces if level.on_top_of_id is None: other_spaces_lower = [s for s in other_spaces if s.level_id in levels_under] @@ -154,11 +155,12 @@ class EditorViewSet(ViewSet): # todo: permissions graphnodes = request.changeset.wrap_model('GraphNode').objects.all() - graphnodes = graphnodes.filter((Q(space__in=other_spaces) & Q(space_transfer=True)) | - Q(space__pk=space.pk)) + graphnodes = graphnodes.filter((Q(space__in=all_other_spaces)) | Q(space__pk=space.pk)) + + space_graphnodes = tuple(node for node in graphnodes if node.space == space) graphedges = request.changeset.wrap_model('GraphEdge').objects.all() - graphedges = graphedges.filter(Q(from_node__in=graphnodes) | Q(to_node__in=graphnodes)) + graphedges = graphedges.filter(Q(from_node__in=space_graphnodes) | Q(to_node__in=space_graphnodes)) graphedges = graphedges.select_related('from_node', 'to_node', 'waytype') results = chain( @@ -203,7 +205,6 @@ class EditorViewSet(ViewSet): 'poi': '#4488cc', 'shadow': '#000000', 'graphnode': '#00BB00', - 'graphnode__space_transfer': '#008800', 'graphedge': '#00CC00', 'altitudemarker': '#ffff00', }) diff --git a/src/c3nav/editor/forms.py b/src/c3nav/editor/forms.py index f609e3be..72992fa4 100644 --- a/src/c3nav/editor/forms.py +++ b/src/c3nav/editor/forms.py @@ -15,7 +15,7 @@ from shapely.geometry.geo import mapping from c3nav.editor.models import ChangeSet, ChangeSetUpdate from c3nav.mapdata.fields import GeometryField -from c3nav.mapdata.models import GraphEdge, GraphNode +from c3nav.mapdata.models import GraphEdge class EditorFormBase(ModelForm): @@ -161,7 +161,7 @@ class EditorFormBase(ModelForm): def create_editor_form(editor_model): possible_fields = ['slug', 'name', 'ordering', 'category', 'width', 'groups', 'color', 'priority', 'altitude', - 'waytype', 'access_restriction', 'space_transfer', 'can_search', 'can_describe', 'outside', + 'waytype', 'access_restriction', 'can_search', 'can_describe', 'outside', 'geometry', 'single', 'allow_levels', 'allow_spaces', 'allow_areas', 'allow_pois', 'left', 'top', 'right', 'bottom'] field_names = [field.name for field in editor_model._meta.get_fields() if not field.one_to_many] @@ -190,12 +190,6 @@ class RejectForm(ModelForm): fields = ('comment', ) -class GraphNodeSettingsForm(ModelForm): - class Meta: - model = GraphNode - fields = ('space_transfer', ) - - class GraphEdgeSettingsForm(ModelForm): class Meta: model = GraphEdge @@ -243,7 +237,6 @@ class GraphEditorSettingsForm(Form): ('activate', _('activate')), ('deactivate', _('deactivate')), ('toggle', _('toggle')), - ('set_space_transfer', _('set space transfer')), ('delete', _('delete node')), ('noop', _('do nothing')), ), initial='connect_or_toggle') diff --git a/src/c3nav/editor/static/editor/js/editor.js b/src/c3nav/editor/static/editor/js/editor.js index 35537865..b269f278 100644 --- a/src/c3nav/editor/static/editor/js/editor.js +++ b/src/c3nav/editor/static/editor/js/editor.js @@ -159,22 +159,15 @@ editor = { } var active_graph_node = content.find('[data-active-node]'); - if (!editor._active_graph_node_space_transfer && !editor._in_modal && editor._last_graph_path !== editor.get_location_path()) { - editor._active_graph_node = null; - editor._active_graph_node_space_transfer = null; - editor._active_graph_node_html = null; - } if (active_graph_node.length) { var active_graph_node_id = active_graph_node.attr('data-active-node'); if (active_graph_node_id !== '') { if (active_graph_node_id === 'null') { editor._active_graph_node = null; - editor._active_graph_node_space_transfer = null; editor._active_graph_node_html = null; active_graph_node.remove(); } else { editor._active_graph_node = active_graph_node_id; - editor._active_graph_node_space_transfer = active_graph_node.is('[data-space-transfer]'); editor._active_graph_node_html = active_graph_node.html(); } } else if (editor._active_graph_node_html !== null) { @@ -294,7 +287,6 @@ editor = { _graph_editing: false, _graph_creating: false, _active_graph_node: null, - _active_graph_node_space_transfer: null, _active_graph_node_html: null, _deactivate_graph_node_on_click: false, _graph_edges_from: {}, @@ -467,9 +459,6 @@ 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; @@ -703,7 +692,6 @@ editor = { sidebar.find('[data-active-node]').remove(); sidebar.find('#id_active_node').val(''); editor._active_graph_node = null; - editor._active_graph_node_space_transfer = null; editor._active_graph_node_html = null; return; } diff --git a/src/c3nav/editor/templates/editor/graph.html b/src/c3nav/editor/templates/editor/graph.html index 4f404d91..cf41cb86 100644 --- a/src/c3nav/editor/templates/editor/graph.html +++ b/src/c3nav/editor/templates/editor/graph.html @@ -29,8 +29,8 @@ {% bootstrap_messages %} {% if set_active_node %} -