Ejemplo n.º 1
0
class StoreAdminSerializer(BaseSerializer):
    image = ReadOnlyField()
    bookmark = ReadOnlyField()

    class Meta:
        model = Store
        fields = '__all__'
        extra_kwargs = {'store_related_user': {'read_only': True}}

    def update(self, instance, validated_data):
        if validated_data.get('visibility_flag', None) != None:
            instance.visibility_flag = validated_data.get(
                'visibility_flag', None)
        elif validated_data.get('active_flag', None) != None:
            instance.active_flag = validated_data.get('active_flag', None)
            instance.is_new = False
        instance.title = validated_data.get('title', instance.title)
        instance.description = validated_data.get('description',
                                                  instance.description)
        instance.store_related_category = validated_data.get(
            'store_related_category', instance.store_related_category)
        instance.store_related_owner = validated_data.get(
            'store_related_owner', instance.store_related_owner)
        instance.store_related_user = validated_data.get(
            'store_related_user', instance.store_related_user)
        instance.phone_number = validated_data.get('phone_number',
                                                   instance.phone_number)
        instance.latitude = validated_data.get('latitude', instance.latitude)
        instance.longitude = validated_data.get('longitude',
                                                instance.longitude)
        instance.address = validated_data.get('address', instance.address)
        instance.related_logo = validated_data.get('related_logo',
                                                   instance.related_logo)
        instance.save()
        return instance
Ejemplo n.º 2
0
class ProductSerializer(BaseSerializer):
    images = ReadOnlyField()
    discount = ReadOnlyField()
    price = ReadOnlyField()

    class Meta:
        model = Product
        fields = [
            'id', 'title', 'description', 'brand', 'product_related_store',
            'product_related_category', 'images', 'discount', 'price',
            'active_flag', 'visibility_flag'
        ]
        extra_kwargs = {'product_related_user': {'read_only': True}}

    def update(self, instance, validated_data):
        if validated_data.get('visibility_flag', None) != None:
            instance.visibility_flag = validated_data.get(
                'visibility_flag', instance.visibility_flag)
            instance.save()
            return instance
        elif validated_data.get('active_flag', None) != None:
            instance.active_flag = validated_data.get('active_flag',
                                                      instance.active_flag)
            instance.save()
            return instance
        else:
            if instance.related_parent != None:
                model = Product.objects.filter(id=instance.id)
            elif Product.objects.filter(related_parent_id=instance.id,
                                        delete_flag=False).count() > 0:
                model = Product.objects.filter(related_parent_id=instance.id,
                                               delete_flag=False)[0]
            else:
                model = Product()
            model.title = validated_data.get('title', instance.title)
            model.description = validated_data.get('description',
                                                   instance.description)
            model.product_related_store = validated_data.get(
                'product_related_store', instance.product_related_store)
            model.brand = validated_data.get('brand', instance.brand)
            model.product_related_category = validated_data.get(
                'product_related_category', instance.product_related_category)
            model.product_related_user = validated_data.get(
                'product_related_user', instance.product_related_user)
            model.made_in_iran = True
            model.related_parent_id = instance.id
            model.save()
            # Set new price
            """ if instance.price != validated_data.get('price', instance.price):
                price_instance = ProductPrice()
                if instance.related_parent != None:
                    price_instance.product_price_related_product = instance.related_parent
                else:
                    price_instance.product_price_related_product = instance
                price_instance.amount = validated_data.get('price', instance.price)
                price_instance.save() """

            return model
Ejemplo n.º 3
0
class ProductAdminSerializer(BaseSerializer):
    images = ReadOnlyField()
    discount = ReadOnlyField()
    price = ReadOnlyField()

    class Meta:
        model = Product
        fields = '__all__'
        extra_kwargs = {'product_related_user': {'read_only': True}}

    def update(self, instance, validated_data):
        if validated_data.get('visibility_flag', None) != None:
            instance.visibility_flag = validated_data.get(
                'visibility_flag', instance.visibility_flag)
        elif validated_data.get('active_flag', None) != None:
            instance.active_flag = validated_data.get('active_flag',
                                                      instance.active_flag)
        instance.title = validated_data.get('title', instance.title)
        instance.description = validated_data.get('description',
                                                  instance.description)
        instance.product_related_store = validated_data.get(
            'product_related_store', instance.product_related_store)
        instance.brand = validated_data.get('brand', instance.brand)
        instance.product_related_category = validated_data.get(
            'product_related_category', instance.product_related_category)
        instance.product_related_user = validated_data.get(
            'product_related_user', instance.product_related_user)
        instance.made_in_iran = True
        instance.save()

        print(validated_data)

        if instance.price != validated_data.get('price', instance.price):
            print("OK")
            price_instance = ProductPrice()
            if instance.related_parent != None:
                price_instance.product_price_related_product = instance.related_parent
            else:
                price_instance.product_price_related_product = instance
            price_instance.amount = validated_data.get('price', instance.price)
            price_instance.save()

        if instance.discount.value != validated_data.get(
                'discount', instance.discount):
            discount_instance = Discount()
            if instance.related_parent != None:
                discount_instance.discount_related_parent = instance.related_parent
            else:
                discount_instance.discount_related_parent = instance
            discount_instance.discount_value = validated_data.get(
                'discount', instance.discount.value)
            discount_instance.save()

        return instance
