select_for_update to quota_id & add allowed cors origin new arg

This commit is contained in:
2025-10-18 16:18:00 +03:30
parent c5567596a6
commit 1148a2cb1c
6 changed files with 52 additions and 41 deletions

View File

@@ -13,7 +13,9 @@ DB_PASSWORD=pfLIVXupbDetvFMt2gUvxLXUL9b4HIOHaPcKXsBEZ1i8zl0iLUjmhUfXlGfJKcTV
ENV RUNNING_IN_DOCKER=1
CORS_ALLOWED_ORIGINS=http://localhost:8080,http://127.0.0.1:8080,http://127.0.0.1:3000,http://localhost:3000,http://192.168.88.130:3000,https://rasadyar.net,https://rasaddam-front.liara.run,https://dam.rasadyar.net,https://api.dam.rasadyar.com
CORS_ALLOWED_ORIGINS=http://localhost:8080,http://127.0.0.1:8080,http://127.0.0.1:3000,http://localhost:3000,http://192.168.88.130:3000,https://rasadyar.net,https://rasaddam-front.liara.run,https://dam.rasadyar.net,https://dam.rasadyar.com,https://api.dam.rasadyar.com
REDIS_URL=rediss://default:wHM2fSW8EXtsoTjHxLZyyaRsD8IJm4tOU108252rizfmUYrp709PuCLUhr9mmYDK@31.7.78.133:14353/0
CELERY_BROKER_URL=rediss://default:wHM2fSW8EXtsoTjHxLZyyaRsD8IJm4tOU108252rizfmUYrp709PuCLUhr9mmYDK@31.7.78.133:14353/0
CELERY_RESULT_BACKEND=rediss://default:wHM2fSW8EXtsoTjHxLZyyaRsD8IJm4tOU108252rizfmUYrp709PuCLUhr9mmYDK@31.7.78.133:14353/0

View File

@@ -15,6 +15,8 @@ ENV RUNNING_IN_DOCKER=
CORS_ALLOWED_ORIGINS=http://localhost:8080,http://127.0.0.1:8080,http://127.0.0.1:3000,http://localhost:3000,http://192.168.88.130:3000,https://rasadyar.net,https://rasaddam-front.liara.run,https://dam.rasadyar.net,https://api.dam.rasadyar.com
REDIS_URL=rediss://default:wHM2fSW8EXtsoTjHxLZyyaRsD8IJm4tOU108252rizfmUYrp709PuCLUhr9mmYDK@31.7.78.133:14353/0
CELERY_BROKER_URL=rediss://default:wHM2fSW8EXtsoTjHxLZyyaRsD8IJm4tOU108252rizfmUYrp709PuCLUhr9mmYDK@31.7.78.133:14353/0
CELERY_RESULT_BACKEND=rediss://default:wHM2fSW8EXtsoTjHxLZyyaRsD8IJm4tOU108252rizfmUYrp709PuCLUhr9mmYDK@31.7.78.133:14353/0
CELERY_CACHE_BACKEND=default

5
.idea/codeStyles/codeStyleConfig.xml generated Normal file
View File

@@ -0,0 +1,5 @@
<component name="ProjectCodeStyleConfiguration">
<state>
<option name="PREFERRED_PROJECT_CODE_STYLE" value="Default" />
</state>
</component>

View File

