|
# -*- coding: utf-8 -*-
from __future__ import division
from django_query import get_query_value
from django_response import response
from paginator import pagination
from registration.models import BranchCampusAdministratorInfo, CourseInfo, CourseRegisterFieldInfo, CourseRegisterInfo, BranchCampusInfo
def add_course(request):
# {
# "course_name": "",
# "authorities": [{
# "admin_id": "",
# "campus_id": "",
# "campus_name": "",
# "name": "",
# "phone": "",
# "user_status": "",
# }],
# "fields": [{
# "field_id": "", # 有值更新,没值新建
# "fields": [
# {
# "type": "input", # input, select, file
# "name": "",
# "options": ["男", "女"], # type=select
# }
# ]
# }]
# }
course_name = request.POST.get('course_name', '')
authorities = get_query_value(request, 'authorities', val_cast_type='listjson')
all_fields = get_query_value(request, 'fields', val_cast_type='listjson')
course = CourseInfo.objects.create(course_name=course_name, authorities=authorities)
for fields in all_fields:
CourseRegisterFieldInfo.objects.create(course_id=course.course_id, course_name=course_name, fields=fields.get('fields', []))
return response(data={
'course_id': course.course_id,
'course_info': course.data,
})
def update_course(request):
course_id = request.POST.get('course_id', '')
course_name = request.POST.get('course_name', '')
authorities = get_query_value(request, 'authorities', val_cast_type='listjson')
all_fields = get_query_value(request, 'fields', val_cast_type='listjson')
CourseInfo.objects.filter(course_id=course_id).update(course_name=course_name, authorities=authorities)
CourseRegisterFieldInfo.objects.filter(course_id=course_id).update(course_name=course_name)
CourseRegisterInfo.objects.filter(course_id=course_id).update(course_name=course_name)
for fields in all_fields:
CourseRegisterFieldInfo.objects.update_or_create(field_id=fields.get('field_id'), defaults={
'course_id': course_id,
'course_name': course_name,
'fields': fields.get('fields', []),
})
course = CourseInfo.objects.get(course_id=course_id)
return response(data={
'course_info': course.data,
})
def get_course_list(request):
admin_id = request.POST.get('admin_id', '')
page = request.POST.get('page', 1)
num = request.POST.get('num', 20)
try:
admin = BranchCampusAdministratorInfo.objects.get(admin_id=admin_id, user_status=BranchCampusAdministratorInfo.ACTIVATED)
except BranchCampusAdministratorInfo.DoesNotExist:
admin = None
courses = CourseInfo.objects.filter(status=True)
if admin and admin.data.get('campus_type', BranchCampusInfo.BRANCH) == BranchCampusInfo.BRANCH:
courses = courses.filter(authorities__contains=admin.campus_id)
count = courses.count()
courses, left = pagination(courses, page, num)
courses = [course.admindata(admin_id) for course in courses]
return response(data={
'logs': courses,
'count': count,
'left': left,
})
def delete_course(request):
course_id = request.POST.get('course_id', '')
CourseInfo.objects.filter(course_id=course_id).update(status=False)
return response()
|