models.py
2.9 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
70
71
72
73
74
75
from django.db import models
from usercenter.models import User
PROJECT_TYPE = (
(1, u"市场容量小于300万美金"),
(2, u"市场容量大于等于300万美金"),
)
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",
verbose_name="审批人员")
leader = models.ForeignKey(
'self',
on_delete=models.CASCADE,
related_name="p",
null=True,
blank=True,
verbose_name="上级领导")
type = models.PositiveSmallIntegerField(default=1, choices=PROJECT_TYPE, 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.TextField(default="", verbose_name="附件地址")
first_orders = models.PositiveIntegerField(default=0, verbose_name="首单数量")
orders_estimate = models.CharField(default="", max_length=255, verbose_name="月销量预估")
roi_report = models.CharField(default="", max_length=255, verbose_name="ROI分析")
auditor = models.ManyToManyField(Auditor, related_name="project_auditor", blank=True, verbose_name="审核人员")
is_done = models.BooleanField(default=False, blank=True, verbose_name="是否完成")
type = models.PositiveSmallIntegerField(default=1, choices=PROJECT_TYPE, verbose_name="项目类型")
is_pass = models.BooleanField(null=True, 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',)
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 str(self.project.model_type) + '-' + str(self.is_accept)
class Meta:
ordering = ('pk', )