K356/k356/items/views/relation_view.py
2024-09-28 17:37:29 +02:00

30 lines
1020 B
Python

from django.contrib.auth.decorators import login_required
from django.http import JsonResponse
from app.utils.api.api_list import header_for_table
from items.models import Item, ItemRelation, Property, RelationProperty
@login_required
def relation_details(request, id):
relation = ItemRelation.objects.filter(author=request.user.setting, id=id).first()
if not relation:
return JsonResponse({}, status=404)
return JsonResponse(
{
"object": relation.serialize(),
"parent": relation.parent.serialize(),
"parent_headers": header_for_table(Item),
"child": relation.child.serialize(),
"child_headers": header_for_table(Item),
"properties": list(relation.properties.serialize()),
"properties_headers": header_for_table(Property),
"relation_properties": list(relation.relation_properties.serialize()),
"relation_properties_headers": header_for_table(RelationProperty),
}
)