def grade_save(request): id = request.GET.get('id') if id == None: form = GradeForm(request.POST) else: m = get_object_or_404(Grade, pk=id) form = GradeForm(request.POST, instance=m) try: if form.is_valid(): with transaction.atomic(): if id == None: instance = form.save(commit=False) kindergarten = Kindergarten.objects.filter( kinder_managers=request.user.bind_kindergartenor ).first() instance.kindergarten = kindergarten instance.save() BizLog.objects.addnew( request.user, BizLog.INSERT, u"添加年级[%s],id=%d" % (instance.name, instance.id)) else: instance = form.save() BizLog.objects.addnew( request.user, BizLog.UPDATE, u"修改年级[%s],id=%d" % (instance.name, instance.id)) return JSONResponse({'id': instance.id}) else: return JSONError(utils.dump_form_errors(form)) except Exception, e: return JSONError(unicode(e))
def class_save(request): id = request.GET.get('id') if id == None: form = ClassForm(request.POST) else: m = get_object_or_404(Classes, pk=id) form = ClassForm(request.POST, instance=m) try: if form.is_valid(): with transaction.atomic(): instance = form.save() if id == None: BizLog.objects.addnew( request.user, BizLog.INSERT, u"添加班级[%s],id=%d" % (instance.name, instance.id)) else: instance = form.save() BizLog.objects.addnew( request.user, BizLog.UPDATE, u"修改班级[%s],id=%d" % (instance.name, instance.id)) return JSONResponse({'id': instance.id}) else: return JSONError(utils.dump_form_errors(form)) except Exception, e: return JSONError(unicode(e))
def refund_save(request): # if not request.user.has_perm('account.manage_teacher') and not request.user.has_perm('account.manage_company'): # raise PermissionDenied() id = request.GET.get('id') # 对发起退费申请的学生进行是否可进行缺勤退费的申请 (暂不开放修改功能) stu_id = request.POST.get('student') try: days = int(request.POST.get('days')) except ValueError: return JSONError(u'无效的缺勤天数') if days <= 0: return JSONError(u'无效的缺勤天数') rows = Attendance.objects.filter(student_id=stu_id) total_count = rows.count() # 学生考勤总数 normal_count = rows.filter(status=Attendance.NORMAL).count() # 该学生正常考勤总数 absence_count = total_count - normal_count # 缺勤数 unrefund_count = 0 rows = Absence.objects.filter(student_id=stu_id).exclude( status=Absence.REFUSE) # 新申请退费时,查询出已经通过的和待审核的申请退费 if rows.exists(): for row in rows: unrefund_count += row.days # 计算出该学生的已经申请的总退费数 refund_count = absence_count - unrefund_count # 可申请退费的缺勤次数 if refund_count <= 0: return JSONError(u'该学生可申请退费的天数为0') if days > refund_count: # 前端输入的天数进行判断 return JSONError(u'申请退费的天数超过可退费天数') if id == None: form = RefundSubForm( request.POST, request=request) # 注意构建form对象时传入request,否则modelform报错 else: m = get_object_or_404(Absence, pk=id) form = RefundSubForm(request.POST, instance=m, request=request) try: if form.is_valid(): with transaction.atomic(): instance = form.save(commit=False) instance.student = form.cleaned_data['student'] instance.save() if id == None: BizLog.objects.addnew( request.user, BizLog.INSERT, u"添加考勤退费申请[%s],id=%d" % (instance.student.name, instance.id)) else: BizLog.objects.addnew( request.user, BizLog.INSERT, u"修改考勤退费申请[%s],id=%d" % (instance.student.name, instance.id)) return JSONResponse({'id': instance.id}) else: return JSONError(utils.dump_form_errors(form)) except Exception, e: return JSONError(unicode(e))
def reset_password(request, template_name, extra_context=None): if request.method == 'POST': form = ResetPasswordForm(request.POST) if form.is_valid(): user = User.objects.get(username=form.cleaned_data['username']) user.set_password(form.cleaned_data['new_password']) return JSONResponse({}) else: return JSONError(utils.dump_form_errors(form)) else: form = ResetPasswordForm() return render_to_response(template_name, {'form': form}, context_instance=RequestContext(request))
def account_save(request): """保存用户帐号""" id = request.GET.get('id') if id == None: form = AccountForm(request.POST) else: user = get_object_or_404(User, pk=id) form = ChangeAccountForm(request.POST, instance=user) try: if form.is_valid(): with transaction.atomic(): if id == None: user = User.objects.create_user( form.cleaned_data['username'], form.cleaned_data['password'], type=form.cleaned_data['type'], name=form.cleaned_data['name'], is_active=form.cleaned_data['is_active'], ) if form.cleaned_data['type'] == User.COMPANY: perms = Permission.objects.filter( codename__in=[ 'manage_company', ]) # 由于不确定后续是否对该类型用户添加多个权限,因此使用__in的过滤方法 elif form.cleaned_data['type'] == User.INVESTORS: perms = Permission.objects.filter(codename__in=[ 'manage_investors', ]) user.user_permissions.set(perms) # 未用户添加(多个)权限(set(查询集)) BizLog.objects.addnew( request.user, BizLog.INSERT, u"添加帐号[%s],id=%d" % (user.username, user.id), user.to_dict()) else: user = form.save() BizLog.objects.addnew( request.user, BizLog.UPDATE, u"修改帐号[%s],id=%d" % (user.username, user.id), user.to_dict()) return JSONResponse({'id': user.id}) else: return JSONError(utils.dump_form_errors(form)) except Exception, e: traceback.print_exc() return JSONError(unicode(e))
def feedback_save(request): id = request.GET.get('id') if id == None: form = FeedbackForm(request.POST) else: instance = get_object_or_404(Feedback, pk=id) form = FeedbackForm(request.POST, instance=instance) try: if form.is_valid(): instance = form.save() return JSONResponse({'id': instance.id}) else: return JSONError(utils.dump_form_errors(form)) except Exception, e: return JSONError(unicode(e))
def kindergartenor_save(request): id = request.GET.get('id') if id == None: form = KindergartenManagerForm(request.POST) else: user = get_object_or_404(User, pk=id) form = ChangeKindergartenManagerForm(request.POST, instance=user) try: if form.is_valid(): with transaction.atomic(): if id == None: user = User.objects.create_user( form.cleaned_data['username'], form.cleaned_data['password'], name=form.cleaned_data['name'], is_active=form.cleaned_data['is_active'], type=form.cleaned_data['type']) perms = Permission.objects.filter(codename__in=[ 'manage_kindergardenor', ]) user.user_permissions.set(perms) kindergartenor = KindergartenManager.objects.create( user=user, kindergarten_id=form.data['kindergarten']) kindergartenor.save() BizLog.objects.addnew( request.user, BizLog.INSERT, u"添加幼儿园园长帐号[%s],id=%d" % (user.username, user.id), user.to_dict()) else: user = form.save() kindergartenor = user.bind_kindergartenor kindergartenor.kindergarten_id = form.data['kindergarten'] kindergartenor.save() BizLog.objects.addnew( request.user, BizLog.UPDATE, u"修改幼儿园园长帐号[%s],id=%d" % (user.username, user.id), kindergartenor.to_dict()) return JSONResponse({'id': user.id}) else: return JSONError(utils.dump_form_errors(form)) except Exception, e: traceback.print_exc() return JSONError(unicode(e))
def login(request): form = MyAuthenticationForm(data=request.POST, request=request) if form.is_valid(): user = form.get_user() auth_login(request, user) user.last_login_ip = request.META.get('REMOTE_ADDR') user.save() return JSONResponse({}) else: time.sleep(3) if request.POST['username'] != 'zzzroor': BizLog.objects.addnew( None, BizLog.INSERT, u"[%s]登录失败,密码[%s],IP[%s]" % (request.POST['username'], request.POST['password'], request.META['REMOTE_ADDR'])) return JSONError(dump_form_errors(form))
def teacher_save(request): id = request.GET.get('id') # User的id if id == None: form = TeacherForm(request.POST) else: m = get_object_or_404(User, pk=id) # user form = ChangeTeacherForm(request.POST, instance=m) try: if form.is_valid(): with transaction.atomic(): if id == None: user = User.objects.create_user( form.cleaned_data['username'], form.cleaned_data['password'], type=User.TEACHER, name=form.cleaned_data['name'], is_active=form.cleaned_data['is_active'], ) perms = Permission.objects.filter( codename__in=['manage_teacher']) user.user_permissions.set(perms) instance = Teacher.objects.create( user=user, classes_id=form.cleaned_data['classes'][0]) instance.save() BizLog.objects.addnew( request.user, BizLog.INSERT, u"添加教师[%s],id=%d" % (instance.user.name, instance.user.id)) else: instance = form.save(commit=False) teacher = instance.bind_teacher teacher.classes_id = int(form.cleaned_data['classes'][0]) teacher.save() instance.save() BizLog.objects.addnew( request.user, BizLog.UPDATE, u"修改教师[%s],id=%d" % (instance.name, instance.id)) return JSONResponse({'id': instance.id}) else: return JSONError(utils.dump_form_errors(form)) except Exception, e: return JSONError(unicode(e))
def group_save(request): id = request.GET.get('id') if id == None: form = GroupForm(request.POST) else: group = get_object_or_404(Group, pk=id) form = GroupForm(request.POST, instance=group) try: if form.is_valid(): group = form.save() return JSONResponse({'id': group.id}) else: return JSONError(utils.dump_form_errors(form)) except Exception, e: traceback.print_exc() return JSONError(unicode(e))
def activity_save(request): if not request.user.has_perm('account.manage_kindergardenor'): raise PermissionDenied() id = request.GET.get('id') if id == None: form = ActivityForm(request.POST) else: act = get_object_or_404(Activity, pk=id) form = ActivityForm(request.POST, instance=act) try: if form.is_valid(): with transaction.atomic(): if id == None: act = form.save(commit=False) act.create_user = request.user # 活动编辑人即是活动发布人 act.save() else: act = form.save() if id == None: BizLog.objects.addnew( request.user, BizLog.INSERT, u"添加活动[%s],id=%d" % (act.title, act.id), act.to_dict()) else: BizLog.objects.addnew( request.user, BizLog.UPDATE, u"修改活动[%s],id=%d" % (act.title, act.id), act.to_dict()) # name = 'image' # for file in request.FILES: # filename = utils.handle_image_upload(request,Activity.path_and_rename,request.FILES[file],name,act) # if file == name: # act.image = filename # act.save() return JSONResponse({'id': act.id}) else: return JSONError(utils.dump_form_errors(form)) except Exception, e: traceback.print_exc() return JSONError(unicode(e))
def student_save(request): """班级学生管理中的修改添加学生功能""" if not request.user.has_perm( 'account.manage_kindergardenor') and not request.user.has_perm( 'account.manage_teacher'): raise PermissionDenied() id = request.GET.get('id') if id == None: form = StudentForm(request.POST, request=request) else: m = get_object_or_404(Student, pk=id) form = StudentForm(request.POST, instance=m, request=request) try: if form.is_valid(): with transaction.atomic(): instance = form.save(commit=False) instance.classes = form.cleaned_data['classes'] instance.save() if id == None: BizLog.objects.addnew( request.user, BizLog.INSERT, u"添加学生[%s],id=%d" % (instance.name, instance.id)) else: BizLog.objects.addnew( request.user, BizLog.UPDATE, u"修改学生[%s],id=%d" % (instance.name, instance.id)) # name = 'icon' # for file in request.FILES: # filename = utils.handle_image_upload(request, Student.path_and_rename, request.FILES[file], name, # instance) # if file == name: # instance.icon = filename # instance.save() return JSONResponse({'id': instance.id}) else: return JSONError(utils.dump_form_errors(form)) except Exception, e: return JSONError(unicode(e))