class projectIndustries(models.Model): proj = MyForeignKey(project, related_name='project_industries') industry = MyForeignKey(Industry, related_name='industry_projects') bucket = models.CharField(max_length=16, blank=True, null=True) key = models.TextField(blank=True, null=True) is_deleted = models.BooleanField(blank=True, default=False) deleteduser = MyForeignKey(MyUser, blank=True, null=True, related_name='userdelete_projIndustries') deletedtime = models.DateTimeField(blank=True, null=True) createdtime = models.DateTimeField(auto_created=True, blank=True, null=True) createuser = MyForeignKey(MyUser, blank=True, null=True, related_name='usercreate_projIndustry') class Meta: db_table = "project_industries" def save(self, *args, **kwargs): if self.industry.datasource != self.proj.datasource_id: raise InvestError(8888) if not self.createdtime: self.createdtime = datetime.datetime.now() if not self.key: self.bucket = self.industry.bucket self.key = self.industry.key return super(projectIndustries, self).save(*args, **kwargs)
class projectTags(models.Model): proj = MyForeignKey(project, related_name='project_tags') tag = MyForeignKey(Tag, related_name='tag_projects') is_deleted = models.BooleanField(blank=True, default=False) deleteduser = MyForeignKey(MyUser, blank=True, null=True, related_name='userdelete_projtags') deletedtime = models.DateTimeField(blank=True, null=True) createdtime = models.DateTimeField(auto_created=True, blank=True, null=True) createuser = MyForeignKey(MyUser, blank=True, null=True, related_name='usercreate_projtag') class Meta: db_table = "project_tags" def save(self, *args, **kwargs): if self.tag.datasource != self.proj.datasource_id: raise InvestError(8888) if not self.createdtime: self.createdtime = datetime.datetime.now() return super(projectTags, self).save(*args, **kwargs)
class ProjectBDComments(MyModel): comments = models.TextField(blank=True, default=False, help_text='内容') event_date = models.DateTimeField(blank=True, null=True) projectBD = MyForeignKey(ProjectBD, blank=True, null=True, help_text='bd项目', related_name='ProjectBD_comments') deleteduser = MyForeignKey(MyUser, blank=True, null=True, related_name='userdelete_ProjectBDComments') createuser = MyForeignKey(MyUser, blank=True, null=True, related_name='usercreate_ProjectBDComments') datasource = models.IntegerField(blank=True, null=True) def save(self, *args, **kwargs): if self.projectBD is None: raise InvestError(2007, msg='projectBD can`t be null') self.datasource = self.projectBD.datasource if self.event_date is None: self.event_date = datetime.datetime.now() return super(ProjectBDComments, self).save(*args, **kwargs)
class projServices(models.Model): id = models.AutoField(primary_key=True) proj = MyForeignKey(project, blank=True, null=True, related_name='proj_services') service = MyForeignKey(Service, related_name='service_projects') is_deleted = models.BooleanField(blank=True, default=False) deleteduser = MyForeignKey(MyUser, blank=True, null=True, related_name='userdelete_projservices') deletedtime = models.DateTimeField(blank=True, null=True) createdtime = models.DateTimeField(auto_created=True, blank=True, null=True) createuser = MyForeignKey(MyUser, blank=True, null=True, related_name='usercreate_projservices') class Meta: db_table = "project_services" def save(self, force_insert=False, force_update=False, using=None, update_fields=None): if not self.createdtime: self.createdtime = datetime.datetime.now() super(projServices, self).save(force_insert, force_update, using, update_fields)
class attachment(MyModel): proj = MyForeignKey(project, related_name='proj_attachment', blank=True, null=True) filename = models.CharField(max_length=128, blank=True, null=True) filetype = models.CharField(max_length=32, blank=True, null=True) bucket = models.CharField(max_length=32, blank=True, default='file') key = models.CharField(max_length=128, blank=True, null=True) deleteduser = MyForeignKey(MyUser, blank=True, null=True, on_delete=models.SET_NULL, related_name='userdelete_projattachments') createuser = MyForeignKey(MyUser, blank=True, null=True, on_delete=models.SET_NULL, related_name='usercreate_projattachments') lastmodifyuser = MyForeignKey(MyUser, blank=True, null=True, on_delete=models.SET_NULL, related_name='usermodify_projattachments') class Meta: db_table = 'projectAttachment'
class timelineremark(MyModel): id = models.AutoField(primary_key=True) timeline = MyForeignKey(timeline,related_name='timeline_remarks',blank=True,null=True) remark = models.TextField(blank=True,null=True) deleteduser = MyForeignKey(MyUser, blank=True, null=True, related_name='userdelete_timelineremarks',on_delete=models.SET_NULL) createuser = MyForeignKey(MyUser, blank=True, null=True, related_name='usercreate_timelineremarks',on_delete=models.SET_NULL) lastmodifyuser = MyForeignKey(MyUser, blank=True, null=True, related_name='usermodify_timelineremarks', on_delete=models.SET_NULL) datasource = MyForeignKey(DataSource, help_text='数据源',default=1) class Meta: db_table = 'timelineremarks' permissions = ( ('admin_addlineremark','管理员添加时间轴备注'), ('admin_getlineremark', '管理员查看时间轴备注'), ('admin_changelineremark', '管理员修改时间轴备注'), ('admin_deletelineremark', '管理员删除时间轴备注'), ('user_getlineremark', '用户查看时间轴备注(obj级别)'), ('user_changelineremark', '用户修改时间轴备注(obj级别)'), ('user_deletelineremark','用户删除时间轴备注(obj级别)'), ) def save(self, force_insert=False, force_update=False, using=None, update_fields=None): if self.pk: if self.is_deleted: rem_perm('timeline.user_getlineremark', self.createuser, self) rem_perm('timeline.user_changelineremark', self.createuser, self) rem_perm('timeline.user_deletelineremark', self.createuser, self) super(timelineremark, self).save(force_insert, force_update, using, update_fields)
class WorkReportMarketMsg(MyModel): report = MyForeignKey(WorkReport, blank=True, null=True, related_name='report_marketmsg', help_text='工作报表归属人') marketMsg = models.TextField(blank=True, null=True, help_text='市场信息和项目信息汇报') deleteduser = MyForeignKey(MyUser, blank=True, null=True, related_name='userdelete_workreportmarketmsg') createuser = MyForeignKey(MyUser, blank=True, null=True, related_name='usercreate_workreportmarketmsg') lastmodifyuser = MyForeignKey( MyUser, blank=True, null=True, related_name='usermodify_workreportmarketmsg') datasource = MyForeignKey(DataSource, help_text='数据源', blank=True, default=1) class Meta: db_table = 'user_reportmarketmessage' def save(self, *args, **kwargs): if not self.is_deleted: if not self.report or not self.marketMsg: raise InvestError(20072, msg='参数不能为空') return super(WorkReportMarketMsg, self).save(*args, **kwargs)
class UnreachUser(models.Model): name = models.CharField(max_length=128, blank=True, null=True) title = MyForeignKey(TitleType, blank=True, null=True) org = MyForeignKey('org.organization', blank=True, null=True, related_name='org_unreachuser') mobile = models.CharField(max_length=32, blank=True, null=True) email = models.CharField(max_length=32, blank=True, null=True) is_deleted = models.BooleanField(blank=True, default=False) deleteduser = MyForeignKey(MyUser, blank=True, null=True, related_name='userdelete_unreachUsers') deletedtime = models.DateTimeField(blank=True, null=True) createdtime = models.DateTimeField(auto_created=True, blank=True, null=True) createuser = MyForeignKey(MyUser, blank=True, null=True, related_name='usercreate_unreachUsers') datasource = MyForeignKey(DataSource, blank=True, default=1) class Meta: db_table = "unreachuser" def save(self, *args, **kwargs): if self.org.datasource != self.datasource: raise InvestError(8888, msg='org 与 user非同源') return super(UnreachUser, self).save(*args, **kwargs)
class UserRemarks(models.Model): id = models.AutoField(primary_key=True) user = MyForeignKey(MyUser, related_name='user_remarks', blank=True, null=True) remark = models.TextField(blank=True, null=True) is_deleted = models.BooleanField(blank=True, default=False) deleteduser = MyForeignKey(MyUser, blank=True, null=True, related_name='userdelete_userremarks') deletedtime = models.DateTimeField(blank=True, null=True) createdtime = models.DateTimeField(blank=True, null=True) createuser = MyForeignKey(MyUser, blank=True, null=True, related_name='usercreate_userremarks') lastmodifytime = models.DateTimeField(auto_now=True) lastmodifyuser = MyForeignKey(MyUser, blank=True, null=True, related_name='usermodify_userremarks') datasource = MyForeignKey(DataSource, help_text='数据源', default=1) class Meta: db_table = 'user_remarks' def save(self, *args, **kwargs): if not self.createdtime: self.createdtime = datetime.datetime.now() return super(UserRemarks, self).save(*args, **kwargs)
class UserRemarks(MyModel): id = models.AutoField(primary_key=True) user = MyForeignKey(MyUser, related_name='user_remarks', blank=True, null=True, on_delete=CASCADE) remark = models.TextField(blank=True, null=True) deleteduser = MyForeignKey(MyUser, blank=True, null=True, related_name='userdelete_userremarks') createuser = MyForeignKey(MyUser, blank=True, null=True, related_name='usercreate_userremarks') lastmodifyuser = MyForeignKey(MyUser, blank=True, null=True, related_name='usermodify_userremarks') datasource = MyForeignKey(DataSource, help_text='数据源', default=1) class Meta: db_table = 'user_remarks' permissions = ( ('get_userremark', u'查看所有用户备注'), ('update_userremark', u'修改所有用户备注'), ('delete_userremark', u'删除所有用户备注'), )
class finance(MyModel): id = models.AutoField(primary_key=True) proj = MyForeignKey(project, blank=True, null=True, related_name='proj_finances') revenue = models.BigIntegerField(blank=True, null=True, ) netIncome = models.BigIntegerField(blank=True, null=True, ) revenue_USD = models.BigIntegerField(blank=True, null=True, ) netIncome_USD = models.BigIntegerField(blank=True, null=True, ) EBITDA = models.BigIntegerField(blank=True, null=True, ) grossProfit = models.BigIntegerField(blank=True, null=True, ) totalAsset = models.BigIntegerField(blank=True, null=True, ) stockholdersEquity = models.BigIntegerField(blank=True, null=True, ) operationalCashFlow = models.BigIntegerField(blank=True, null=True, ) grossMerchandiseValue = models.BigIntegerField(blank=True, null=True, ) fYear = models.SmallIntegerField(blank=True, null=True, ) deleteduser = MyForeignKey(MyUser, blank=True, null=True, on_delete=models.SET_NULL,related_name='userdelete_finances') createuser = MyForeignKey(MyUser, blank=True, null=True, on_delete=models.SET_NULL, related_name='usercreate_finances') lastmodifyuser = MyForeignKey(MyUser, blank=True, null=True, on_delete=models.SET_NULL,related_name='usermodify_finances') datasource = MyForeignKey(DataSource, help_text='数据源',blank=True,default=1) class Meta: db_table = 'projectFinance' def save(self, *args, **kwargs): if not self.datasource or self.datasource != self.proj.datasource: raise InvestError(code=8888,msg='项目财务信息datasource不合法') super(finance,self).save(*args, **kwargs)
class activity(models.Model): id = models.AutoField(primary_key=True) titleC = models.CharField(max_length=128, blank=True, null=True) titleE = models.TextField(blank=True, null=True) bucket = models.CharField(max_length=16, blank=True, null=True) key = models.CharField(max_length=64, blank=True, null=True) index = models.SmallIntegerField(blank=True, null=True) detailUrl = models.URLField(blank=True, null=True) isActive = models.BooleanField(blank=True, default=True) isNews = models.BooleanField(blank=True, default=False) is_deleted = models.BooleanField(blank=True, default=False) deleteduser = MyForeignKey(MyUser, blank=True, null=True, related_name='userdelete_activities', on_delete=models.SET_NULL) deletedtime = models.DateTimeField(blank=True, null=True) createdtime = models.DateTimeField(auto_now_add=True, null=True) createuser = MyForeignKey(MyUser, blank=True, null=True, related_name='usercreate_activities', on_delete=models.SET_NULL) lastmodifytime = models.DateTimeField(auto_now=True, blank=True, null=True) lastmodifyuser = MyForeignKey(MyUser, blank=True, null=True, related_name='usermodify_activities', on_delete=models.SET_NULL) class Meta: db_table = 'activity'
class MyToken(models.Model): key = models.CharField('Key', max_length=48, primary_key=True) user = MyForeignKey(MyUser, related_name='user_token', verbose_name=("MyUser")) created = models.DateTimeField(help_text="CreatedTime", auto_now_add=True, null=True) clienttype = MyForeignKey(ClientType, help_text='登录类型') is_deleted = models.BooleanField(help_text='是否已被删除', blank=True, default=False) class Meta: db_table = 'user_token' def timeout(self): return datetime.timedelta(hours=24 * 1) - (datetime.datetime.now() - self.created) def save(self, *args, **kwargs): if not self.key: self.key = self.generate_key() return super(MyToken, self).save(*args, **kwargs) def generate_key(self): return binascii.hexlify(os.urandom(24)).decode() def __str__(self): return self.key
class userTags(models.Model): user = MyForeignKey(MyUser, related_name='user_usertags', null=True, blank=True) tag = MyForeignKey(Tag, related_name='tag_usertags', null=True, blank=True) is_deleted = models.BooleanField(blank=True, default=False) deleteduser = MyForeignKey(MyUser, blank=True, null=True, related_name='userdelete_usertags') deletedtime = models.DateTimeField(blank=True, null=True) createdtime = models.DateTimeField(auto_created=True, blank=True, null=True) createuser = MyForeignKey(MyUser, blank=True, null=True, related_name='usercreate_usertags') class Meta: db_table = "user_tags" def save(self, *args, **kwargs): if self.tag and self.user: if self.tag.datasource != self.user.datasource_id: raise InvestError(8888) return super(userTags, self).save(*args, **kwargs)
class ShareToken(models.Model): key = models.CharField(max_length=50, primary_key=True,help_text='sharetoken') user = MyForeignKey(MyUser, related_name='user_sharetoken',help_text='用户的分享token') proj = MyForeignKey(project,related_name='proj_sharetoken',help_text='项目的分享token') created = models.DateTimeField(help_text="CreatedTime", auto_now_add=True,blank=True) is_deleted = models.BooleanField(help_text='是否已被删除', blank=True, default=False) class Meta: db_table = 'project_sharetoken' def timeout(self): return datetime.timedelta(hours=24 * 1) - (datetime.datetime.now() - self.created) def save(self, *args, **kwargs): if not self.key: self.key = self.generate_key() if self.user.datasource != self.proj.datasource: raise InvestError(code=8888,msg='来源不匹配') return super(ShareToken, self).save(*args, **kwargs) def generate_key(self): return binascii.hexlify(os.urandom(25)).decode() def __str__(self): return self.key
class orgTransactionPhase(models.Model): org = MyForeignKey(organization, null=True, blank=True, related_name='org_orgTransactionPhases') transactionPhase = MyForeignKey(TransactionPhases, null=True, blank=True, related_name='transactionPhase_orgs', on_delete=models.SET_NULL) is_deleted = models.BooleanField(blank=True, default=False) deleteduser = MyForeignKey(MyUser, blank=True, null=True, related_name='userdelete_orgTransactionPhases', on_delete=models.SET_NULL) deletedtime = models.DateTimeField(blank=True, null=True) createdtime = models.DateTimeField(auto_created=True, blank=True, null=True) createuser = MyForeignKey(MyUser, blank=True, null=True, related_name='usercreate_orgTransactionPhase', on_delete=models.SET_NULL) class Meta: db_table = "org_TransactionPhase"
class projectDiDiRecord(MyModel): proj = MyForeignKey(project, blank=True, null=True, related_name='project_DiDiRecords') projName = models.TextField(blank=True, null=True, help_text="项目名称") orderNumber = models.CharField(max_length=32, blank=True, help_text='专快订单号') orderDate = models.DateTimeField(blank=True, null=True, help_text='支付时间') orderType = MyForeignKey(DidiOrderType, blank=True, null=True, help_text='用车类型(对应用车权限)') orderPerm = models.CharField(max_length=64, blank=True, null=True, help_text='用车权限') city = models.CharField(max_length=64, blank=True, null=True, help_text='用车城市') startPlace = models.TextField(blank=True, null=True, help_text='实际出发地') endPlace = models.TextField(blank=True, null=True, help_text='实际目的地') money = models.FloatField(blank=True, null=True, help_text='企业实付金额') deleteduser = MyForeignKey(MyUser, blank=True, null=True, related_name='userdelete_projDiDiRecords') createuser = MyForeignKey(MyUser, blank=True, null=True, related_name='usercreate_projDiDiRecords') datasource = MyForeignKey(DataSource, blank=True, help_text='数据源') class Meta: db_table = "project_didiRecord" def save(self, *args, **kwargs): if self.proj: self.datasource = self.proj.datasource if not self.orderType and self.orderPerm: if DidiOrderType.objects.filter(nameC=self.orderPerm, is_deleted=False).exists(): self.orderType = DidiOrderType.objects.filter(nameC=self.orderPerm, is_deleted=False).first() if not self.is_deleted: if projectDiDiRecord.objects.exclude(pk=self.pk).filter(orderNumber=self.orderNumber, is_deleted=False).exists(): raise InvestError(4010, msg='订单号已存在') if not self.money or self.money < 0: raise InvestError(20071, msg='实际付款不符合条件') return super(projectDiDiRecord, self).save(*args, **kwargs)
class publicdirectorytemplate(models.Model): id = models.AutoField(primary_key=True) name = models.CharField(max_length=64, blank=True, null=True) parent = MyForeignKey('self', blank=True, null=True) orderNO = models.PositiveSmallIntegerField() is_deleted = models.BooleanField(blank=True, default=False) deleteduser = MyForeignKey( MyUser, blank=True, null=True, related_name='userdelete_publicdirectorytemplate') deletedtime = models.DateTimeField(blank=True, null=True) createdtime = models.DateTimeField(auto_now_add=True, null=True) createuser = MyForeignKey( MyUser, blank=True, null=True, related_name='usercreate_publicdirectorytemplate') lastmodifytime = models.DateTimeField(blank=True, null=True) lastmodifyuser = MyForeignKey( MyUser, blank=True, null=True, related_name='usermodify_publicdirectorytemplate') class Meta: db_table = 'dataroompublicdirectorytemplate' permissions = ( # ('admin_getdataroomtemplate','管理员查看dataroomtemplate'), # ('admin_changedataroomtemplate', '管理员修改dataroomtemplate'), # ('admin_deletedataroomtemplate', '管理员删除dataroomtemplate'), # ('admin_adddataroomtemplate', '管理员添加dataroomtemplate'), )
class OKRResult(MyModel): okr = MyForeignKey(OKR, blank=True, null=True, related_name='result_OKR') krs = models.TextField(blank=True, null=True, help_text='关键结果(KRs)') confidence = models.SmallIntegerField(blank=True, null=True, help_text='信心指数*100') createuser = MyForeignKey(MyUser, blank=True, null=True, related_name='usercreate_OKRResult') deleteduser = MyForeignKey(MyUser, blank=True, null=True, related_name='userdelete_OKRResult') datasource = MyForeignKey(DataSource, help_text='数据源', blank=True, default=1) class Meta: db_table = 'OKRResult' def save(self, *args, **kwargs): if not self.is_deleted: if not self.okr or self.okr.is_deleted: raise InvestError(20072, msg='okr字段 不能为空') if OKRResult.objects.exclude(pk=self.pk).filter( is_deleted=False, okr=self.okr, krs=self.krs).exists(): raise InvestError(20071, msg='该OKR已存在相同的关键结果') self.datasource = self.createuser.datasource return super(OKRResult, self).save(*args, **kwargs)
class orgInvestEvent(MyModel): org = MyForeignKey(organization,null=True, blank=True, db_index=True, related_name='org_orgInvestEvent') comshortname = models.CharField(max_length=128, null=True, blank=True, help_text='企业简称') com_id = models.BigIntegerField(null=True, blank=True, help_text='全库ID') industrytype = models.CharField(max_length=32, null=True, blank=True, help_text='行业分类') area = MyForeignKey(Country,blank=True, null=True, help_text='地区') investor = models.CharField(max_length=128, null=True, blank=True, help_text='投资人') investDate = models.DateTimeField(blank=True, null=True, help_text='投资日期') investType = models.CharField(max_length=64, blank=True,null=True,help_text='投资性质(轮次)') investSize = models.CharField(max_length=32, blank=True, null=True, help_text='投资金额') deleteduser = MyForeignKey(MyUser, blank=True, null=True, related_name='userdelete_orginvestevent') createuser = MyForeignKey(MyUser, blank=True, null=True, related_name='usercreate_orginvestevent') class Meta: db_table = "org_investevent" def save(self, *args, **kwargs): if not self.org or not self.comshortname: raise InvestError(20072,msg='机构/企业不能为空') if self.pk: if orgInvestEvent.objects.exclude(pk=self.pk).filter(is_deleted=False,comshortname=self.comshortname,investDate=self.investDate, org=self.org).exists(): raise InvestError(code=5007,msg='相同投资事件已存在,无法修改') else: if orgInvestEvent.objects.filter(is_deleted=False,comshortname=self.comshortname,investDate=self.investDate, org=self.org).exists(): raise InvestError(code=5007,msg='相同投资事件已存在,无法新增') super(orgInvestEvent,self).save(*args, **kwargs)
class orgTransactionPhase(MyModel): org = MyForeignKey(organization,null=True,blank=True,related_name='org_orgTransactionPhases') transactionPhase = MyForeignKey(TransactionPhases,null=True,blank=True,related_name='transactionPhase_orgs',on_delete=models.SET_NULL) deleteduser = MyForeignKey(MyUser, blank=True, null=True, related_name='userdelete_orgTransactionPhases',on_delete=models.SET_NULL) createuser = MyForeignKey(MyUser, blank=True, null=True, related_name='usercreate_orgTransactionPhase',on_delete=models.SET_NULL) class Meta: db_table = "org_TransactionPhase"
class projectTransactionType(MyModel): proj = MyForeignKey(project, related_name='project_TransactionTypes') transactionType = MyForeignKey(TransactionType, related_name='transactionType_projects') deleteduser = MyForeignKey(MyUser, blank=True, null=True, related_name='userdelete_projtransactionTypes') createuser = MyForeignKey(MyUser, blank=True, null=True, related_name='usercreate_projtransactionType') class Meta: db_table = "project_TransactionType"
class orgtitletable(models.Model): """ 机构职位对照表 """ orgtype = MyForeignKey(OrgType, blank=True, null=True) title = MyForeignKey(TitleType, blank=True, null=True) titleindex = models.PositiveSmallIntegerField(blank=True,default=0,help_text='职位权重') is_deleted = models.BooleanField(blank=True, default=False)
class projServices(MyModel): id = models.AutoField(primary_key=True) proj = MyForeignKey(project,blank=True,null=True,related_name='proj_services') service = MyForeignKey(Service, related_name='service_projects') deleteduser = MyForeignKey(MyUser, blank=True, null=True, related_name='userdelete_projservices') createuser = MyForeignKey(MyUser, blank=True, null=True, related_name='usercreate_projservices') class Meta: db_table = "project_services"
class orgTags(MyModel): org = MyForeignKey(organization,related_name='org_orgtags') tag = MyForeignKey(Tag, related_name='tag_orgtags') class Meta: db_table = "org_tags" unique_together = ('org', 'tag') def save(self, *args, **kwargs): return super(orgTags, self).save(*args, **kwargs)
class orgRemarks(models.Model): id = models.AutoField(primary_key=True) org = MyForeignKey(organization, null=True, blank=True, related_name='org_remarks') remark = models.TextField(blank=True, null=True) is_deleted = models.BooleanField(blank=True, default=False) deleteduser = MyForeignKey(MyUser, blank=True, null=True, related_name='userdelete_orgremarks', on_delete=models.SET_NULL) deletedtime = models.DateTimeField(blank=True, null=True) createdtime = models.DateTimeField(auto_now_add=True, blank=True, null=True) createuser = MyForeignKey(MyUser, blank=True, null=True, related_name='usercreate_orgremarks', on_delete=models.SET_NULL) lastmodifytime = models.DateTimeField(auto_now=True, blank=True, null=True) lastmodifyuser = MyForeignKey(MyUser, blank=True, null=True, related_name='usermodify_orgremarks', related_query_name='orgremark_modifyuser', on_delete=models.SET_NULL) datasource = MyForeignKey(DataSource, help_text='数据源') class Meta: db_table = "orgremark" permissions = ( ('admin_getorgremark', '管理员查看机构备注'), ('admin_changeorgremark', '管理员修改机构备注'), ('admin_addorgremark', '管理员增加机构备注'), ('admin_deleteorgremark', '管理员删除机构备注'), ('user_getorgremark', '用户查看机构备注(obj级别)'), ('user_changeorgremark', '用户修改机构备注(obj级别)'), ('user_addorgremark', '用户增加机构备注'), ('user_deleteorgremark', '用户删除机构备注(obj级别)'), ) def save(self, force_insert=False, force_update=False, using=None, update_fields=None): if not self.datasource or self.datasource != self.org.datasource: raise InvestError(code=8888, msg='机构备注没有datasource') super(orgRemarks, self).save(force_insert, force_update, using, update_fields)
class projectTags(MyModel): proj = MyForeignKey(project,related_name='project_tags' ) tag = MyForeignKey(Tag, related_name='tag_projects') deleteduser = MyForeignKey(MyUser, blank=True, null=True, related_name='userdelete_projtags') createuser = MyForeignKey(MyUser, blank=True, null=True, related_name='usercreate_projtag') class Meta: db_table = "project_tags" def save(self, *args, **kwargs): if self.tag.datasource != self.proj.datasource: raise InvestError(8888, msg='标签来源不符') return super(projectTags, self).save(*args, **kwargs)
class ProjectBDComments(MyModel): comments = models.TextField(blank=True, default=False, help_text='内容') event_date = models.DateTimeField(blank=True, null=True) key = models.CharField(max_length=128, blank=True, null=True, help_text='文件路径') bucket = models.CharField(max_length=128, blank=True, null=True, help_text='文件所在空间') filename = models.CharField(max_length=128, blank=True, null=True, help_text='文件名') transid = models.TextField('third.AudioTranslateTaskRecord', blank=True, null=True, help_text='语音转写任务id') projectBD = MyForeignKey(ProjectBD, blank=True, null=True, help_text='bd项目', related_name='ProjectBD_comments') deleteduser = MyForeignKey(MyUser, blank=True, null=True, related_name='userdelete_ProjectBDComments') createuser = MyForeignKey(MyUser, blank=True, null=True, related_name='usercreate_ProjectBDComments') datasource = MyForeignKey(DataSource, help_text='数据源', blank=True, default=1) def save(self, *args, **kwargs): if self.projectBD is None: raise InvestError(20071, msg='projectBD can`t be null') self.datasource = self.projectBD.datasource if self.event_date is None: self.event_date = datetime.datetime.now() if self.projectBD and not self.projectBD.is_deleted: self.projectBD.lastmodifytime = self.lastmodifytime if self.lastmodifytime else datetime.datetime.now( ) self.projectBD.save(update_fields=[ 'lastmodifytime', ]) kwargs['automodifytime'] = False return super(ProjectBDComments, self).save(*args, **kwargs)
class OKR(MyModel): year = models.PositiveSmallIntegerField(blank=True, null=True, help_text='OKR目标年度') quarter = models.PositiveSmallIntegerField(blank=True, null=True, help_text='OKR目标季度') okrType = models.BooleanField(blank=True, default=False, help_text='0(季度)/1(年度)') target = models.TextField(blank=True, null=True, help_text='OKR目标') createuser = MyForeignKey(MyUser, blank=True, null=True, related_name='usercreate_OKR') deleteduser = MyForeignKey(MyUser, blank=True, null=True, related_name='userdelete_OKR') datasource = MyForeignKey(DataSource, blank=True, default=1, help_text='数据源') class Meta: db_table = 'OKR' def save(self, *args, **kwargs): if not self.is_deleted: if self.okrType: self.quarter = None filtertype = False else: filtertype = True if not self.quarter: raise InvestError(20072, msg='季度日期不能为空') else: if self.quarter > 4: raise InvestError(20071, msg='季度日期不合法') if self.year and self.year > 2100: raise InvestError(20071, msg='年度日期不合法') if not self.target: raise InvestError(20072, msg='目标不能为空') if OKR.objects.exclude(pk=self.pk).filter( is_deleted=False, year=self.year, okrType=filtertype, createuser=self.createuser).exists(): raise InvestError(20071, msg='该年度已存在季度/年度OKR') self.datasource = self.createuser.datasource return super(OKR, self).save(*args, **kwargs)
class timelineTransationStatu(models.Model): id = models.AutoField(primary_key=True) timeline = MyForeignKey(timeline, blank=True, null=True, related_name='timeline_transationStatus') transationStatus = MyForeignKey(TransactionStatus, default=1) isActive = models.BooleanField(blank=True, default=False) alertCycle = models.SmallIntegerField(blank=True, default=7, help_text='提醒周期') inDate = models.DateTimeField(blank=True, null=True, help_text='提醒到期时间') is_deleted = models.BooleanField(blank=True, default=False) deleteduser = MyForeignKey(MyUser, blank=True, null=True, related_name='userdelete_timelinestatus', on_delete=models.SET_NULL) deletedtime = models.DateTimeField(blank=True, null=True) createdtime = models.DateTimeField(blank=True, null=True) createuser = MyForeignKey(MyUser, blank=True, null=True, related_name='usercreate_timelinestatus', on_delete=models.SET_NULL) lastmodifytime = models.DateTimeField(auto_now=True) lastmodifyuser = MyForeignKey(MyUser, blank=True, null=True, related_name='usermodify_timelinestatus', on_delete=models.SET_NULL) class Meta: db_table = 'timelineTransationStatus' def save(self, force_insert=False, force_update=False, using=None, update_fields=None): if not self.createdtime: self.createdtime = datetime.datetime.now() if self.timeline.isClose: raise InvestError(6004) if self.alertCycle: if not self.inDate: self.inDate = datetime.datetime.now() + datetime.timedelta( hours=self.alertCycle * 24) super(timelineTransationStatu, self).save(force_insert, force_update, using, update_fields)