课程列表增加权限校验及返回微信url

FFIB 4 年 前
コミット
0072ef6738
共有2 個のファイルを変更した19 個の追加3 個の削除を含む
  1. 9 3
      api/course_views.py
  2. 10 0
      registration/models.py

+ 9 - 3
api/course_views.py

@@ -5,7 +5,7 @@ from __future__ import division
5 5
 from django_response import response
6 6
 from paginator import pagination
7 7
 
8
-from registration.models import CourseInfo, CourseRegisterFieldInfo, CourseRegisterInfo
8
+from registration.models import CourseInfo, CourseRegisterFieldInfo, CourseRegisterInfo, BranchCampusAdministratorInfo
9 9
 
10 10
 
11 11
 def add_course(request):
@@ -70,13 +70,19 @@ def update_course(request):
70 70
 
71 71
 
72 72
 def get_course_list(request):
73
+    admin_id = request.POST.get('admin_id', '')
73 74
     page = request.POST.get('page', 1)
74 75
     num = request.POST.get('num', 20)
75 76
 
76
-    course = CourseInfo.objects.filter(status=True)
77
+    try:
78
+        admin = BranchCampusAdministratorInfo.objects.get(admin_id=admin_id, user_status=BranchCampusAdministratorInfo.ACTIVATED)
79
+    except:
80
+        return response()
81
+
82
+    course = CourseInfo.objects.filter(authorities__contains=[{'campus_id': admin.campus_id}], status=True)
77 83
     count = course.count()
78 84
     course, left = pagination(course, page, num)
79
-    course = [c.data for c in course]
85
+    course = [c.admindata(admin_id) for c in course]
80 86
 
81 87
     return response(data={
82 88
         'logs': course,

+ 10 - 0
registration/models.py

@@ -99,6 +99,16 @@ class CourseInfo(BaseModelMixin):
99 99
             'authorities': self.authorities,
100 100
             'fields': self.all_fields,
101 101
         }
102
+    
103
+    @property
104
+    def admindata(self, admin_id):
105
+        fields = CourseRegisterFieldInfo.objects.filter(course_id=self.course_id, status=True)
106
+        return {
107
+            'course_id': self.course_id,
108
+            'course_name': self.course_name,
109
+            'authorities': self.authorities,
110
+            'fields': [field.qrcodedata(admin_id) for field in fields],
111
+        }
102 112
 
103 113
 
104 114
 class CourseRegisterFieldPoolInfo(BaseModelMixin):