update product and shop admin permissions

This commit is contained in:
Parsa Nazer
2026-01-04 21:29:50 +03:30
parent 14f51dd2f3
commit 031beec97f
3 changed files with 39 additions and 16 deletions
+14 -14
View File
@@ -62,25 +62,25 @@ class ShopModelAdmin(ModelAdmin, ImportExportModelAdmin):
}
}
# def get_queryset(self, request):
def get_queryset(self, request):
# if request.user.is_superuser:
# return ShopModel.objects.all()
if request.user.is_superuser:
return ShopModel.objects.all()
# if not hasattr(request.user, 'shop'):
# return ShopModel.objects.none()
if not hasattr(request.user, 'shop'):
return ShopModel.objects.none()
# queryset = ShopModel.objects.filter(id=request.user.shop.id)
# return queryset
queryset = ShopModel.objects.filter(id=request.user.shop.id)
return queryset
# def has_view_permission(self, request, obj=None):
# if request.user.is_superuser or obj == None:
# return True
def has_view_permission(self, request, obj=None):
if request.user.is_superuser or obj == None:
return True
# if not hasattr(request.user, 'shop'):
# return False
if not hasattr(request.user, 'shop'):
return False
# return request.user.shop == obj
return request.user.shop == obj
@@ -313,7 +313,7 @@ class ProductModelAdmin(ProductAdminPermission, ModelAdmin, ImportExportModelAdm
if request.user.is_superuser:
return ['slug', 'created_at']
else:
return ['show_in_bot', 'bot_banner', 'shop', 'created_at', 'show']
return ['show_in_bot', 'bot_banner', 'created_at', 'show', 'meta_description', 'meta_keywords', 'meta_rating', 'rating', 'view', 'slug']
def display_price(self, obj):
if obj.variants.all().first():
@@ -0,0 +1,23 @@
# Generated by Django 5.1.2 on 2026-01-04 17:59
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('product', '0066_alter_productvariant_currency_and_more'),
]
operations = [
migrations.AlterField(
model_name='productmodel',
name='image',
field=models.ImageField(null=True, upload_to='product_main/'),
),
migrations.AlterField(
model_name='productmodel',
name='related_products',
field=models.ManyToManyField(to='product.productmodel', verbose_name='محصولات مرتبط'),
),
]
+2 -2
View File
@@ -178,7 +178,7 @@ class InPackItems(models.Model):
class ProductModel(models.Model):
name = models.CharField(max_length=255, verbose_name='نام')
description = models.TextField(verbose_name='توضیحات')
image = models.ImageField(upload_to='product_main/', blank=True, null=True)
image = models.ImageField(upload_to='product_main/', null=True)
rating = models.PositiveIntegerField(default=0, verbose_name='امتیاز')
show = models.BooleanField(default=False, verbose_name='نمایش در خانه')
view = models.IntegerField(default=0, verbose_name='بازدید')
@@ -195,7 +195,7 @@ class ProductModel(models.Model):
category = models.ForeignKey(SubCategoryModel, null=True, on_delete=models.SET_NULL,
related_name='products', verbose_name='دسته بندی محصول')
related_products = models.ManyToManyField(
'self', blank=True, verbose_name='محصولات مرتبط')
'self', verbose_name='محصولات مرتبط')
shop = models.ForeignKey('account.ShopModel', on_delete=models.CASCADE,
related_name='products', verbose_name='فروشگاه', blank=True, null=True)
show_in_bot = models.BooleanField(