editor list_objects api
This commit is contained in:
parent
a9438be2f3
commit
75125ceecb
3 changed files with 12 additions and 8 deletions
|
@ -294,6 +294,8 @@ class EditorViewSet(ViewSet):
|
|||
except Resolver404:
|
||||
pass
|
||||
|
||||
self.request.sub_resolver_match = resolved
|
||||
|
||||
return resolved
|
||||
|
||||
def retrieve(self, request, *args, **kwargs):
|
||||
|
|
|
@ -202,9 +202,9 @@ class APIHybridTemplateContextResponse(APIHybridResponse):
|
|||
|
||||
def _maybe_serialize_value(self, value):
|
||||
if isinstance(value, SerializableMixin):
|
||||
value = value.serialize(geometry=False)
|
||||
value = value.serialize(geometry=False, detailed=False)
|
||||
elif isinstance(value, QuerySet) and issubclass(value.model, SerializableMixin):
|
||||
value = [item.serialize(geometry=False) for item in value]
|
||||
value = [item.serialize(geometry=False, detailed=False) for item in value]
|
||||
return value
|
||||
|
||||
def get_api_response(self, request):
|
||||
|
|
|
@ -406,10 +406,11 @@ def get_visible_spaces_kwargs(model, request):
|
|||
return kwargs
|
||||
|
||||
|
||||
@sidebar_view
|
||||
@sidebar_view(api_hybrid=True)
|
||||
@etag(etag_func)
|
||||
def list_objects(request, model=None, level=None, space=None, explicit_edit=False):
|
||||
if not request.resolver_match.url_name.endswith('.list'):
|
||||
resolver_match = getattr(request, 'sub_resolver_match', request.resolver_match)
|
||||
if not resolver_match.url_name.endswith('.list'):
|
||||
raise ValueError('url_name does not end with .list')
|
||||
|
||||
model = request.changeset.wrap_model(model)
|
||||
|
@ -443,7 +444,7 @@ def list_objects(request, model=None, level=None, space=None, explicit_edit=Fals
|
|||
'back_title': _('back to level'),
|
||||
'levels': Level.objects.filter(Level.q_for_request(request), on_top_of__isnull=True),
|
||||
'level': level,
|
||||
'level_url': request.resolver_match.url_name,
|
||||
'level_url': resolver_match.url_name,
|
||||
'geometry_url': ('/api/editor/geometries/?level='+str(level.primary_level_pk)
|
||||
if request.user_permissions.can_access_base_mapdata else None),
|
||||
})
|
||||
|
@ -490,18 +491,19 @@ def list_objects(request, model=None, level=None, space=None, explicit_edit=Fals
|
|||
'back_title': _('back to overview'),
|
||||
})
|
||||
|
||||
edit_url_name = request.resolver_match.url_name[:-4]+('detail' if explicit_edit else 'edit')
|
||||
edit_url_name = resolver_match.url_name[:-4]+('detail' if explicit_edit else 'edit')
|
||||
for obj in queryset:
|
||||
reverse_kwargs['pk'] = obj.pk
|
||||
obj.edit_url = reverse(edit_url_name, kwargs=reverse_kwargs)
|
||||
reverse_kwargs.pop('pk', None)
|
||||
|
||||
ctx.update({
|
||||
'create_url': reverse(request.resolver_match.url_name[:-4] + 'create', kwargs=reverse_kwargs),
|
||||
'create_url': reverse(resolver_match.url_name[:-4] + 'create', kwargs=reverse_kwargs),
|
||||
'objects': queryset,
|
||||
})
|
||||
|
||||
return render(request, 'editor/list.html', ctx)
|
||||
return APIHybridTemplateContextResponse('editor/list.html', ctx,
|
||||
fields=('can_create', 'create_url', 'objects'))
|
||||
|
||||
|
||||
def connect_nodes(request, active_node, clicked_node, edge_settings_form):
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue