Exemplo n.º 1
0
class orderSerializer(serializers.ModelSerializer):
    address = addressSerializer(many=False, read_only=True)

    class Meta:
        model = order
        fields = ('id', 'user', 'created', 'offer', 'rate', 'status',
                  'paymentType', 'paid', 'address', 'mobile', 'coupon',
                  'quantity', 'shipping', 'start', 'end')

    def create(self, validated_data):
        u = self.context['request'].user
        cp = customerProfile.objects.get(user=u)
        if cp.attachment == None:
            raise ValidationError(
                detail='Attachment not found in your account')
        street = self.context['request'].data['street']
        pincode = self.context['request'].data['pincode']
        state = self.context['request'].data['state']
        city = self.context['request'].data['city']
        a = address(street=street, city=city, pincode=pincode, state=state)
        a.save()
        o = order(**validated_data)
        o.user = u
        o.address = a
        o.save()
        return o

    def update(self, instance, validated_data):
        u = self.context['request'].user
        has_application_permission(u,
                                   ['app.ecommerce', 'app.ecommerce.orders'])
        status = validated_data['status']
        if (status == 'inProgress' and not instance.status == 'new') or (status == 'complete' and not instance.status == 'inProgress') or \
            (status == 'canceledByVendor' and not instance.status == 'new') or (status == 'canceledByCustomer' and not instance.status == 'new') or status=='new':
            raise ValidationError({'NOT_ACCEPTABLE'})
        instance.status = status
        instance.save()
        return instance
Exemplo n.º 2
0
class RelationshipSerializer(serializers.ModelSerializer):
    address = addressSerializer(many = False, read_only = True)
    class Meta:
        model = service
        fields = ('pk'  ,'name' , 'address' , 'mobile', 'logo' , 'web' )
Exemplo n.º 3
0
class customerProfileSerializer(serializers.ModelSerializer):
    address = addressSerializer(read_only=True, many=False)

    class Meta:
        model = customerProfile
        fields = ('pk', 'address', 'sendUpdates', 'user', 'mobile',
                  'attachment')
        read_only_fields = ('user', )

    def create(self, validated_data):
        u = self.context['request'].user
        street = self.context['request'].data['street']
        pincode = self.context['request'].data['pincode']
        state = self.context['request'].data['state']
        city = self.context['request'].data['city']
        su = self.context['request'].data['sendUpdates']

        cp, new = customerProfile.objects.get_or_create(user=user)
        if new:
            a = address(street=street, city=city, pincode=pincode, state=state)
            a.save()
            cp.address = a
            cp.save()
        return cp

    def update(self, instance, validated_data):
        u = self.context['request'].user
        cp = customerProfile.objects.get(user=u)
        try:
            a = cp.address
        except:
            a = address()
        if 'street' in self.context['request'].data:
            try:
                street = self.context['request'].data['street']
                pincode = self.context['request'].data['pincode']
                state = self.context['request'].data['state']
                city = self.context['request'].data['city']
            except:
                pass
            a.street = street
            a.city = city
            a.pincode = pincode
            a.state = state
        if 'lat' in self.context['request'].data:
            try:
                a.lat = self.context['request'].data['lat']
                a.lon = self.context['request'].data['lon']
            except:
                pass
        a.save()
        cp.address = a

        if 'sendUpdates' in self.context['request'].data:
            cp.sendUpdates = validated_data.pop('sendUpdates')
        if 'mobile' in self.context['request'].data:
            cp.mobile = validated_data.pop('mobile')
        if 'attachment' in self.context['request'].data:
            cp.attachment = validated_data.pop('attachment')

        cp.save()
        return cp