From aebb158b12a006b2176d27d69b6ad5e0d6f3dca0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Laura=20Kl=C3=BCnder?= Date: Sun, 3 Apr 2022 18:13:43 +0200 Subject: [PATCH] fix editor --- src/c3nav/editor/views/edit.py | 12 ++++++------ src/c3nav/site/urls.py | 34 +++++++++++++++++++++++----------- 2 files changed, 29 insertions(+), 17 deletions(-) diff --git a/src/c3nav/editor/views/edit.py b/src/c3nav/editor/views/edit.py index 7bb94c3e..dfa8f49d 100644 --- a/src/c3nav/editor/views/edit.py +++ b/src/c3nav/editor/views/edit.py @@ -41,8 +41,8 @@ def child_model(request, model: typing.Union[str, models.Model], kwargs=None, pa } -@sidebar_view(api_hybrid=True) @etag(etag_func) +@sidebar_view(api_hybrid=True) def main_index(request): Level = request.changeset.wrap_model('Level') return APIHybridTemplateContextResponse('editor/index.html', { @@ -62,8 +62,8 @@ def main_index(request): }, fields=('can_create_level', 'child_models')) -@sidebar_view(api_hybrid=True) @etag(etag_func) +@sidebar_view(api_hybrid=True) def level_detail(request, pk): Level = request.changeset.wrap_model('Level') qs = Level.objects.filter(Level.q_for_request(request)) @@ -91,8 +91,8 @@ def level_detail(request, pk): }, fields=('level', 'can_edit_graph', 'can_create_level', 'child_models', 'levels_on_top')) -@sidebar_view(api_hybrid=True) @etag(etag_func) +@sidebar_view(api_hybrid=True) def space_detail(request, level, pk): Level = request.changeset.wrap_model('Level') Space = request.changeset.wrap_model('Space') @@ -125,8 +125,8 @@ def get_changeset_exceeded(request): return request.user_permissions.max_changeset_changes <= request.changeset.changed_objects_count -@sidebar_view(api_hybrid=True) @etag(etag_func) +@sidebar_view(api_hybrid=True) def edit(request, pk=None, model=None, level=None, space=None, on_top_of=None, explicit_edit=False): changeset_exceeded = get_changeset_exceeded(request) model_changes = {} @@ -411,8 +411,8 @@ def get_visible_spaces_kwargs(model, request): return kwargs -@sidebar_view(api_hybrid=True) @etag(etag_func) +@sidebar_view(api_hybrid=True) def list_objects(request, model=None, level=None, space=None, explicit_edit=False): resolver_match = getattr(request, 'sub_resolver_match', request.resolver_match) if not resolver_match.url_name.endswith('.list'): @@ -567,8 +567,8 @@ def connect_nodes(request, active_node, clicked_node, edge_settings_form): messages.success(request, _('Reverse edge overwritten.') if is_reverse else _('Edge overwritten.')) -@sidebar_view @etag(etag_func) +@sidebar_view def graph_edit(request, level=None, space=None): if not request.user_permissions.can_access_base_mapdata: raise PermissionDenied diff --git a/src/c3nav/site/urls.py b/src/c3nav/site/urls.py index 290dea36..af9ee561 100644 --- a/src/c3nav/site/urls.py +++ b/src/c3nav/site/urls.py @@ -1,3 +1,5 @@ +from itertools import chain + from django.urls import path, register_converter from c3nav.site.converters import AtPositionConverter, CoordinatesConverter, IsEmbedConverter, LocationConverter @@ -13,18 +15,28 @@ register_converter(IsEmbedConverter, 'is_embed') embed = '' pos = '' + +def index_paths(pre, suf): + return [ + path(f'{pre}l//{suf}', map_index, {'mode': 'l'}, name='site.index', ), + path(f'{pre}l//details/{suf}', map_index, {'mode': 'l', 'details': True}, name='site.index'), + path(f'{pre}l//nearby/{suf}', map_index, {'mode': 'l', 'nearby': True}, name='site.index'), + path(f'{pre}o//{suf}', map_index, {'mode': 'o'}, name='site.index'), + path(f'{pre}d//{suf}', map_index, {'mode': 'd'}, name='site.index'), + path(f'{pre}r/{suf}', map_index, {'mode': 'r'}, name='site.index'), + path(f'{pre}r///{suf}', map_index, {'mode': 'r'}, name='site.index'), + path(f'{pre}r///details{suf}', map_index, {'mode': 'r', 'details': True}, + name='site.index'), + path(f'{pre}r///options{suf}', map_index, {'mode': 'r', 'options': True}, + name='site.index'), + path(f'{pre}r///options{suf}', map_index, {'mode': 'r', 'options': True}, + name='site.index'), + path(f'{pre}{suf}', map_index, name='site.index'), + ] + + urlpatterns = [ - path(f'{embed}l//{pos}', map_index, {'mode': 'l'}, name='site.index', ), - path(f'{embed}l//details/{pos}', map_index, {'mode': 'l', 'details': True}, name='site.index'), - path(f'{embed}l//nearby/{pos}', map_index, {'mode': 'l', 'nearby': True}, name='site.index'), - path(f'{embed}o//{pos}', map_index, {'mode': 'o'}, name='site.index'), - path(f'{embed}d//{pos}', map_index, {'mode': 'd'}, name='site.index'), - path(f'{embed}r/{pos}', map_index, {'mode': 'r'}, name='site.index'), - path(f'{embed}r///{pos}', map_index, {'mode': 'r'}, name='site.index'), - path(f'{embed}r///details{pos}', map_index, {'mode': 'r', 'details': True}, name='site.index'), - path(f'{embed}r///options{pos}', map_index, {'mode': 'r', 'options': True}, name='site.index'), - path(f'{embed}r///options{pos}', map_index, {'mode': 'r', 'options': True}, name='site.index'), - path(f'{embed}{pos}', map_index, name='site.index'), + *chain(*(index_paths(pre, suf) for pre in ('', embed) for suf in ('', pos))), path('qr/', qr_code, name='site.qr'), path('login', login_view, name='site.login'), path('logout', logout_view, name='site.logout'),