正在显示
5 个修改的文件
包含
72 行增加
和
25 行删除
1 | +# Generated by Django 3.1.1 on 2020-10-14 06:41 | ||
2 | + | ||
3 | +from django.conf import settings | ||
4 | +from django.db import migrations, models | ||
5 | +import django.db.models.deletion | ||
6 | + | ||
7 | + | ||
8 | +class Migration(migrations.Migration): | ||
9 | + | ||
10 | + dependencies = [ | ||
11 | + migrations.swappable_dependency(settings.AUTH_USER_MODEL), | ||
12 | + ('project', '0002_auto_20201008_1634'), | ||
13 | + ] | ||
14 | + | ||
15 | + operations = [ | ||
16 | + migrations.AlterModelOptions( | ||
17 | + name='project', | ||
18 | + options={'ordering': ('is_done',)}, | ||
19 | + ), | ||
20 | + migrations.AlterField( | ||
21 | + model_name='auditor', | ||
22 | + name='user', | ||
23 | + field=models.ForeignKey(choices=[(2, '邓望明'), (3, '杜波')], on_delete=django.db.models.deletion.CASCADE, related_name='aud', to=settings.AUTH_USER_MODEL, verbose_name='审批人员'), | ||
24 | + ), | ||
25 | + migrations.AlterField( | ||
26 | + model_name='project', | ||
27 | + name='is_pass', | ||
28 | + field=models.BooleanField(blank=True, null=True, verbose_name='是否通过'), | ||
29 | + ), | ||
30 | + ] |
1 | +# Generated by Django 3.1.1 on 2020-10-14 07:13 | ||
2 | + | ||
3 | +from django.db import migrations | ||
4 | + | ||
5 | + | ||
6 | +class Migration(migrations.Migration): | ||
7 | + | ||
8 | + dependencies = [ | ||
9 | + ('project', '0003_auto_20201014_1441'), | ||
10 | + ] | ||
11 | + | ||
12 | + operations = [ | ||
13 | + migrations.AlterModelOptions( | ||
14 | + name='result', | ||
15 | + options={'ordering': ('pk',)}, | ||
16 | + ), | ||
17 | + ] |
@@ -38,7 +38,7 @@ class Project(models.Model): | @@ -38,7 +38,7 @@ class Project(models.Model): | ||
38 | attachments = models.CharField(max_length=800, default="", verbose_name="附件地址") | 38 | attachments = models.CharField(max_length=800, default="", verbose_name="附件地址") |
39 | auditor = models.ManyToManyField(Auditor, related_name="project_auditor", blank=True, verbose_name="审核人员") | 39 | auditor = models.ManyToManyField(Auditor, related_name="project_auditor", blank=True, verbose_name="审核人员") |
40 | is_done = models.BooleanField(default=False, blank=True, verbose_name="是否完成") | 40 | is_done = models.BooleanField(default=False, blank=True, verbose_name="是否完成") |
41 | - is_pass = models.BooleanField(default=False, blank=True, verbose_name="是否通过") | 41 | + is_pass = models.BooleanField(null=True, blank=True, verbose_name="是否通过") |
42 | create_time = models.DateTimeField(auto_now_add=True) | 42 | create_time = models.DateTimeField(auto_now_add=True) |
43 | creator = models.ForeignKey(User, related_name="project_creator", on_delete=models.CASCADE, verbose_name="创建人员") | 43 | creator = models.ForeignKey(User, related_name="project_creator", on_delete=models.CASCADE, verbose_name="创建人员") |
44 | 44 | ||
@@ -46,7 +46,7 @@ class Project(models.Model): | @@ -46,7 +46,7 @@ class Project(models.Model): | ||
46 | return self.category + '-' + self.model_type | 46 | return self.category + '-' + self.model_type |
47 | 47 | ||
48 | class Meta: | 48 | class Meta: |
49 | - ordering = ('is_done', 'create_time') | 49 | + ordering = ('is_done',) |
50 | 50 | ||
51 | 51 | ||
52 | class Result(models.Model): | 52 | class Result(models.Model): |
@@ -65,5 +65,5 @@ class Result(models.Model): | @@ -65,5 +65,5 @@ class Result(models.Model): | ||
65 | return self.is_accept | 65 | return self.is_accept |
66 | 66 | ||
67 | class Meta: | 67 | class Meta: |
68 | - ordering = ('-create_time', ) | 68 | + ordering = ('pk', ) |
69 | 69 |
@@ -16,13 +16,14 @@ class AuditorSerializer(serializers.ModelSerializer): | @@ -16,13 +16,14 @@ class AuditorSerializer(serializers.ModelSerializer): | ||
16 | 16 | ||
17 | class ProjectSerializer(serializers.ModelSerializer): | 17 | class ProjectSerializer(serializers.ModelSerializer): |
18 | result = serializers.ReadOnlyField() | 18 | result = serializers.ReadOnlyField() |
19 | - cur_auditor = serializers.ReadOnlyField() | 19 | + # cur_auditor = serializers.ReadOnlyField() |
20 | + creator_name = serializers.ReadOnlyField() | ||
20 | 21 | ||
21 | class Meta: | 22 | class Meta: |
22 | model = Project | 23 | model = Project |
23 | fields = ( | 24 | fields = ( |
24 | - 'id', 'result', 'creator', 'category', 'model_type', 'market_share_analysis', 'context_analysis', | ||
25 | - 'attachments', 'create_time', "cur_auditor" | 25 | + 'id', 'result', 'creator_name', 'category', 'model_type', 'market_share_analysis', 'context_analysis', |
26 | + 'attachments', 'create_time', "is_done", "is_pass" | ||
26 | ) | 27 | ) |
27 | depth = 1 | 28 | depth = 1 |
28 | 29 |
@@ -54,13 +54,22 @@ class ProjectDetail(RetrieveAPIView): | @@ -54,13 +54,22 @@ class ProjectDetail(RetrieveAPIView): | ||
54 | 54 | ||
55 | def get(self, request, *args, **kwargs): | 55 | def get(self, request, *args, **kwargs): |
56 | obj = self.get_object() | 56 | obj = self.get_object() |
57 | - auditor_len = Result.objects.filter(project=obj).count() | ||
58 | - if auditor_len == 2: | ||
59 | - obj.cur_auditor = "已完结" | ||
60 | - elif auditor_len == 1: | ||
61 | - obj.cur_auditor = AUDITORS[1][1] | ||
62 | - else: | ||
63 | - obj.cur_auditor = AUDITORS[0][1] | 57 | + obj.creator_name = obj.creator.username |
58 | + obj.result = [] | ||
59 | + auditors = Auditor.objects.all() | ||
60 | + # result = Result.objects.filter(project=obj) | ||
61 | + for i in auditors: | ||
62 | + obj.result.append({ | ||
63 | + "auditor": i.user.username, | ||
64 | + "is_accept": i.result_auditor.filter(project=obj).values_list('is_accept', flat=True).first() | ||
65 | + }) | ||
66 | + # auditor_len = Result.objects.filter(project=obj).count() | ||
67 | + # if auditor_len == 2: | ||
68 | + # obj.cur_auditor = "已完结" | ||
69 | + # elif auditor_len == 1: | ||
70 | + # obj.cur_auditor = AUDITORS[1][1] | ||
71 | + # else: | ||
72 | + # obj.cur_auditor = AUDITORS[0][1] | ||
64 | return response(ProjectSerializer(obj).data) | 73 | return response(ProjectSerializer(obj).data) |
65 | 74 | ||
66 | 75 | ||
@@ -109,7 +118,7 @@ class AuditProject(UpdateAPIView): | @@ -109,7 +118,7 @@ class AuditProject(UpdateAPIView): | ||
109 | desc = "产品立项流程所有审批已完成" if full_audit_done else f"{request.user.username}已审批完成" | 118 | desc = "产品立项流程所有审批已完成" if full_audit_done else f"{request.user.username}已审批完成" |
110 | if full_audit_done: | 119 | if full_audit_done: |
111 | obj.is_done = True | 120 | obj.is_done = True |
112 | - obj.is_pass = request.data.get('is_accept') | 121 | + obj.is_pass = bool(request.data.get('is_accept')) |
113 | else: | 122 | else: |
114 | if not accept_param: | 123 | if not accept_param: |
115 | obj.is_done = True | 124 | obj.is_done = True |
@@ -130,22 +139,12 @@ class AuditProjectsList(ListAPIView): | @@ -130,22 +139,12 @@ class AuditProjectsList(ListAPIView): | ||
130 | permission_classes = (IsAuthenticated, IsAdminUser) | 139 | permission_classes = (IsAuthenticated, IsAdminUser) |
131 | 140 | ||
132 | def get_queryset(self): | 141 | def get_queryset(self): |
133 | - # auditor = Auditor.objects.get(user=self.request.user) | ||
134 | - # sql = Project.objects.filter( | ||
135 | - # auditor__user_id=self.request.user.id, | ||
136 | - # auditor__result_auditor__exact=auditor) \ | ||
137 | - # .order_by('-is_done') | ||
138 | data = Project.objects.filter(auditor__user_id=self.request.user.id).order_by('-is_done') | 142 | data = Project.objects.filter(auditor__user_id=self.request.user.id).order_by('-is_done') |
139 | for item in data: | 143 | for item in data: |
140 | result = item.result_project.filter(auditor__user_id=self.request.user.id).values('is_accept').first() | 144 | result = item.result_project.filter(auditor__user_id=self.request.user.id).values('is_accept').first() |
141 | - # item.creator = item.creator.username | 145 | + item.creator_name = item.creator.username |
142 | item.result = True if result else False | 146 | item.result = True if result else False |
143 | - # print(data.query) | ||
144 | return data | 147 | return data |
145 | -# | ||
146 | -# def get(self, request, *args, **kwargs): | ||
147 | -# qs = self.get_queryset(user=request.user, **kwargs) | ||
148 | -# return response(ProjectSerializer(qs, many=True).data) | ||
149 | 148 | ||
150 | 149 | ||
151 | class CheckAuth(APIView): | 150 | class CheckAuth(APIView): |
-
请 注册 或 登录 后发表评论