|
# -*- 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 CourseInfo, CourseRegisterFieldInfo, CourseRegisterInfo
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):
page = request.POST.get('page', 1)
num = request.POST.get('num', 20)
course = CourseInfo.objects.filter(status=True)
count = course.count()
course, left = pagination(course, page, num)
course = [c.data for c in course]
return response(data={
'logs': course,
'count': count,
'left': left,
})
def delete_course(request):
course_id = request.POST.get('course_id', '')
CourseInfo.objects.filter(course_id=course_id).update(statue=False)
return response()
|