Add more components + base for history
This commit is contained in:
@@ -41,10 +41,16 @@ def generic_edit(model, request, id=None):
|
||||
continue
|
||||
|
||||
if isinstance(field, RelatedField):
|
||||
# For now, disregard related field (fk, m2m, 1-1)
|
||||
if isinstance(field, models.ForeignKey):
|
||||
setattr(item, f"{field.name}_id", data[field.name])
|
||||
|
||||
# Also allow for nested object (giving the full object instead of the id only)
|
||||
if isinstance(data[field.name], dict):
|
||||
setattr(item, f"{field.name}_id", data[field.name]["id"])
|
||||
|
||||
else:
|
||||
setattr(item, f"{field.name}_id", data[field.name])
|
||||
|
||||
# For now, disregard m2m fields
|
||||
continue
|
||||
|
||||
if field.name not in data:
|
||||
|
||||
@@ -21,7 +21,7 @@ def item_list(request):
|
||||
"types": list(types.serialize()),
|
||||
"types_headers": header_for_table(ItemType),
|
||||
},
|
||||
"count": items.count(),
|
||||
"count": items.count() + types.count(),
|
||||
}
|
||||
)
|
||||
|
||||
@@ -44,6 +44,7 @@ def item_details(request, id):
|
||||
return JsonResponse(
|
||||
{
|
||||
"object": item.serialize(),
|
||||
"headers": header_for_table(Item),
|
||||
"parents": list(item.parents.serialize()),
|
||||
"parents_headers": header_for_table(ItemRelation),
|
||||
"children": list(item.children.serialize()),
|
||||
|
||||
@@ -3,22 +3,28 @@ from django.http import JsonResponse
|
||||
|
||||
|
||||
from app.utils.api.api_list import header_for_table
|
||||
from items.models import Property
|
||||
from items.models import LinkedProperty, Property, RelationProperty
|
||||
from items.views.base import generic_edit
|
||||
|
||||
|
||||
@login_required
|
||||
def property_list(request):
|
||||
|
||||
items = Property.objects.filter(author=request.user.setting)
|
||||
properties = Property.objects.filter(author=request.user.setting)
|
||||
linked_properties = LinkedProperty.objects.filter(author=request.user.setting)
|
||||
relation_properties = RelationProperty.objects.filter(author=request.user.setting)
|
||||
|
||||
return JsonResponse(
|
||||
{
|
||||
"result": {
|
||||
"properties": list(items.serialize()),
|
||||
"properties": list(properties.serialize()),
|
||||
"properties_headers": header_for_table(Property),
|
||||
"linked_properties": list(linked_properties.serialize()),
|
||||
"linked_properties_headers": header_for_table(LinkedProperty),
|
||||
"relation_properties": list(relation_properties.serialize()),
|
||||
"relation_properties_headers": header_for_table(RelationProperty),
|
||||
},
|
||||
"count": items.count(),
|
||||
"count": properties.count() + linked_properties.count() + relation_properties.count(),
|
||||
}
|
||||
)
|
||||
|
||||
@@ -28,3 +34,17 @@ def property_edit(request, id=None):
|
||||
"""Create/edit property view."""
|
||||
|
||||
return generic_edit(Property, request, id)
|
||||
|
||||
|
||||
@login_required
|
||||
def linked_property_edit(request, id=None):
|
||||
"""Create/edit linked property view."""
|
||||
|
||||
return generic_edit(LinkedProperty, request, id)
|
||||
|
||||
|
||||
@login_required
|
||||
def relation_property_edit(request, id=None):
|
||||
"""Create/edit relation property view."""
|
||||
|
||||
return generic_edit(RelationProperty, request, id)
|
||||
|
||||
@@ -4,6 +4,23 @@ from django.http import JsonResponse
|
||||
|
||||
from app.utils.api.api_list import header_for_table
|
||||
from items.models import Item, ItemRelation, Property, RelationProperty
|
||||
from items.views.base import generic_edit
|
||||
|
||||
|
||||
@login_required
|
||||
def relation_list(request):
|
||||
|
||||
relations = ItemRelation.objects.filter(author=request.user.setting)
|
||||
|
||||
return JsonResponse(
|
||||
{
|
||||
"result": {
|
||||
"relations": list(relations.serialize()),
|
||||
"headers": header_for_table(ItemRelation),
|
||||
},
|
||||
"count": relations.count(),
|
||||
}
|
||||
)
|
||||
|
||||
|
||||
@login_required
|
||||
@@ -27,3 +44,10 @@ def relation_details(request, id):
|
||||
"relation_properties_headers": header_for_table(RelationProperty),
|
||||
}
|
||||
)
|
||||
|
||||
|
||||
@login_required
|
||||
def relation_edit(request, id=None):
|
||||
"""Create/edit relation view."""
|
||||
|
||||
return generic_edit(ItemRelation, request, id)
|
||||
|
||||
Reference in New Issue
Block a user