diff --git a/src/c3nav/editor/urls.py b/src/c3nav/editor/urls.py index ee7f5b2a..6992192a 100644 --- a/src/c3nav/editor/urls.py +++ b/src/c3nav/editor/urls.py @@ -46,7 +46,7 @@ urlpatterns = [ path('levels//overlays/', overlays_list, name='editor.levels.overlays'), path('levels//overlays//', overlay_features, name='editor.levels.overlay'), path('levels//overlays//create', overlay_feature_edit, name='editor.levels.overlay.create'), - path('levels//overlays//features/', overlay_feature_edit, name='editor.levels.overlay.edit'), + path('overlayfeatures/', overlay_feature_edit, name='editor.overlayfeatures.edit'), path('changeset/', changeset_redirect, name='editor.changesets.current'), path('changesets//', changeset_detail, name='editor.changesets.detail'), path('changesets//edit', changeset_edit, name='editor.changesets.edit'), diff --git a/src/c3nav/editor/views/overlays.py b/src/c3nav/editor/views/overlays.py index 0e37e64d..547c6506 100644 --- a/src/c3nav/editor/views/overlays.py +++ b/src/c3nav/editor/views/overlays.py @@ -49,12 +49,8 @@ def overlay_features(request, level, pk): } queryset = DataOverlayFeature.objects.filter(level_id=level, overlay_id=pk).order_by('id') - reverse_kwargs = {} - add_cols = [] - reverse_kwargs['level'] = level - reverse_kwargs['overlay'] = pk level = get_object_or_404(Level.objects.filter(Level.q_for_request(request)), pk=level) overlay = get_object_or_404(DataOverlay.objects.filter(DataOverlay.q_for_request(request)), pk=pk) edit_utils = LevelChildEditUtils(level, request) @@ -71,10 +67,8 @@ def overlay_features(request, level, pk): }) for obj in queryset: - reverse_kwargs['pk'] = obj.pk - obj.edit_url = reverse('editor.levels.overlay.edit', kwargs=reverse_kwargs) + obj.edit_url = reverse('editor.overlayfeatures.edit', kwargs={'pk': obj.pk}) obj.add_cols = tuple(getattr(obj, col) for col in add_cols) - reverse_kwargs.pop('pk', None) ctx.update({ @@ -93,7 +87,7 @@ def overlay_features(request, level, pk): @etag(editor_etag_func) @sidebar_view(api_hybrid=True) -def overlay_feature_edit(request, level, overlay, pk=None): +def overlay_feature_edit(request, level=None, overlay=None, pk=None): changeset_exceeded = get_changeset_exceeded(request) model_changes = {} if changeset_exceeded: @@ -114,8 +108,8 @@ def overlay_feature_edit(request, level, overlay, pk=None): if hasattr(DataOverlayFeature, 'q_for_request'): qs = qs.filter(DataOverlayFeature.q_for_request(request)) - kwargs.update({'level__pk': level}) qs = qs.select_related('level') + qs = qs.select_related('overlay') utils_cls = LevelChildEditUtils obj = get_object_or_404(qs, **kwargs) diff --git a/src/c3nav/mapdata/models/overlay.py b/src/c3nav/mapdata/models/overlay.py index 7075096a..ad0b66ea 100644 --- a/src/c3nav/mapdata/models/overlay.py +++ b/src/c3nav/mapdata/models/overlay.py @@ -81,4 +81,7 @@ class DataOverlayFeature(TitledMixin, GeometryMixin, models.Model): 'extra_data': self.extra_data, }) result['level_id'] = self.level_id - return result \ No newline at end of file + return result + + class Meta: + default_related_name = "overlayfeatures" \ No newline at end of file