85 lines
3.2 KiB
Python
85 lines
3.2 KiB
Python
from django.db import models
|
|
from utils.model import SoftModel, BaseModel
|
|
from apps.system.models import CommonAModel, CommonBModel, User
|
|
from simple_history.models import HistoricalRecords
|
|
# Create your models here.
|
|
|
|
class Expert(CommonBModel):
|
|
|
|
gender_choices = (
|
|
('男', '男'),
|
|
('女', '女'),
|
|
)
|
|
|
|
user = models.OneToOneField(User, on_delete=models.CASCADE, null=True, blank=True, verbose_name="关联账户", related_name="expert_user")
|
|
name = models.CharField(verbose_name="姓名", max_length=100)
|
|
gender = models.CharField(verbose_name="性别",choices=gender_choices, default='男', max_length=10)
|
|
idnumber = models.CharField(verbose_name="身份证号", max_length=40)
|
|
paddress = models.TextField(verbose_name="通讯地址")
|
|
photo = models.CharField(verbose_name="证件照", max_length=100, null=True, blank=True)
|
|
history = HistoricalRecords()
|
|
|
|
class Meta:
|
|
verbose_name = '专家基本信息'
|
|
verbose_name_plural = verbose_name
|
|
|
|
def __str__(self):
|
|
return self.name
|
|
|
|
class WorkExperience(CommonAModel):
|
|
|
|
name = models.CharField(verbose_name="单位名", max_length=100)
|
|
start_date = models.DateField(verbose_name="开始日期")
|
|
post = models.CharField(verbose_name="职务/岗位", max_length=100)
|
|
expert = models.ForeignKey(Expert, on_delete=models.CASCADE, verbose_name="所属专家", related_name="workexperience_expert")
|
|
class Meta:
|
|
verbose_name = '专家工作经历'
|
|
verbose_name_plural = verbose_name
|
|
|
|
def __str__(self):
|
|
return self.name
|
|
|
|
class Project(CommonAModel):
|
|
|
|
name = models.CharField(verbose_name="名称", max_length=100)
|
|
number = models.CharField(verbose_name="项目编号", max_length=100)
|
|
start_date = models.DateField(verbose_name="开始日期")
|
|
content = models.TextField(verbose_name="主要工作内容")
|
|
expert = models.ForeignKey(Expert, on_delete=models.CASCADE, verbose_name="所属专家", related_name="project_expert")
|
|
class Meta:
|
|
verbose_name = '专家项目'
|
|
verbose_name_plural = verbose_name
|
|
|
|
def __str__(self):
|
|
return self.name
|
|
|
|
class Paper(CommonAModel):
|
|
|
|
name = models.CharField(verbose_name="名称", max_length=100)
|
|
is_leader = models.BooleanField(verbose_name="是否第一作者", default=True)
|
|
publish_date = models.DateField(verbose_name="发表日期")
|
|
expert = models.ForeignKey(Expert, on_delete=models.CASCADE, verbose_name="所属专家", related_name="paper_expert")
|
|
class Meta:
|
|
verbose_name = '专家论文/著作'
|
|
verbose_name_plural = verbose_name
|
|
|
|
def __str__(self):
|
|
return self.name
|
|
|
|
|
|
class Award(CommonAModel):
|
|
|
|
level_choices = (
|
|
('省部级', '省部级'),
|
|
)
|
|
|
|
name = models.CharField(verbose_name="名称", max_length=100)
|
|
level = models.CharField(verbose_name="级别", choices=level_choices, max_length=60)
|
|
issue_date = models.DateField(verbose_name="颁发日期")
|
|
expert = models.ForeignKey(Expert, on_delete=models.CASCADE, verbose_name="所属专家", related_name="award_expert")
|
|
class Meta:
|
|
verbose_name = '专家获奖/荣誉'
|
|
verbose_name_plural = verbose_name
|
|
|
|
def __str__(self):
|
|
return self.name |