Нет описания

models.py 6.2KB

    # -*- coding: utf-8 -*- from django.db import models from django.utils.translation import ugettext_lazy as _ from django_models_ext import BaseModelMixin from jsonfield import JSONField from TimeConvert import TimeConvert as tc from mch.models import ModelInfo class MaintenacePointInfo(BaseModelMixin): name = models.CharField(_(u'name'), max_length=255, blank=True, null=True, help_text=u'名称') province = models.CharField(_(u'province'), max_length=255, blank=True, null=True, help_text=u'省份') location = models.CharField(_(u'location'), max_length=255, blank=True, null=True, help_text=u'地址') postcode = models.CharField(_(u'postcode'), max_length=255, blank=True, null=True, help_text=u'邮政编码') class Meta: verbose_name = _(u'维修点信息') verbose_name_plural = _(u'维修点信息') def __unicode__(self): return '%d' % self.pk @property def data(self): return { 'id': self.pk, 'name': self.name, 'province': self.province, 'location': self.location, 'postcode': self.postcode, } class ExpressCompanyInfo(BaseModelMixin): name = models.CharField(_(u'name'), max_length=255, blank=True, null=True, help_text=u'名称') com = models.CharField(_(u'com'), max_length=255, blank=True, null=True, help_text=u'编码') class Meta: verbose_name = _(u'快递公司信息') verbose_name_plural = _(u'快递公司信息') def __unicode__(self): return '%d' % self.pk @property def data(self): return { 'id': self.pk, 'name': self.name, 'com': self.com, } class MaintenaceInfo(BaseModelMixin): user_id = models.CharField(_(u'user_id'), max_length=32, blank=True, null=True, help_text=u'用户唯一标识', db_index=True) name = models.CharField(_(u'name'), max_length=255, blank=True, null=True, help_text=u'姓名') phone = models.CharField(_(u'phone'), max_length=11, blank=True, null=True, help_text=u'电话') address = models.CharField(_(u'address'), max_length=255, blank=True, null=True, help_text=u'地址') log_id = models.CharField(_(u'log_id'), max_length=255, blank=True, null=True, help_text=u'用户提交列表的唯一标识') model_id = models.CharField(_(u'model_id'), max_length=32, blank=True, null=True, help_text=u'型号唯一标识', db_index=True) sn = models.CharField(_(u'sn'), max_length=32, blank=True, null=True, help_text=u'序列号', db_index=True) desc = models.TextField(_(u'desc'), blank=True, null=True, help_text=u'故障描述') point_id = models.CharField(_(u'point_id'), max_length=32, blank=True, null=True, help_text=u'维修点唯一标识', db_index=True) point_name = models.CharField(_(u'point_name'), max_length=255, blank=True, null=True, help_text=u'维修点名称') express_name = models.CharField(_(u'express_name'), max_length=255, blank=True, null=True, help_text=u'快递公司') express_com = models.CharField(_(u'express_com'), max_length=255, blank=True, null=True, help_text=u'快递编码') tracking_number = models.CharField(_(u'tracking_number'), max_length=255, blank=True, null=True, help_text=u'快递单号') tracking_info = JSONField(_(u'tracking_info'), blank=True, null=True, default={}, help_text=u'快递信息') tracking_signed = models.BooleanField(_(u'tracking_signed'), default=False, help_text=u'快递是否已签收') back_express_name = models.CharField(_(u'back_express_name'), max_length=255, blank=True, null=True, help_text=u'寄回快递公司') back_express_com = models.CharField(_(u'back_express_com'), max_length=255, blank=True, null=True, help_text=u'寄回快递编码') back_tracking_number = models.CharField(_(u'back_tracking_number'), max_length=255, blank=True, null=True, help_text=u'寄回快递单号') back_tracking_info = JSONField(_(u'back_tracking_info'), blank=True, null=True, default={}, help_text=u'寄回快递信息') back_tracking_signed = models.BooleanField(_(u'back_tracking_signed'), default=False, help_text=u'寄回快递是否已签收') # 寄出运送中、已签收修理中、已修复寄回、寄回签收 maintenance_status = models.CharField(_(u'maintenance_status'), max_length=8, default=u'寄出运送中', help_text=u'维修状态') maintenance_status_at = JSONField(_(u'maintenance_status_at'), blank=True, null=True, default={}, help_text=u'维修状态变更时间') class Meta: verbose_name = _(u'维修信息') verbose_name_plural = _(u'维修信息') def __unicode__(self): return '%d' % self.pk @property def data(self): try: model = ModelInfo.objects.get(model_id=self.model_id, status=True) except ModelInfo.DoesNotExist: model = None return { 'maintenance_id': self.pk, 'user_id': self.user_id, 'name': self.name, 'phone': self.phone, 'address': self.address, 'model_id': self.model_id, 'model_name': model.model_name if model else '', 'model_full_name': model.model_full_name if model else '', 'log_id': self.log_id, 'sn': self.sn, 'desc': self.desc, 'point_id': self.point_id, 'point_name': self.point_name, 'express_name': self.express_name, 'express_com': self.express_com, 'tracking_number': self.tracking_number, 'tracking_info': self.tracking_info, 'tracking_signed': self.tracking_signed, 'back_express_name': self.back_express_name, 'back_express_com': self.back_express_com, 'back_tracking_number': self.back_tracking_number, 'back_tracking_info': self.back_tracking_info, 'back_tracking_signed': self.back_tracking_signed, 'maintenance_status': self.maintenance_status, 'maintenance_status_at': {k: tc.local_string(utc_dt=tc.string_to_utc_datetime(v, format='%Y-%m-%dT%H:%M:%S.%fZ')) for k, v in self.maintenance_status_at.items()}, 'created_at': tc.local_string(utc_dt=self.created_at), 'updated_at': tc.local_string(utc_dt=self.updated_at), }