store room owner

This commit is contained in:
javad committed 2026-07-05 14:32:01 +03:30
1 parent c5e9b1d18a
commit 489fda27d3
6 files changed
+140 -12

No files matched your search

+27 -2
View File
@@ -6,7 +6,6 @@ from .models import *
admin.site.register(Customer)
admin.site.register(PhoneNumber)
admin.site.register(StoreRoom)
admin.site.register(ProductCategory)
admin.site.register(Product)
admin.site.register(ProductInStore)
@@ -49,4 +48,30 @@ class StoreTransferRequestAdmin(admin.ModelAdmin):
search_fields = ['id', 'desc', 'product__product_name', 'requester__username']
# ۶. غیرقابل ادیت کردن فیلدهای حساس مالی در پنل ادمین (اختیاری اما برای Enterprise الزامی است)
readonly_fields = ['created_at', 'updated_at']
readonly_fields = ['created_at', 'updated_at']
class StoreRoomOwnerInline(admin.TabularInline):
"""
این کلاس باعث می‌شود مالکین انبار به صورت یک جدول کوچک
در داخل همان صفحه مدیریت انبار نمایش داده شوند.
"""
model = StoreRoomOwner
extra = 1 # تعداد ردیف‌های خالی برای افزودن مالک جدید
verbose_name = "مالک انبار"
verbose_name_plural = "مالکین انبار"
@admin.register(StoreRoom)
class StoreRoomAdmin(admin.ModelAdmin):
list_display = ('store_name', 'get_owners_count')
search_fields = ('store_name',)
# فیلد user یک M2M معمولی است، پس filter_horizontal روی آن عالی کار می‌کند
filter_horizontal = ('user',)
# فیلد owners چون جدول واسط دارد، باید از طریق Inline مدیریت شود
inlines = [StoreRoomOwnerInline]
def get_owners_count(self, obj):
"""نمایش تعداد مالکین در لیست اصلی انبارها"""
return obj.owners.count()
get_owners_count.short_description = "تعداد مالکین"