@@ -9,12 +9,13 @@ https://docs.djangoproject.com/en/5.2/topics/settings/
For the full list of settings and their values, see
https://docs.djangoproject.com/en/5.2/ref/settings/
"""
import os
import os.path
from datetime import timedelta
from pathlib import Path
import os
from dotenv import load_dotenv
from django.conf import settings
from dotenv import load_dotenv
# Build paths inside the project like this: BASE_DIR / 'subdir'.
BASE_DIR = Path(__file__).resolve().parent.parent
@@ -235,7 +236,7 @@ SIMPLE_JWT = {
CACHES = {
"default": {
"BACKEND": "django_redis.cache.RedisCache",
"LOCATION": "redis://:ydnW4hwzuDRYcTX3FWCHgQ1f@apo.liara.cloud:33740/0",
"LOCATION": os.environ.get("REDIS_URL"),
"OPTIONS": {
"CLIENT_CLASS": "django_redis.client.DefaultClient",
},
@@ -251,7 +252,7 @@ CHANNEL_LAYERS = {
"default": {
"BACKEND": "channels_redis.core.RedisChannelLayer",
"CONFIG": {
"hosts": [("redis://:ydnW4hwzuDRYcTX3FWCHgQ1f@apo.liara.cloud:33740/0")], # noqa
"hosts": [(os.environ.get("REDIS_URL"))], # noqa
},
},
}

View File

@@ -1,13 +1,16 @@
from apps.authentication.models import OrganizationType, Organization
from datetime import datetime
import jdatetime
from django.contrib.postgres.fields import ArrayField
from django.db import models
from django.db import transaction
from simple_history.models import HistoricalRecords
from apps.authentication.models import OrganizationType, Organization
from apps.authorization.models import UserRelations
from apps.livestock.models import LiveStockType
from apps.core.models import BaseModel
from apps.herd.models import Rancher
from datetime import datetime
from django.db import models
import jdatetime
from apps.livestock.models import LiveStockType
class LivestockGroup(models.TextChoices):
@@ -406,7 +409,11 @@ class Quota(BaseModel):
def generate_quota_id(self): # noqa
""" generate id for quota from 1001 """
last = Quota.objects.filter(quota_id__gte=1001, quota_id__lte=1999).order_by('-quota_id').first()
with transaction.atomic():
last = Quota.objects.filter(
quota_id__gte=10001,
quota_id__lte=19999
).select_for_update().order_by('-quota_id').first()
if last:
next_code = last.quota_id + 1
else:

View File

@@ -1,38 +1,30 @@
from django.db import models
from django.db.models import Q
from django.db.transaction import atomic
from rest_framework import serializers
from apps.herd.models import Rancher
from apps.herd.pos.api.v1.serializers import RancherSerializer
from apps.herd.services.services import get_rancher_statistics, rancher_quota_weight
from apps.pos_device.models import POSFreeProducts
from apps.pos_device.pos.api.v1.serializers.device import DeviceSerializer
from apps.pos_device.services.services import pos_organizations_sharing_information
from apps.product.exceptions import DistributionWeightException
from apps.product.models import (
QuotaDistribution,
Product
)
from apps.product.services.services import (
quota_live_stock_allocation_info,
quota_incentive_plans_info,
quota_brokers_value,
quota_attribute_value
)
from apps.pos_device.services.services import pos_organizations_sharing_information
from apps.warehouse import models as warehouse_models
from apps.warehouse.services.quota_usage_services import QuotaUsageService
from apps.pos_device.pos.api.v1.serializers.device import DeviceSerializer
from apps.product.exceptions import DistributionWeightException
from apps.pos_device.models import POSFreeProducts
from apps.warehouse.services.services import (
create_extra_sale,
create_pre_sale
)
from apps.herd.pos.api.v1.serializers import RancherSerializer
from apps.product.models import (
QuotaDistribution,
Product,
QuotaUsage,
IncentivePlan
)
from apps.warehouse import models as warehouse_models
from apps.livestock.models import LiveStockType
from django.db.models.signals import post_save
from apps.core.models import SystemConfig
from django.db.transaction import atomic
from apps.warehouse.exceptions import (
TotalInventorySaleException
)
from rest_framework import serializers
from apps.herd.models import Rancher
from django.db.models import Q
from django.db import models
class InventoryEntrySerializer(serializers.ModelSerializer):
@@ -66,6 +58,7 @@ class InventoryEntrySerializer(serializers.ModelSerializer):
'sale_unit': instance.distribution.quota.sale_unit.unit,
'id': instance.distribution.id
}
representation['quota'] = {
'quota_identity': instance.distribution.quota.quota_id,
'quota_weight': instance.distribution.quota.quota_weight,
@@ -74,6 +67,7 @@ class InventoryEntrySerializer(serializers.ModelSerializer):
),
'quota_incentive_plans': quota_incentive_plans_info(instance.distribution.quota)
}
representation['product'] = {
'image': instance.distribution.quota.product.img,
'name': instance.distribution.quota.product.name,