notification system deployment - v2

This commit is contained in:
2025-10-06 14:02:12 +03:30
parent 7fad8b58b9
commit 02d7d40094
8 changed files with 86 additions and 11 deletions

View File

@@ -1,3 +1,4 @@
from apps.notification.models import Notification
from apps.product.web.api.v1.serializers import quota_distribution_serializers as distribution_serializers
from apps.core.mixins.soft_delete_mixin import SoftDeleteMixin
from apps.core.mixins.search_mixin import DynamicSearchMixin
@@ -49,6 +50,7 @@ class QuotaDistributionViewSet(SoftDeleteMixin, viewsets.ModelViewSet, DynamicSe
def create(self, request, *args, **kwargs):
""" create distribution for organizations users """
organization = get_organization_by_user(request.user)
# get distributed assigner user
try:
assigner_user = product_models.UserRelations.objects.filter(
@@ -60,8 +62,16 @@ class QuotaDistributionViewSet(SoftDeleteMixin, viewsets.ModelViewSet, DynamicSe
request.data.update({'assigner_organization': assigner_user.organization.id})
serializer = self.serializer_class(data=request.data)
if serializer.is_valid():
serializer.save()
distribution = serializer.save()
# create notification for organization on pos device
Notification.objects.create(
organization=organization,
title=f" {distribution.quota.quota_id} توزیع جدید به شما از سهمیه با کد ", # noqa
message=f' مقدار {distribution.weight} کیلوگرم' # noqa
f' از سهمیه با کد {distribution.quota.quota_id} به شما توزیع شده است ', # noqa
type='inventory',
)
return Response(serializer.data, status=status.HTTP_201_CREATED)
return Response(serializer.errors, status=status.HTTP_403_FORBIDDEN)