models.py
2.6 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
from django.db import models
from usercenter.models import User
# users = User.objects.filter(is_active=True).values('username', 'id').all()
# AUDITOR_CHOICE = [(i['id'], i['username']) for i in users]
AUDITOR_CHOICE = [(2, '邓望明'), (3, '杜波')]
class Auditor(models.Model):
# user = models.ForeignKey(User, on_delete=models.CASCADE, related_name="aud", verbose_name="审批人员")
user = models.ForeignKey(
User,
on_delete=models.CASCADE,
related_name="aud",
choices=AUDITOR_CHOICE,
verbose_name="审批人员")
leader = models.ForeignKey(
'self',
on_delete=models.CASCADE,
related_name="p",
null=True,
blank=True,
verbose_name="上级领导")
order = models.PositiveSmallIntegerField(default=0, null=True, blank=True, verbose_name="排序")
def __str__(self):
return self.user.username
class Meta:
ordering = ('order', )
class Project(models.Model):
category = models.CharField(max_length=100, default="", verbose_name="产品类目")
model_type = models.CharField(max_length=50, default="", verbose_name="产品型号")
market_share_analysis = models.TextField(default="", verbose_name="产品市场占有率分析")
context_analysis = models.TextField(default="", verbose_name="产品场景分析")
attachments = models.CharField(max_length=800, default="", verbose_name="附件地址")
auditor = models.ManyToManyField(Auditor, related_name="project_auditor", blank=True, verbose_name="审核人员")
is_done = models.BooleanField(default=False, blank=True, verbose_name="是否完成")
is_pass = models.BooleanField(default=False, blank=True, verbose_name="是否通过")
create_time = models.DateTimeField(auto_now_add=True)
creator = models.ForeignKey(User, related_name="project_creator", on_delete=models.CASCADE, verbose_name="创建人员")
def __str__(self):
return self.category + '-' + self.model_type
class Meta:
ordering = ('is_done', 'create_time')
class Result(models.Model):
ACCEPT_CHOICES = (
('accept', '通过'),
('reject', '否决')
)
auditor = models.ForeignKey(Auditor, on_delete=models.CASCADE, related_name="result_auditor", verbose_name="审核人员")
project = models.ForeignKey(Project, on_delete=models.CASCADE, related_name="result_project", verbose_name="审核项目")
is_accept = models.CharField(max_length=10, null=True, choices=ACCEPT_CHOICES, verbose_name="审核项目")
memo = models.CharField(max_length=300, blank=True, default="", verbose_name="审核结果陈述")
create_time = models.DateTimeField(auto_now_add=True)
def __str__(self):
return self.is_accept
class Meta:
ordering = ('-create_time', )