From 2f23c5104d58681df08979eb83440d652aa9afe2 Mon Sep 17 00:00:00 2001 From: Mojtaba-z Date: Sat, 28 Jun 2025 10:30:48 +0330 Subject: [PATCH] calculate remaining quota weight - product_id - change role permission serializer --- apps/authorization/api/v1/serializers.py | 2 +- apps/product/apps.py | 3 +++ apps/product/models.py | 12 ++++++++++++ 3 files changed, 16 insertions(+), 1 deletion(-) diff --git a/apps/authorization/api/v1/serializers.py b/apps/authorization/api/v1/serializers.py index e332f6d..33fd777 100644 --- a/apps/authorization/api/v1/serializers.py +++ b/apps/authorization/api/v1/serializers.py @@ -96,7 +96,7 @@ class RoleSerializer(serializers.ModelSerializer): representation['type'] = auth_serializer.OrganizationTypeSerializer(instance.type).data if instance.permissions: # noqa permissions = instance.permissions.filter(is_active=True) - representation['permissions'] = PermissionSerializer().permissions_structure_output(permissions) + representation['permissions'] = PermissionSerializer(permissions, many=True).data return representation diff --git a/apps/product/apps.py b/apps/product/apps.py index cb72851..427f54b 100644 --- a/apps/product/apps.py +++ b/apps/product/apps.py @@ -4,3 +4,6 @@ from django.apps import AppConfig class ProductConfig(AppConfig): default_auto_field = 'django.db.models.BigAutoField' name = 'apps.product' + + def ready(self): + import apps.product.signals diff --git a/apps/product/models.py b/apps/product/models.py index 6049b36..260392e 100644 --- a/apps/product/models.py +++ b/apps/product/models.py @@ -64,10 +64,22 @@ class Product(BaseModel): null=True ) + def generate_product_id(self): # noqa + """ generate id for product from 10 """ + + last = Product.objects.filter(product_id__gte=10, product_id__lte=1999).order_by('-product_id').first() + if last: + next_code = last.product_id + 1 + else: + next_code = 10 + return next_code + def __str__(self): return f'name: {self.name} - type: {self.type}' def save(self, *args, **kwargs): + if not self.product_id: + self.product_id = self.generate_product_id() # set product id super(Product, self).save(*args, **kwargs)