Merge branch 'master' of http://git.xfoto.com.cn/Hanyuan/hanyuan

FFIB vor 4 Jahren
Ursprung
Commit
c60b5310ca
4 geänderte Dateien mit 73 neuen Zeilen und 4 gelöschten Zeilen
  1. 3 0
      api/branch_campus_admin_views.py
  2. 43 3
      api/course_views.py
  3. 19 0
      registration/migrations/0006_courseinfo_authorities.py
  4. 8 1
      registration/models.py

+ 3 - 0
api/branch_campus_admin_views.py

@@ -56,10 +56,13 @@ def update_branch_campus_admin(request):
56 56
 
57 57
 
58 58
 def get_branch_campus_admin_list(request):
59
+    campus_id = request.POST.get('campus_id', '')
59 60
     page = request.POST.get('page', 1)
60 61
     num = request.POST.get('num', 20)
61 62
 
62 63
     admins = BranchCampusAdministratorInfo.objects.filter(status=True)
64
+    if campus_id:
65
+        admins = admins.filter(campus_id=campus_id)
63 66
     count = admins.count()
64 67
     admins, left = pagination(admins, page, num)
65 68
     admins = [a.data for a in admins]

+ 43 - 3
api/course_views.py

@@ -9,24 +9,64 @@ from registration.models import CourseInfo, CourseRegisterFieldInfo, CourseRegis
9 9
 
10 10
 
11 11
 def add_course(request):
12
+    # {
13
+    #     "course_name": "",
14
+    #     "authorities": [{
15
+    #         "admin_id": "",
16
+    #         "campus_id": "",
17
+    #         "campus_name": "",
18
+    #         "name": "",
19
+    #         "phone": "",
20
+    #         "user_status": "",
21
+    #     }],
22
+    #     "fields": [{
23
+    #         "field_id": "",  # 有值更新,没值新建
24
+    #         "fields": [
25
+    #             {
26
+    #                 "type": "input",  # input, select, file
27
+    #                 "name": "",
28
+    #                 "options": ["男", "女"],  # type=select
29
+    #             }
30
+    #         ]
31
+    #     }]
32
+    # }
12 33
     course_name = request.POST.get('course_name', '')
34
+    authorities = request.POST.get('authorities', [])
35
+    all_fields = request.POST.get('fields', [])
13 36
 
14
-    course = CourseInfo.objects.create(course_name=course_name)
37
+    course = CourseInfo.objects.create(course_name=course_name, authorities=authorities)
38
+
39
+    for fields in all_fields:
40
+        CourseRegisterFieldInfo.objects.create(course_id=course.course_id, course_name=course_name, fields=fields.get('fields', []))
15 41
 
16 42
     return response(data={
17 43
         'course_id': course.course_id,
44
+        'course_info': course.data,
18 45
     })
19 46
 
20 47
 
21 48
 def update_course(request):
22 49
     course_id = request.POST.get('course_id', '')
23 50
     course_name = request.POST.get('course_name', '')
51
+    authorities = request.POST.get('authorities', [])
52
+    all_fields = request.POST.get('fields', [])
24 53
 
25
-    CourseInfo.objects.filter(course_id=course_id).update(course_name=course_name)
54
+    CourseInfo.objects.filter(course_id=course_id).update(course_name=course_name, authorities=authorities)
26 55
     CourseRegisterFieldInfo.objects.filter(course_id=course_id).update(course_name=course_name)
27 56
     CourseRegisterInfo.objects.filter(course_id=course_id).update(course_name=course_name)
28 57
 
29
-    return response()
58
+    for fields in all_fields:
59
+        CourseRegisterFieldInfo.objects.update_or_create(field_id=fields.get('field_id'), defaults={
60
+            'course_id': course_id,
61
+            'course_name': course_name,
62
+            'fields': fields.get('fields', []),
63
+        })
64
+
65
+    course = CourseInfo.objects.get(course_id=course_id)
66
+
67
+    return response(data={
68
+        'course_info': course.data,
69
+    })
30 70
 
31 71
 
32 72
 def get_course_list(request):

+ 19 - 0
registration/migrations/0006_courseinfo_authorities.py

@@ -0,0 +1,19 @@
1
+# Generated by Django 2.2.17 on 2021-03-01 08:34
2
+
3
+from django.db import migrations
4
+import jsonfield.fields
5
+
6
+
7
+class Migration(migrations.Migration):
8
+
9
+    dependencies = [
10
+        ('registration', '0005_courseregisterfieldpoolinfo'),
11
+    ]
12
+
13
+    operations = [
14
+        migrations.AddField(
15
+            model_name='courseinfo',
16
+            name='authorities',
17
+            field=jsonfield.fields.JSONField(blank=True, default=[], help_text='课程权限列表', null=True, verbose_name='authorities'),
18
+        ),
19
+    ]

+ 8 - 1
registration/models.py

@@ -76,7 +76,7 @@ class BranchCampusAdministratorInfo(BaseModelMixin):
76 76
 class CourseInfo(BaseModelMixin):
77 77
     course_id = ShortUUIDField(_('course_id'), max_length=32, blank=True, null=True, help_text='课程唯一标识', db_index=True, unique=True)
78 78
     course_name = models.CharField(_('course_name'), max_length=255, blank=True, null=True, help_text='课程名称')
79
-    # TODO:权限
79
+    authorities = JSONField(_('authorities'), default=[], blank=True, null=True, help_text='课程权限列表')
80 80
 
81 81
     class Meta:
82 82
         verbose_name = _('课程信息')
@@ -86,10 +86,17 @@ class CourseInfo(BaseModelMixin):
86 86
         return '%d' % self.pk
87 87
 
88 88
     @property
89
+    def all_fields(self):
90
+        fields = CourseRegisterFieldInfo.objects.filter(course_id=self.course_id, status=True)
91
+        return [field.data for field in fields]
92
+
93
+    @property
89 94
     def data(self):
90 95
         return {
91 96
             'course_id': self.course_id,
92 97
             'course_name': self.course_name,
98
+            'authorities': self.authorities,
99
+            'fields': self.all_fields,
93 100
         }
94 101
 
95 102