Brak opisu

models.py 4.0KB

    # -*- coding: utf-8 -*- from django.db import models from django.utils.translation import ugettext_lazy as _ from django_models_ext import BaseModelMixin, upload_file_path, upload_path from jsonfield import JSONField from shortuuidfield import ShortUUIDField from TimeConvert import TimeConvert as tc from utils.qiniucdn import qiniu_file_url class LensmanContributionContractInfo(BaseModelMixin): CONTRACT_STATUS_TUPLE = ( (1, u'合同创建'), (2, u'合同签署中'), (3, u'合同拒签'), (4, u'合同签署完成'), (5, u'合同流签(合同过期)'), (6, u'合同撤回'), (8, u'合同待填写'), (21, u'解除协议(已解除)'), (16, u'合同已失效'), ) APPROVE_STATUS_TYPE = ( (2, u'待签署'), (7, u'待签署'), (3, u'已签署'), (4, u'拒绝'), (5, u'过期没人处理'), (6, u'流程已撤回'), (8, u'合同待填写'), (9, u'流程已终止'), (10, u'填写完成'), (15, u'解除协议(已解除)'), (15, u'已转他人处理'), ) contract_id = ShortUUIDField(_(u'contract_id'), max_length=32, blank=True, null=True, help_text=u'合同唯一标识', db_index=True, unique=True) user_id = models.CharField(_(u'user_id'), max_length=32, blank=True, null=True, help_text=u'用户唯一标识', db_index=True) lensman_id = models.CharField(_(u'lensman_id'), max_length=32, blank=True, null=True, help_text=u'摄影师唯一标识', db_index=True) activity_id = models.CharField(_(u'activity_id'), max_length=32, blank=True, null=True, help_text=u'活动唯一标识', db_index=True) contribution_id = models.CharField(_(u'contribution_id'), max_length=32, blank=True, null=True, help_text=u'活动投稿唯一标识', db_index=True) contract_content_fields = JSONField(_(u'contract_content_fields'), blank=True, null=True, help_text=u'合同内容字段') contract_file = models.FileField(_(u'contract_file'), upload_to=upload_path, blank=True, null=True, help_text=u'图片') # 电子签参数 flow_id = models.CharField(_(u'flow_id'), max_length=128, blank=True, null=True, help_text=u'腾讯电子签流程ID') # 后续需用同样的FlowId再次调用发起签署流程,合同才能进入签署环节 document_id = models.CharField(_(u'document_id'), max_length=128, blank=True, null=True, help_text=u'腾讯电子签文档ID') tencent_contract_status = models.IntegerField(_(u'tencent_contract_status'), choices=CONTRACT_STATUS_TUPLE, default=-1, help_text=u'腾讯电子签合同签署状态', db_index=True) tencent_approve_status = models.IntegerField(_(u'tencent_approve_status'), choices=APPROVE_STATUS_TYPE, default=-1, help_text=u'腾讯电子签签署人签署状态', db_index=True) class Meta: verbose_name = _(u'摄影师投稿合同信息') verbose_name_plural = _(u'摄影师投稿合同信息') def __unicode__(self): return '%d' % self.pk @property def contract_file_url(self): return qiniu_file_url(self.contract_file.name, bucket='tamron') @property def contract_status(self): if self.tencent_approve_status == 3 and self.tencent_contract_status == 4: return 1 else: return 0 @property def data(self): return { 'contract_id': self.contract_id, 'lensman_id': self.lensman_id, 'activity_id': self.activity_id, 'contribution_id': self.contribution_id, 'contract_content_fields': self.contract_content_fields, 'contract_file_url': self.contract_file_url, 'contract_status': self.contract_status, 'created_at': tc.local_string(utc_dt=self.created_at, format='%Y-%m-%d %H:%M:%S'), 'updated_at': tc.local_string(utc_dt=self.updated_at, format='%Y-%m-%d %H:%M:%S') } @property def admindata(self): return self.data @property def mpdata(self): return self.data