def post(self, request, student, **kwargs): """ 修改信息,只传需要修改的信息 :param request: :param me: :return: """ attr_list = [ 'id', 'name', 'sex', 'politics_status', 'huji', 'nation', 'origin', 'tele', 'email', 'birth', 'chidao', 'zaotui', 'chufen', 'date_in_school', ] update_params = generate_dict_from_dict(kwargs, attr_list, False) if len(update_params) == 0: return response.correct_response() Student.objects.filter(pk=student.num).update(**update_params) return response.correct_response()
def get(self, request, **kwargs): classes = Clazz.objects.all() count = len(classes) if count == 0: return response.correct_response({'count': 0}) attr_list = [ 'id', 'name', 'profession', ('students.all().count()', 'student_count') ] res = generate_dict_list(classes, attr_list) return response.correct_response({ 'count': count, 'list': res, })
def get(self, request, me, clazz): students = clazz.students.all() count = len(students) if count == 0: return response.correct_response({'count': 0}) attr_list = [ 'name', 'num', 'sex', 'chidao', 'zaotui', 'chufen', ] res = generate_dict_list(students, attr_list) return response.correct_response({'count': count, 'list': res})
def get(self, request, me): res = { 'chidao': me.chidao, 'zaotui': me.zaotui, 'chufen': me.chufen, } return response.correct_response(res)
def get(self, request, student, **kwargs): """ 查看信息 :param request: :param me: :return: """ attr_list = [ 'num', 'id', 'name', 'sex', 'politics_status', 'huji', 'nation', 'origin', 'tele', 'email', 'birth', 'date_in_school', 'clazz.name', 'clazz.profession', 'chidao', 'zaotui', 'chufen', ] res = generate_dict_from_object(student, attr_list) return response.correct_response(res)
def get(self, request, me): attr_list = [ 'num', 'name', ] res = generate_dict_from_object(me, attr_list) return response.correct_response(res)
def get(self, request, model, **kwargs): if model == 'teacher': model_class = Teacher elif model == 'student': model_class = Student elif model == 'admin': model_class = Admin accounts = model_class.objects.all() count = len(accounts) if count == 0: return response.correct_response({'count': 0}) attr_list = [ 'num', 'name', ] res = generate_dict_list(accounts, attr_list) return response.correct_response({'count': count, 'list': res})
def get(self, request, me): """ 获取我的请假申请 :param request: :param me: :return: """ leaves = me.leaves.all() count = len(leaves) if count == 0: return response.correct_response({'count': 0}) attr_list = [ 'date', 'reason', 'state', ] res = generate_dict_list(leaves, attr_list) return response.correct_response({'count': count, 'list': res})
def delete(self, request, model, num, **kwargs): if model == 'teacher': model_class = Teacher elif model == 'student': model_class = Student elif model == 'admin': model_class = Admin model_class.objects.get(pk=num).delete() return response.correct_response()
def get(self, request, me): """ 获取允许添加班主任的班级 :param request: :param me: :return: """ classes = Clazz.objects.filter(teacher__isnull=True) count = len(classes) if count == 0: return response.correct_response({'count': 0}) attr_list = [ 'id', 'name', 'profession', ('students.all().count()', 'student_count'), ] res = generate_dict_list(classes, attr_list) return response.correct_response({'count': count, 'list': res})
def post(self, request, me, reason, date): """ 请假申请 :param request: :param me: :param reason: :param date: :return: """ Leave.objects.create(reason=reason, date=date, student=me) return response.correct_response()
def delete(self, request, me, leave): """ 删除请假申请 :param request: :param me: :return: """ if leave.student.num == me.num: leave.delete() return response.correct_response() else: return response.err_response_not_belong('student', me.num, 'leave', leave.id)
def get(self, request, me): """ 获取老师所带班级的所有请假申请 :param request: :param me: :return: """ leaves = Leave.objects.filter(student__clazz__teacher=me) count = len(leaves) if count == 0: return response.correct_response({'count': 0}) attr_list = [ 'id', 'date', 'reason', 'state', 'student.name', ('student.clazz.name', 'class_name'), ] res = generate_dict_list(leaves, attr_list) return response.correct_response({'count': count, 'list': res})
def post(self, request, num, name, **kwargs): """ 注册 :param request: :return: """ try: Admin.objects.get(pk=num) return response.err_response(1) except Admin.DoesNotExist: Admin.objects.create(num=num, psd=generate_md5('123'), name=name) return response.correct_response()
def post(self, request, num, psd, name, **kwargs): """ 注册 :param request: :return: """ try: Teacher.objects.get(pk=num) return response.err_response(1) except Teacher.DoesNotExist: Teacher.objects.create(num=num, psd=psd, name=name) return response.correct_response()
def get(self, request, me): """ 老师获取自己管理的班级 :param request: :return: name 班级名称 profession 所属专业 student_count 班级人数 """ classes = me.classes.all() count = len(classes) if count == 0: return response.correct_response({'count': 0}) attr_list = [ 'id', 'name', 'profession', ('students.all().count()', 'student_count'), ] res = generate_dict_list(classes, attr_list) return response.correct_response({'count': count, 'list': res})
def post(self, request, num, psd, name, clazz, **kwargs): """ 注册 :param request: :return: 错误code 1,学号已存在 """ try: Student.objects.get(pk=num) return response.err_response(1) except Student.DoesNotExist: Student.objects.create(num=num, psd=psd, name=name, clazz=clazz) return response.correct_response()
def post(self, request, me, old, new): """ 修改密码 :param request: :param me: :param old: :param new: :return: """ result = modify_psd(Teacher, me, old, new) if result: return response.correct_response() else: return response.err_response(1)
def delete(self, request, me, clazz): """ 老师减少自己管理的班级 :param request: :param me: :param clazz: :return: """ if clazz.teacher.num == me.num: me.classes.remove(clazz) return response.correct_response() else: return response.err_response_not_belong('teacher', me.num, 'class', clazz.id)
def get(self, request, **kwargs): """ 获取能够加入的班级 :param request: :param kwargs: :return: """ classes = Clazz.objects.all() count = len(classes) if count == 0: return response.correct_response({ 'count': 0 }) attr_list = [ 'id', 'name', 'profession', ] res = generate_dict_list(classes, attr_list) return response.correct_response({ 'count': count, 'list': res, })
def post(self, request, clazz, me): """ 老师添加自己管理的班级 :param request: :param clazz: :param me: :return: 错误code 1,班级已经有班主任 """ if clazz.teacher is not None: return response.err_response(1) else: me.classes.add(clazz) return response.correct_response()
def post(self, request, me, old, new): """ 修改密码 :param request: :param me: :param old: :param new: :return: 错误code 1,原密码错误 """ result = modify_psd(Student, me, old, new) if result: return response.correct_response() else: return response.err_response(1)
def get(self, request, num, psd): """ 登录 :param request: :return: 错误code 1:账号或密码错误 """ try: user = Teacher.objects.get(pk=num, psd=psd) token = user.update_token() res = response.correct_response() res.set_cookie('TOKEN', token) res.set_cookie('role', User.ROLE_TEACHER) return res except Teacher.DoesNotExist: return response.err_response(1)
def post(self, request, me, leave, allow=False): """ 审核请假 :param request: :param me: :return: 错误code 1,该请假申请已审核,不能修改 """ if leave.state != Leave.STATE_WAITING: return response.err_response(1) if leave.student.clazz.teacher.num == me.num: if allow: Leave.objects.filter(pk=leave.id).update(state=Leave.STATE_YES) else: Leave.objects.filter(pk=leave.id).update(state=Leave.STATE_NO) return response.correct_response() else: return response.err_response_not_belong('teacher', me.num, 'leave', leave.id)
def delete(self, request, model, account_id, **kwargs): """ 重置密码 :param request: :param model: :param account_id: :return: """ if model == 'teacher': model_class = Teacher elif model == 'student': model_class = Student elif model == 'admin': model_class = Admin try: model_class.objects.get(pk=account_id) model_class.objects.filter(pk=account_id).update( psd=generate_md5('123456')) return response.correct_response() except model_class.DoesNotExist: return response.err_response_pk('account', account_id)
def get(self, request, me): """ 查看信息 :param request: :param me: :return: """ attr_list = [ 'num', 'id', 'name', 'sex', 'politics_status', 'huji', 'nation', 'origin', 'tele', 'email', 'birth', 'date_in_school', ] res = generate_dict_from_object(me, attr_list) return response.correct_response(res)
def post(self, request, me): return response.correct_response()
def post(self, request, name, profession, **kwargs): Clazz.objects.create(name=name, profession=profession) return response.correct_response()
def delete(self, request, student, **kwargs): student.delete() return response.correct_response()