|
# -*- coding: utf-8 -*-
from __future__ import division
from django.db.models import Q
from django_query import get_query_value
from django_response import response
from paginator import pagination
from registration.models import BranchCampusAdministratorInfo, CourseRegisterInfo, UserCourseRegisterInfo, BranchCampusInfo
def course_register(request):
admin_id = request.POST.get('admin_id', '')
user_id = request.POST.get('user_id', '')
field_id = request.POST.get('field_id', '')
course_id = request.POST.get('course_id', '')
course_name = request.POST.get('course_name', '')
fields = get_query_value(request, 'fields', val_cast_type='listjson')
try:
admin = BranchCampusAdministratorInfo.objects.get(admin_id=admin_id)
except BranchCampusAdministratorInfo.DoesNotExist:
admin = None
# CourseRegisterInfo.objects.update_or_create(user_id=user_id, field_id=field_id, course_id=course_id, defaults={
# 'campus_id': admin.campus_id if admin else '',
# 'campus_name': admin.campus_name if admin else '',
# 'admin_id': admin.admin_id if admin else '',
# 'admin_name': admin.admin_name if admin else '',
# 'course_name': course_name,
# 'fields': fields,
# })
course_register, _ = CourseRegisterInfo.objects.get_or_create(user_id=user_id, field_id=field_id, course_id=course_id)
if not course_register.campus_id:
course_register.campus_id = admin.campus_id if admin else ''
if not course_register.campus_name:
course_register.campus_name = admin.campus_name if admin else ''
if not course_register.admin_id:
course_register.admin_id = admin.admin_id if admin else ''
if not course_register.admin_name:
course_register.admin_name = admin.name if admin else ''
course_register.course_name = course_name
course_register.fields = fields
course_register.save()
registers = CourseRegisterInfo.objects.filter(user_id=user_id, course_id=course_id, status=True)
registers = [register.data for register in registers]
# UserCourseRegisterInfo.objects.update_or_create(user_id, course_id, defaults={
# 'campus_id': admin.campus_id if admin else '',
# 'campus_name': admin.campus_name if admin else '',
# 'admin_id': admin.admin_id if admin else '',
# 'admin_name': admin.admin_name if admin else '',
# 'course_name': course_name,
# 'fields': registers,
# })
user_course_register, _ = UserCourseRegisterInfo.objects.get_or_create(user_id=user_id, course_id=course_id)
if not user_course_register.campus_id:
user_course_register.campus_id = admin.campus_id if admin else ''
if not user_course_register.campus_name:
user_course_register.campus_name = admin.campus_name if admin else ''
if not user_course_register.admin_id:
user_course_register.admin_id = admin.admin_id if admin else ''
if not user_course_register.admin_name:
user_course_register.admin_name = admin.name if admin else ''
user_course_register.course_name = course_name
user_course_register.fields = registers
user_course_register.save()
return response()
def course_register_list(request):
admin_id = request.POST.get('admin_id', '')
course_id = request.POST.get('course_id', '')
page = request.POST.get('page', 1)
num = request.POST.get('num', 20)
query = request.POST.get('query', '')
campus_id = request.POST.get('campus_id', '')
registers = UserCourseRegisterInfo.objects.filter(fields__contains=query, campus_id__icontains=campus_id, status=True).order_by('-pk')
admin = BranchCampusAdministratorInfo.objects.get(admin_id=admin_id)
campus = BranchCampusInfo.objects.get(campus_id=admin.campus_id)
if campus.campus_type == BranchCampusInfo.BRANCH:
registers = UserCourseRegisterInfo.objects.filter(campus_id=admin.campus_id)
if course_id:
registers = UserCourseRegisterInfo.objects.filter(course_id=course_id)
count = registers.count()
registers, left = pagination(registers, page, num)
registers = [register.data for register in registers]
return response(data={
'logs': registers,
'count': count,
'left': left,
})
def update_course_registers_status(request):
admin_id = request.POST.get('admin_id', '')
course_id = request.POST.get('course_id', '')
user_id = request.POST.get('user_id', '')
user_status = request.POST.get('user_status', '')
try:
admin = BranchCampusAdministratorInfo.objects.get(admin_id=admin_id, user_status=BranchCampusAdministratorInfo.ACTIVATED, status=True)
except BranchCampusAdministratorInfo.DoesNotExist:
return response()
campus = BranchCampusInfo.objects.get(campus_id=admin.campus_id, status=True)
user_course_register = UserCourseRegisterInfo.objects.get(user_id=user_id, course_id=course_id, status=True)
if campus.campus_type == BranchCampusInfo.BRANCH and campus.campus_id != user_course_register.campus_id:
return response()
# 权限校验,只有总院可以修改为已发证状态
if (user_status == UserCourseRegisterInfo.GRADUATED) or (user_status == UserCourseRegisterInfo.CERTIFICATE and campus.campus_type == BranchCampusInfo.MAIN):
user_course_register.user_status = user_status
user_course_register.save()
return response()
|