+ PriceField
This commit is contained in:
parent
eb4b29dfdf
commit
285b9decd9
6
poizonstore/utils.py
Normal file
6
poizonstore/utils.py
Normal file
|
|
@ -0,0 +1,6 @@
|
||||||
|
from rest_framework.fields import DecimalField
|
||||||
|
|
||||||
|
|
||||||
|
class PriceField(DecimalField):
|
||||||
|
def __init__(self, *args, max_digits=10, decimal_places=2, min_value=0, **kwargs):
|
||||||
|
super().__init__(*args, max_digits=max_digits, decimal_places=decimal_places, min_value=min_value, **kwargs)
|
||||||
|
|
@ -6,6 +6,7 @@ from account.serializers import UserSerializer
|
||||||
from utils.exceptions import CRMException
|
from utils.exceptions import CRMException
|
||||||
from store.models import Checklist, GlobalSettings, Category, PaymentMethod, Promocode, Image, Gift
|
from store.models import Checklist, GlobalSettings, Category, PaymentMethod, Promocode, Image, Gift
|
||||||
from store.utils import get_primary_key_related_model
|
from store.utils import get_primary_key_related_model
|
||||||
|
from poizonstore.utils import PriceField
|
||||||
|
|
||||||
|
|
||||||
class ImageSerializer(serializers.ModelSerializer):
|
class ImageSerializer(serializers.ModelSerializer):
|
||||||
|
|
@ -36,7 +37,7 @@ class CategoryChecklistSerializer(serializers.ModelSerializer):
|
||||||
|
|
||||||
|
|
||||||
class CategorySerializer(serializers.ModelSerializer):
|
class CategorySerializer(serializers.ModelSerializer):
|
||||||
chinarush = serializers.DecimalField(source='delivery_price_CN_RU', max_digits=10, decimal_places=2)
|
chinarush = PriceField(source='delivery_price_CN_RU')
|
||||||
|
|
||||||
class Meta:
|
class Meta:
|
||||||
model = Category
|
model = Category
|
||||||
|
|
@ -56,6 +57,7 @@ class CategoryFullSerializer(CategorySerializer):
|
||||||
|
|
||||||
class GiftSerializer(serializers.ModelSerializer):
|
class GiftSerializer(serializers.ModelSerializer):
|
||||||
image = Base64ImageField(required=False, allow_null=True)
|
image = Base64ImageField(required=False, allow_null=True)
|
||||||
|
min_price = PriceField()
|
||||||
|
|
||||||
class Meta:
|
class Meta:
|
||||||
model = Gift
|
model = Gift
|
||||||
|
|
@ -79,17 +81,17 @@ class ChecklistSerializer(serializers.ModelSerializer):
|
||||||
use_bonuses = serializers.BooleanField(write_only=True, default=False)
|
use_bonuses = serializers.BooleanField(write_only=True, default=False)
|
||||||
gift = get_primary_key_related_model(GiftSerializer, required=False, allow_null=True)
|
gift = get_primary_key_related_model(GiftSerializer, required=False, allow_null=True)
|
||||||
|
|
||||||
yuan_rate = serializers.DecimalField(read_only=True, max_digits=10, decimal_places=2)
|
yuan_rate = PriceField(read_only=True)
|
||||||
price_yuan = serializers.DecimalField(required=False, max_digits=10, decimal_places=2)
|
price_yuan = PriceField(required=False)
|
||||||
price_rub = serializers.IntegerField(read_only=True)
|
price_rub = serializers.IntegerField(read_only=True)
|
||||||
|
|
||||||
delivery_price_CN = serializers.DecimalField(read_only=True, max_digits=10, decimal_places=2)
|
delivery_price_CN = PriceField(read_only=True)
|
||||||
delivery_price_CN_RU = serializers.DecimalField(read_only=True, max_digits=10, decimal_places=2)
|
delivery_price_CN_RU = PriceField(read_only=True)
|
||||||
|
|
||||||
full_price = serializers.IntegerField(read_only=True)
|
full_price = PriceField(read_only=True)
|
||||||
real_price = serializers.DecimalField(required=False, allow_null=True, max_digits=10, decimal_places=2)
|
real_price = PriceField(required=False, allow_null=True)
|
||||||
|
|
||||||
commission_rub = serializers.DecimalField(read_only=True, max_digits=10, decimal_places=2)
|
commission_rub = PriceField(read_only=True)
|
||||||
|
|
||||||
customer = get_primary_key_related_model(UserSerializer, required=False, allow_null=True)
|
customer = get_primary_key_related_model(UserSerializer, required=False, allow_null=True)
|
||||||
|
|
||||||
|
|
@ -237,15 +239,16 @@ class ClientUpdateChecklistSerializer(ClientChecklistSerializerMixin, ChecklistS
|
||||||
|
|
||||||
|
|
||||||
class GlobalSettingsSerializer(serializers.ModelSerializer):
|
class GlobalSettingsSerializer(serializers.ModelSerializer):
|
||||||
currency = serializers.DecimalField(source='full_yuan_rate', read_only=True, max_digits=10, decimal_places=2)
|
yuan_rate = PriceField(source='full_yuan_rate', read_only=True)
|
||||||
yuan_rate_last_updated = serializers.DateTimeField(read_only=True)
|
yuan_rate_commission = PriceField()
|
||||||
chinadelivery = serializers.DecimalField(source='delivery_price_CN', max_digits=10, decimal_places=2)
|
chinadelivery = PriceField(source='delivery_price_CN')
|
||||||
commission = serializers.DecimalField(source='commission_rub', max_digits=10, decimal_places=2)
|
commission = PriceField(source='commission_rub')
|
||||||
pickup = serializers.CharField(source='pickup_address')
|
pickup = serializers.CharField(source='pickup_address')
|
||||||
|
|
||||||
class Meta:
|
class Meta:
|
||||||
model = GlobalSettings
|
model = GlobalSettings
|
||||||
fields = ('currency', 'yuan_rate_last_updated', 'yuan_rate_commission', 'commission', 'chinadelivery', 'pickup', 'time_to_buy')
|
fields = ('yuan_rate', 'yuan_rate_last_updated', 'yuan_rate_commission', 'commission', 'chinadelivery', 'pickup', 'time_to_buy')
|
||||||
|
read_only_fields = ('yuan_rate_last_updated',)
|
||||||
|
|
||||||
|
|
||||||
class AnonymousGlobalSettingsSerializer(GlobalSettingsSerializer):
|
class AnonymousGlobalSettingsSerializer(GlobalSettingsSerializer):
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue
Block a user