1
0
forked from erp-dev/erp

fix: added external_finished_product into admin

This commit is contained in:
2026-01-15 21:02:04 +08:00
parent 554a2c4234
commit 0c24c7e7e9

View File

@@ -1,5 +1,5 @@
from django.contrib import admin from django.contrib import admin
from .models import Shipment, SalesItem from .models import ExternalFinishedProduct, Shipment, SalesItem
class SalesItemInline(admin.TabularInline): class SalesItemInline(admin.TabularInline):
@@ -9,14 +9,21 @@ class SalesItemInline(admin.TabularInline):
readonly_fields = ['created_by'] readonly_fields = ['created_by']
class ExternalFinishedProductInline(admin.TabularInline):
model = ExternalFinishedProduct
extra = 1
fields = ['style_name', 'num_of_rolls', 'remark', 'created_by', 'created_at']
readonly_fields = ['created_by', 'created_at']
@admin.register(Shipment) @admin.register(Shipment)
class ShipmentAdmin(admin.ModelAdmin): class ShipmentAdmin(admin.ModelAdmin):
list_display = ['id', 'customer', 'shipment_date', 'items_count', 'created_by', 'created_at'] list_display = ['id', 'merchant', 'customer', 'shipment_date', 'status', 'external_id', 'items_count', 'created_by', 'created_at']
list_filter = ['shipment_date', 'created_at'] list_filter = ['merchant', 'status', 'shipment_date', 'created_at']
search_fields = ['customer__name', 'remark'] search_fields = ['customer__name', 'remark', 'external_id']
readonly_fields = ['created_at', 'updated_at', 'created_by'] readonly_fields = ['created_at', 'updated_at', 'created_by']
date_hierarchy = 'shipment_date' date_hierarchy = 'shipment_date'
inlines = [SalesItemInline] inlines = [SalesItemInline, ExternalFinishedProductInline]
def items_count(self, obj): def items_count(self, obj):
return obj.items.count() return obj.items.count()
@@ -30,7 +37,7 @@ class ShipmentAdmin(admin.ModelAdmin):
def save_formset(self, request, form, formset, change): def save_formset(self, request, form, formset, change):
instances = formset.save(commit=False) instances = formset.save(commit=False)
for instance in instances: for instance in instances:
if isinstance(instance, SalesItem) and not instance.pk: if isinstance(instance, (SalesItem, ExternalFinishedProduct)) and not instance.pk:
instance.created_by = request.user instance.created_by = request.user
instance.save() instance.save()
formset.save_m2m() formset.save_m2m()
@@ -54,3 +61,17 @@ class SalesItemAdmin(admin.ModelAdmin):
if not change: if not change:
obj.created_by = request.user obj.created_by = request.user
super().save_model(request, obj, form, change) super().save_model(request, obj, form, change)
@admin.register(ExternalFinishedProduct)
class ExternalFinishedProductAdmin(admin.ModelAdmin):
list_display = ['id', 'shipment', 'style_name', 'num_of_rolls', 'remark', 'created_by', 'created_at']
list_filter = ['created_at', ('shipment', admin.EmptyFieldListFilter)]
search_fields = ['style_name', 'remark', 'shipment__external_id', 'shipment__customer__name']
readonly_fields = ['created_at', 'updated_at', 'created_by']
raw_id_fields = ['shipment']
def save_model(self, request, obj, form, change):
if not change:
obj.created_by = request.user
super().save_model(request, obj, form, change)