新增管理员类型

FFIB 3 ans auparavant
Parent
Commettre
3c2b272240

+ 2 - 0
api/branch_campus_admin_views.py

@@ -38,6 +38,7 @@ def update_branch_campus_admin(request):
38 38
     target_admin_id = request.POST.get('target_admin_id', '')
39 39
     name = request.POST.get('name', '')
40 40
     phone = request.POST.get('phone', '')
41
+    admin_type = int(request.POST.get('admin_type', 1))
41 42
     user_status = request.POST.get('user_status', 0)
42 43
 
43 44
     password = phone[-6:]
@@ -46,6 +47,7 @@ def update_branch_campus_admin(request):
46 47
     BranchCampusAdministratorInfo.objects.filter(
47 48
         admin_id=target_admin_id,
48 49
     ).update(
50
+        admin_type=admin_type,
49 51
         name=name,
50 52
         phone=phone,
51 53
         password=password,

+ 7 - 1
api/branch_campus_views.py

@@ -50,7 +50,13 @@ def get_branch_campus_list(request):
50 50
 def delete_branch_campus(request):
51 51
     campus_id = request.POST.get('campus_id', '')
52 52
 
53
-    if campus_id == "htmRPpdE3PjB4V35uAesxu":
53
+    try:
54
+        campus = BranchCampusInfo.objects.get(id=campus_id)
55
+    except:
56
+        return response()
57
+
58
+
59
+    if campus.campus_type == BranchCampusInfo.MAIN:
54 60
         return response(40001, '', '总院不可删除')
55 61
 
56 62
     BranchCampusInfo.objects.filter(campus_id=campus_id).update(status=False)

+ 3 - 0
api/course_register_views.py

@@ -105,6 +105,9 @@ def course_register_list(request):
105 105
     campus = BranchCampusInfo.objects.get(campus_id=admin.campus_id)
106 106
     if campus.campus_type == BranchCampusInfo.BRANCH:
107 107
         registers = UserCourseRegisterInfo.objects.filter(campus_id=admin.campus_id)
108
+
109
+    if campus.campus_type == BranchCampusInfo.BRANCH and admin.admin_type == BranchCampusAdministratorInfo.CHANNEL_ADMIN:
110
+        registers = UserCourseRegisterInfo.objects.filter(admin_id=admin.admin_id)
108 111
     
109 112
     if course_id:
110 113
         registers = UserCourseRegisterInfo.objects.filter(course_id=course_id)

+ 3 - 2
api/course_views.py

@@ -6,7 +6,7 @@ from django_query import get_query_value
6 6
 from django_response import response
7 7
 from paginator import pagination
8 8
 
9
-from registration.models import BranchCampusAdministratorInfo, CourseInfo, CourseRegisterFieldInfo, CourseRegisterInfo
9
+from registration.models import BranchCampusAdministratorInfo, CourseInfo, CourseRegisterFieldInfo, CourseRegisterInfo, BranchCampusInfo
10 10
 
11 11
 
12 12
 def add_course(request):
@@ -79,9 +79,10 @@ def get_course_list(request):
79 79
         admin = BranchCampusAdministratorInfo.objects.get(admin_id=admin_id, user_status=BranchCampusAdministratorInfo.ACTIVATED)
80 80
     except BranchCampusAdministratorInfo.DoesNotExist:
81 81
         admin = None
82
+    
82 83
 
83 84
     courses = CourseInfo.objects.filter(status=True)
84
-    if admin:
85
+    if admin and admin.data.get('campus_type', BranchCampusInfo.BRANCH) == BranchCampusInfo.BRANCH:
85 86
         courses = courses.filter(authorities__contains=admin.campus_id)
86 87
     count = courses.count()
87 88
     courses, left = pagination(courses, page, num)

+ 2 - 2
registration/admin.py

@@ -10,11 +10,11 @@ from registration.models import (BranchCampusAdministratorInfo, BranchCampusInfo
10 10
 
11 11
 
12 12
 class BranchCampusInfoAdmin(admin.ModelAdmin):
13
-    list_display = ('campus_id', 'campus_name', 'updated_at', 'created_at')
13
+    list_display = ('campus_id', 'campus_name', 'status', 'updated_at', 'created_at')
14 14
 
15 15
 
16 16
 class BranchCampusAdministratorInfoAdmin(admin.ModelAdmin):
17
-    list_display = ('admin_id', 'campus_id', 'campus_name', 'name', 'phone', 'password', 'encryption', 'user_status', 'updated_at', 'created_at')
17
+    list_display = ('admin_id', 'campus_id', 'campus_name', 'admin_type', 'name', 'phone', 'password', 'encryption', 'user_status', 'updated_at', 'created_at')
18 18
 
19 19
     def save_model(self, request, obj, form, change):
20 20
         password = obj.password or obj.phone[-6:]

+ 18 - 0
registration/migrations/0012_branchcampusadministratorinfo_admin_type.py

@@ -0,0 +1,18 @@
1
+# Generated by Django 2.2.15 on 2021-11-03 09:18
2
+
3
+from django.db import migrations, models
4
+
5
+
6
+class Migration(migrations.Migration):
7
+
8
+    dependencies = [
9
+        ('registration', '0011_usercourseregisterinfo_user_status'),
10
+    ]
11
+
12
+    operations = [
13
+        migrations.AddField(
14
+            model_name='branchcampusadministratorinfo',
15
+            name='admin_type',
16
+            field=models.IntegerField(choices=[(0, '超级管理员'), (1, '渠道管理员')], db_index=True, default=1, help_text='管理员类型', verbose_name='admin_type'),
17
+        ),
18
+    ]

+ 10 - 0
registration/models.py

@@ -50,8 +50,17 @@ class BranchCampusAdministratorInfo(BaseModelMixin):
50 50
         (DELETED, '已删除'),
51 51
     )
52 52
 
53
+    SUPER_ADMIN = 0
54
+    CHANNEL_ADMIN = 1
55
+
56
+    ADMIN_TYPE = (
57
+        (SUPER_ADMIN, '超级管理员'),
58
+        (CHANNEL_ADMIN, '渠道管理员'),
59
+    )
60
+
53 61
     user_id = models.CharField(_('user_id'), max_length=32, blank=True, null=True, help_text='用户ID', db_index=True, unique=True)
54 62
     admin_id = ShortUUIDField(_('admin_id'), max_length=32, blank=True, null=True, help_text='管理员唯一标识', db_index=True, unique=True)
63
+    admin_type = models.IntegerField(_('admin_type'), choices=ADMIN_TYPE, default=CHANNEL_ADMIN, help_text='管理员类型', db_index=True)
55 64
 
56 65
     campus_id = models.CharField(_('campus_id'), max_length=32, blank=True, null=True, help_text='分院唯一标识', db_index=True)
57 66
     campus_name = models.CharField(_('campus_name'), max_length=255, blank=True, null=True, help_text='分院名称')
@@ -77,6 +86,7 @@ class BranchCampusAdministratorInfo(BaseModelMixin):
77 86
         return {
78 87
             'user_id': self.user_id,
79 88
             'admin_id': self.admin_id,
89
+            'admin_type': self.admin_type,
80 90
             'campus_id': self.campus_id,
81 91
             'campus_name': self.campus_name,
82 92
             'campus_type': admin.campus_type,