123456789101112131415161718192021222324252627282930313233343536373839 |
- # coding=utf-8
- from rest_framework import serializers
- from apps.WechatApplet.models import WechatApplet
- from .models import *
- class DeviceSerializer(serializers.ModelSerializer):
- create_user_text = serializers.CharField(source='create_user.employee.name', read_only=True)
- status_text = serializers.CharField(source='get_status_display', read_only=True)
- repaire_user_text = serializers.SerializerMethodField()
- def get_repaire_user_text(self, obj):
- if obj.status == DeviceModel.FINE:
- return ''
- from apps.tenant.repair_order.models import RepairOrder
- order = RepairOrder.objects.filter(device=obj, status__in=[RepairOrder.DISPATCH,RepairOrder.HANG_UP,
- RepairOrder.TURN_EMPLOYEE,RepairOrder.CANCEL_HANG_UP,]).first()
- if order:
- return order.repair_users.get_name()
- else:
- return ''
- class Meta:
- model = DeviceModel
- fields = '__all__'
- def create(self, validated_data):
- validated_data['create_user'] = self.context['request'].user
- validated_data['tenant'] = self.context['request'].user.employee.tenant
- instance = super(DeviceSerializer, self).create(validated_data)
- id = instance.id
- applet = WechatApplet.objects.filter(authorizer_appid=settings.WEAPP['appid']).first()
- filename = applet.getDeviceCode(id, instance.tenant.company_no)
- instance.wxapp_img = "{0}{1}".format(settings.MEDIA_URL,filename)
- instance.save()
- return instance
|