2
0
mirror of https://github.com/inventree/InvenTree.git synced 2025-06-19 13:35:40 +00:00

first working example

This commit is contained in:
Matthias
2021-12-06 22:35:14 +01:00
parent de4d057b93
commit 70939a0cf9
6 changed files with 108 additions and 0 deletions

View File

@ -239,6 +239,32 @@ class CategoryParameterList(generics.ListAPIView):
return queryset
class CategoryTree(generics.ListAPIView):
""" API endpoint for accessing a list of PartCategory objects ready for rendering a jstree.
"""
queryset = PartCategory.objects.all()
serializer_class = part_serializers.CategoryTree
def filter_queryset(self, queryset):
"""
"""
queryset = super().filter_queryset(queryset)
params = self.request.query_params
cat_id = params.get('id', None)
if cat_id in (None, '', '#', ):
queryset = queryset.filter(parent=None)
else:
queryset = queryset.filter(parent_id=cat_id)
return queryset
def get(self, request, *args, **kwargs):
return super().get(request, *args, **kwargs)
class PartSalePriceList(generics.ListCreateAPIView):
"""
API endpoint for list view of PartSalePriceBreak model
@ -1515,6 +1541,7 @@ part_api_urls = [
# Base URL for PartCategory API endpoints
url(r'^category/', include([
url(r'^tree/(?P<slug>[-\w]+)/', CategoryTree.as_view(), name='api-part-category-tree'),
url(r'^parameters/', CategoryParameterList.as_view(), name='api-part-category-parameter-list'),
url(r'^(?P<pk>\d+)/?', CategoryDetail.as_view(), name='api-part-category-detail'),

View File

@ -70,6 +70,39 @@ class CategorySerializer(InvenTreeModelSerializer):
]
class CategoryTree(InvenTreeModelSerializer):
""" Serializer for PartCategory """
id = serializers.IntegerField(source='pk', read_only=True)
text = serializers.CharField(source='name', read_only=True)
parent = serializers.SerializerMethodField()
children = serializers.SerializerMethodField()
a_attr = serializers.SerializerMethodField()
def get_parent(self, obj):
return obj.parent.pk if obj.parent else '#'
def get_children(self, obj):
return True if obj.has_children else False
def get_a_attr(self, obj):
return {'href': obj.get_absolute_url()}
class Meta:
model = PartCategory
fields = [
'id',
'text',
'parent',
'children',
'a_attr',
]
class PartAttachmentSerializer(InvenTreeAttachmentSerializer):
"""
Serializer for the PartAttachment class

View File

@ -6,6 +6,10 @@
{% include 'part/category_sidebar.html' %}
{% endblock %}
{% block sidetree %}
<div id="tree"></div>
{% endblock %}
{% block heading %}
{% if category %}
{% trans "Part Category" %}: {{ category.name }}
@ -240,6 +244,7 @@
{% endif %}
enableSidebar('category');
enableSidetree('category');
loadPartCategoryTable(
$('#subcategory-table'), {

View File

@ -9,6 +9,10 @@
{% include 'part/part_sidebar.html' %}
{% endblock %}
{% block sidetree %}
<div id="tree"></div>
{% endblock %}
{% block page_content %}
<div class='panel panel-hidden' id='panel-part-stock'>
@ -1061,5 +1065,6 @@
{% endif %}
enableSidebar('part');
enableSidetree('part');
{% endblock %}