# -*- 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()