+ 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 store.models import Checklist, GlobalSettings, Category, PaymentMethod, Promocode, Image, Gift
|
||||
from store.utils import get_primary_key_related_model
|
||||
from poizonstore.utils import PriceField
|
||||
|
||||
|
||||
class ImageSerializer(serializers.ModelSerializer):
|
||||
|
|
@ -36,7 +37,7 @@ class CategoryChecklistSerializer(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:
|
||||
model = Category
|
||||
|
|
@ -56,6 +57,7 @@ class CategoryFullSerializer(CategorySerializer):
|
|||
|
||||
class GiftSerializer(serializers.ModelSerializer):
|
||||
image = Base64ImageField(required=False, allow_null=True)
|
||||
min_price = PriceField()
|
||||
|
||||
class Meta:
|
||||
model = Gift
|
||||
|
|
@ -79,17 +81,17 @@ class ChecklistSerializer(serializers.ModelSerializer):
|
|||
use_bonuses = serializers.BooleanField(write_only=True, default=False)
|
||||
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)
|
||||
price_yuan = serializers.DecimalField(required=False, max_digits=10, decimal_places=2)
|
||||
yuan_rate = PriceField(read_only=True)
|
||||
price_yuan = PriceField(required=False)
|
||||
price_rub = serializers.IntegerField(read_only=True)
|
||||
|
||||
delivery_price_CN = serializers.DecimalField(read_only=True, max_digits=10, decimal_places=2)
|
||||
delivery_price_CN_RU = serializers.DecimalField(read_only=True, max_digits=10, decimal_places=2)
|
||||
delivery_price_CN = PriceField(read_only=True)
|
||||
delivery_price_CN_RU = PriceField(read_only=True)
|
||||
|
||||
full_price = serializers.IntegerField(read_only=True)
|
||||
real_price = serializers.DecimalField(required=False, allow_null=True, max_digits=10, decimal_places=2)
|
||||
full_price = PriceField(read_only=True)
|
||||
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)
|
||||
|
||||
|
|
@ -237,15 +239,16 @@ class ClientUpdateChecklistSerializer(ClientChecklistSerializerMixin, ChecklistS
|
|||
|
||||
|
||||
class GlobalSettingsSerializer(serializers.ModelSerializer):
|
||||
currency = serializers.DecimalField(source='full_yuan_rate', read_only=True, max_digits=10, decimal_places=2)
|
||||
yuan_rate_last_updated = serializers.DateTimeField(read_only=True)
|
||||
chinadelivery = serializers.DecimalField(source='delivery_price_CN', max_digits=10, decimal_places=2)
|
||||
commission = serializers.DecimalField(source='commission_rub', max_digits=10, decimal_places=2)
|
||||
yuan_rate = PriceField(source='full_yuan_rate', read_only=True)
|
||||
yuan_rate_commission = PriceField()
|
||||
chinadelivery = PriceField(source='delivery_price_CN')
|
||||
commission = PriceField(source='commission_rub')
|
||||
pickup = serializers.CharField(source='pickup_address')
|
||||
|
||||
class Meta:
|
||||
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):
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user