Ejemplo n.º 4
0
class ProductListSerializer(BaseSerializer):
    images = ReadOnlyField()
    discount = ReadOnlyField()
    price = ReadOnlyField()
    product_related_category = ProductCategorySerializer()
    product_related_store = StoreSerializer()

    class Meta:
        model = Product
        fields = [
            'id', 'title', 'description', 'brand', 'product_related_store',
            'product_related_category', 'images', 'discount', 'price',
            'active_flag', 'visibility_flag'
        ]
Ejemplo n.º 5
0
class StoreSerializer(BaseSerializer):
    image = ReadOnlyField()
    bookmark = ReadOnlyField()

    class Meta:
        model = Store
        fields = '__all__'
        extra_kwargs = {'store_related_user': {'read_only': True}}

    def update(self, instance, validated_data):
        if validated_data.get('visibility_flag', None) != None:
            instance.visibility_flag = validated_data.get(
                'visibility_flag', None)
            instance.save()
            return instance
        elif validated_data.get('active_flag', None) != None:
            instance.active_flag = validated_data.get('active_flag', None)
            instance.is_new = False
            instance.save()
            return instance
        else:
            if Store.objects.filter(related_parent_id=instance.id,
                                    delete_flag=False).count() > 0:
                model = Store.objects.filter(related_parent_id=instance.id,
                                             delete_flag=False)[0]
            else:
                model = Store()
            model.title = validated_data.get('title', instance.title)
            model.description = validated_data.get('description',
                                                   instance.description)
            model.store_related_category = validated_data.get(
                'store_related_category', instance.store_related_category)
            model.store_related_owner = validated_data.get(
                'store_related_owner', instance.store_related_owner)
            model.store_related_user = validated_data.get(
                'store_related_user', instance.store_related_user)
            model.phone_number = validated_data.get('phone_number',
                                                    instance.phone_number)
            model.latitude = validated_data.get('latitude', instance.latitude)
            model.longitude = validated_data.get('longitude',
                                                 instance.longitude)
            model.address = validated_data.get('address', instance.address)
            model.related_logo = validated_data.get('related_logo',
                                                    instance.related_logo)
            model.related_parent_id = instance.id
            model.save()
            return model
Ejemplo n.º 6
0
class ProductAdminListSerializer(BaseSerializer):
    images = ReadOnlyField()
    discount = ReadOnlyField()
    price = ReadOnlyField()
    product_related_category = ProductCategorySerializer()
    product_related_store = StoreSerializer()
    related_parent = SerializerMethodField()

    class Meta:
        model = Product
        fields = '__all__'

    def get_related_parent(self, obj):
        if Product.objects.filter(id=obj.related_parent_id).count() > 0:
            instance = Product.objects.filter(id=obj.related_parent_id)[0]
            serializer = ProductListSerializer(instance)
            return serializer.data
        return None
Ejemplo n.º 7
0
class StoreDetailSerializer(BaseSerializer):
    store_related_category = StoreCategorySerializer()
    images = ReadOnlyField()
    store_related_owner = UserDetailSerializer()
    store_related_user = UserDetailSerializer()

    class Meta:
        model = Store
        fields = '__all__'
Ejemplo n.º 8
0
class ImportedPlaceSerializer(UserPlaceSerializer):
    iplace_uuid = ReadOnlyField(source='uuid')

    class Meta:
        model = ImportedPlace
        exclude = ('id', 'place', 'vd', 'mask', 'uplace_uuid', 'shorten_url',)

    def to_representation(self, instance):
        vd = self.vd
        if vd:
            instance.subscriber = vd
        return super(ImportedPlaceSerializer, self).to_representation(instance)
Ejemplo n.º 9
0
class StoreCategorySerializer(BaseSerializer):
    image = ReadOnlyField()

    class Meta:
        model = StoreCategory
        fields = '__all__'