コード例 #1
0
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))
コード例 #2
0
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))
コード例 #3
0
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))
コード例 #4
0
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))
コード例 #5
0
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))
コード例 #6
0
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))
コード例 #7
0
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))
コード例 #8
0
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))
コード例 #9
0
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))
コード例 #10
0
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))
コード例 #11
0
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))
コード例 #12
0
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))