mirror of
https://github.com/inventree/InvenTree.git
synced 2025-06-18 13:05:42 +00:00
Details updates (#6605)
* Fix onClick behaviour for details image
* Moving items
- These are not "tables" per-se
* Refactoring for DetailsTable
* Skip hidden fields
* Cleanup table column widths
* Update part details
* Fix icons
* Add image back to part details
- Also fix onClick events
* Update stockitem details page
* Implement details page for build order
* Implement CompanyDetails page
* Implemented salesorder details
* Update SalesOrder detalis
* ReturnOrder detail
* PurchaseOrder detail page
* Cleanup build details page
* Stock location detail
* Part Category detail
* Bump API version
* Bug fixes
* Use image, not thumbnail
* Fix field copy
* Cleanup imgae hover
* Improve PartDetail
- Add more data
- Add icons
* Refactoring
- Move Details out of "tables" directory
* Remove old file
* Revert "Remove old file"
This reverts commit 6fd131f2a5
.
* Fix files
* Fix unused import
This commit is contained in:
@ -1,11 +1,17 @@
|
||||
"""InvenTree API version information."""
|
||||
|
||||
# InvenTree API version
|
||||
INVENTREE_API_VERSION = 178
|
||||
INVENTREE_API_VERSION = 179
|
||||
"""Increment this API version number whenever there is a significant change to the API that any clients need to know about."""
|
||||
|
||||
INVENTREE_API_TEXT = """
|
||||
|
||||
v179 - 2024-03-01 : https://github.com/inventree/InvenTree/pull/6605
|
||||
- Adds "subcategories" count to PartCategory serializer
|
||||
- Adds "sublocations" count to StockLocation serializer
|
||||
- Adds "image" field to PartBrief serializer
|
||||
- Adds "image" field to CompanyBrief serializer
|
||||
|
||||
v178 - 2024-02-29 : https://github.com/inventree/InvenTree/pull/6604
|
||||
- Adds "external_stock" field to the Part API endpoint
|
||||
- Adds "external_stock" field to the BomItem API endpoint
|
||||
|
@ -42,11 +42,13 @@ class CompanyBriefSerializer(InvenTreeModelSerializer):
|
||||
"""Metaclass options."""
|
||||
|
||||
model = Company
|
||||
fields = ['pk', 'url', 'name', 'description', 'image']
|
||||
fields = ['pk', 'url', 'name', 'description', 'image', 'thumbnail']
|
||||
|
||||
url = serializers.CharField(source='get_absolute_url', read_only=True)
|
||||
|
||||
image = serializers.CharField(source='get_thumbnail_url', read_only=True)
|
||||
image = InvenTreeImageSerializerField(read_only=True)
|
||||
|
||||
thumbnail = serializers.CharField(source='get_thumbnail_url', read_only=True)
|
||||
|
||||
|
||||
class AddressSerializer(InvenTreeModelSerializer):
|
||||
|
@ -74,6 +74,7 @@ class CategorySerializer(InvenTree.serializers.InvenTreeModelSerializer):
|
||||
'level',
|
||||
'parent',
|
||||
'part_count',
|
||||
'subcategories',
|
||||
'pathstring',
|
||||
'path',
|
||||
'starred',
|
||||
@ -99,13 +100,18 @@ class CategorySerializer(InvenTree.serializers.InvenTreeModelSerializer):
|
||||
def annotate_queryset(queryset):
|
||||
"""Annotate extra information to the queryset."""
|
||||
# Annotate the number of 'parts' which exist in each category (including subcategories!)
|
||||
queryset = queryset.annotate(part_count=part.filters.annotate_category_parts())
|
||||
queryset = queryset.annotate(
|
||||
part_count=part.filters.annotate_category_parts(),
|
||||
subcategories=part.filters.annotate_sub_categories(),
|
||||
)
|
||||
|
||||
return queryset
|
||||
|
||||
url = serializers.CharField(source='get_absolute_url', read_only=True)
|
||||
|
||||
part_count = serializers.IntegerField(read_only=True)
|
||||
part_count = serializers.IntegerField(read_only=True, label=_('Parts'))
|
||||
|
||||
subcategories = serializers.IntegerField(read_only=True, label=_('Subcategories'))
|
||||
|
||||
level = serializers.IntegerField(read_only=True)
|
||||
|
||||
@ -282,6 +288,7 @@ class PartBriefSerializer(InvenTree.serializers.InvenTreeModelSerializer):
|
||||
'revision',
|
||||
'full_name',
|
||||
'description',
|
||||
'image',
|
||||
'thumbnail',
|
||||
'active',
|
||||
'assembly',
|
||||
@ -307,6 +314,7 @@ class PartBriefSerializer(InvenTree.serializers.InvenTreeModelSerializer):
|
||||
self.fields.pop('pricing_min')
|
||||
self.fields.pop('pricing_max')
|
||||
|
||||
image = InvenTree.serializers.InvenTreeImageSerializerField(read_only=True)
|
||||
thumbnail = serializers.CharField(source='get_thumbnail_url', read_only=True)
|
||||
|
||||
# Pricing fields
|
||||
|
@ -886,6 +886,7 @@ class LocationSerializer(InvenTree.serializers.InvenTreeTagModelSerializer):
|
||||
'pathstring',
|
||||
'path',
|
||||
'items',
|
||||
'sublocations',
|
||||
'owner',
|
||||
'icon',
|
||||
'custom_icon',
|
||||
@ -911,13 +912,18 @@ class LocationSerializer(InvenTree.serializers.InvenTreeTagModelSerializer):
|
||||
def annotate_queryset(queryset):
|
||||
"""Annotate extra information to the queryset."""
|
||||
# Annotate the number of stock items which exist in this category (including subcategories)
|
||||
queryset = queryset.annotate(items=stock.filters.annotate_location_items())
|
||||
queryset = queryset.annotate(
|
||||
items=stock.filters.annotate_location_items(),
|
||||
sublocations=stock.filters.annotate_sub_locations(),
|
||||
)
|
||||
|
||||
return queryset
|
||||
|
||||
url = serializers.CharField(source='get_absolute_url', read_only=True)
|
||||
|
||||
items = serializers.IntegerField(read_only=True)
|
||||
items = serializers.IntegerField(read_only=True, label=_('Stock Items'))
|
||||
|
||||
sublocations = serializers.IntegerField(read_only=True, label=_('Sublocations'))
|
||||
|
||||
level = serializers.IntegerField(read_only=True)
|
||||
|
||||
|
Reference in New Issue
Block a user