Beispiel #1
0
def _add_courseware(request):
    course_id = request.POST['course_id']
    grade = int(request.POST['grade'])
    classes = db_util.get_teacher_classes(request.user, grade, course_id)
    if not classes:
        return _error_page(request, u'对不起,您无权管理该课程的课件')

    form = forms.CoursewareForm(request.POST, request.FILES)
    form.refresh_choices(classes) 
    if form.is_valid():
        path = util.handle_upload(
            form.cleaned_data['file'],
            util.upload_dir(str(request.user.id), course_id))
        courseware = course_ware.create_courseware(
            course_id, grade, request.user, path, form.cleaned_data)
        log.log_addition(request.user, courseware, u'上传课件')
        return HttpResponseRedirect('/coursewares/%d/%d/' % (int(course_id), grade))
    else:
        course_name = request.POST['course_name']
        ctx = RequestContext(request, {
            'courseware': _dummy_courseware(grade, course_id, course_name),
            'form': form,
            'newware': True,
            'upload_id': uuid.uuid1().get_hex(),
            })
        return render_to_response('courseware_detail.html', ctx)
Beispiel #2
0
def teacher_add(request):
    if request.POST.has_key('add'):
        form = forms.TeacherForm(request.POST)
        if form.is_valid():
            uname = form.cleaned_data['username']
            with transaction.commit_on_success():
                user = User.objects.create(
                    username=uname,
                    first_name=form.cleaned_data['name'],
                    email=form.cleaned_data['email'])
                user.set_password(form.cleaned_data['password'])
                user.groups.add(
                    db_util.group_of_usertype(common_def.USERTYPE_TEACHER))
                user.save()
                profile = user.userprofile
                profile.usertype = common_def.USERTYPE_TEACHER
                profile.region_id = request.session['region']
                profile.school_id = request.session['school']
                profile.gender = form.cleaned_data['gender']
                profile.telphone = form.cleaned_data['telphone']
                profile.contact = json.dumps(
                    {
                        'tel': profile.telphone,
                        'email': user.email
                    },
                    ensure_ascii=False)
                profile.save()
                log.log_addition(request.user, user, u'添加教师')
            return HttpResponseRedirect('/teacher/list/')
    else:
        form = forms.TeacherForm()
    ctx = RequestContext(request, {
        'form': form,
    })
    return render_to_response('change_teacher.html', ctx)
Beispiel #3
0
def semester_list(request):
    level = 0
    if request.POST.has_key('add'):
        form = forms.SemesterForm(request.POST)
        level = int(request.POST['level']) + 1
        if form.is_valid():
            semester = models.Semester.objects.create(
                name=form.cleaned_data['name'],
                start_date=form.cleaned_data['start_date'],
                end_date=form.cleaned_data['end_date'],
                region_id=request.session['region'],
                school_id=request.session.get('school'))
            log.log_addition(request.user, semester, u'添加学期')
            ctx = RequestContext(request, {
                'level': -level,
            })
            return render_to_response('history_goto.html', ctx)
    elif request.POST.has_key('delete'):
        ids = request.POST.getlist('selected')
        models.Semester.objects.filter(id__in=ids).delete()
        log.log_deletion(request.user, None, u'删除学期')
        form = forms.SemesterForm()
    else:
        form = forms.SemesterForm()
    semesters = db_util.get_semesters(request.session['region'],
                                      request.session.get('school'))
    ctx = RequestContext(request, {
        'form': form,
        'semesters': semesters,
        'level': level
    })
    return render_to_response('semester_list.html', ctx)
Beispiel #4
0
def admin_add(request):
    if request.POST:
        form = forms.adminForm(request.user, request.session.get('region'),
                               request.POST)
        if request.POST.has_key('add'):
            if form.is_valid():
                with transaction.commit_on_success():
                    user = User.objects.create(
                        username=form.cleaned_data['username'],
                        first_name=form.cleaned_data['name'],
                        #last_name=form.cleaned_data['en_name'],
                        email=form.cleaned_data['email'],
                        is_staff=True)
                    user.set_password(form.cleaned_data['password'])
                    user.save()
                    profile = user.userprofile
                    profile.usertype = form.cleaned_data['type']
                    user.groups.add(db_util.group_of_usertype(
                        profile.usertype))
                    profile.school_id = form.cleaned_data.get('school')
                    region = form.cleaned_data.get('region')
                    profile.region_id = region if region else request.session[
                        'region']
                    profile.save()
                    log.log_addition(request.user, user, u'添加管理员')
                return HttpResponseRedirect('/admin/list/')
        elif request.POST.has_key('type'):
            form.errors.clear()
            #form.password = request.POST['password']
    else:
        form = forms.adminForm(request.user, request.session.get('region'))
    ctx = RequestContext(request, {
        'form': form,
    })
    return render_to_response('change_admin.html', ctx)
Beispiel #5
0
def school_add(request, region):
    if request.POST.has_key('add'):
        form = forms.SchoolForm(request.POST)
        form.fields['type'].choices = common_def.get_all_schooltypes()
        cache.set_selected_schooltype(request.user, 'change_school',
                                      request.POST['type'], 300)
        if form.is_valid():
            region_name = request.session.get('region_name')
            if not region_name:
                r = models.Region.objects.get(pk=region)
                region_name = r.name
                request.session['region_name'] = region_name
            school = models.School.objects.create(
                name=form.cleaned_data['name'],
                code=form.cleaned_data['code'],
                region_id=region,
                region_name=region_name,
                type=form.cleaned_data['type'],
                description=form.cleaned_data['description'],
                address=form.cleaned_data['address'],
                telphone=form.cleaned_data['telphone'],
                email=form.cleaned_data['email'])
            log.log_addition(request.user, school, u'添加学校')
            return HttpResponseRedirect('/school/list/%s/' % region)
    else:
        t = cache.get_selected_schooltype(request.user, 'change_school')
        form = forms.SchoolForm(initial={'type': t})
        form.fields['type'].choices = common_def.get_all_schooltypes()
    ctx = RequestContext(request, {
        'form': form,
        'region': region,
    })
    return render_to_response('change_school.html', ctx)
Beispiel #6
0
def _add_courseware(request, token, uid, back_level):
    course_id = request.POST['course_id']
    grade = int(request.POST['grade'])
    classes = db_util.get_teacher_classes(request.user, grade, course_id)
    if not classes:
        return _error_page(request, u'对不起,您无权管理该课程的课件')

    form = forms.CoursewareForm(request.POST, request.FILES)
    form.refresh_choices(classes)
    if form.is_valid():
        path = util.handle_upload(
            form.cleaned_data['file'],
            util.upload_dir(str(request.user.id), course_id))
        courseware = course_ware.create_courseware(course_id, grade,
                                                   request.user, path,
                                                   form.cleaned_data)
        log.log_addition(request.user, courseware, u'上传课件')
        course_ware.convert_courseware(courseware, False,
                                       request.META['SERVER_PORT'])
        #log.log_change(request.user, courseware, u'格式转换')
        ctx = RequestContext(request, {
            'level': -back_level,
        })
        return render_to_response('history_goto.html', ctx)
    else:
        course_name = request.POST['course_name']
        ctx = RequestContext(
            request, {
                'courseware': _dummy_courseware(grade, course_id, course_name),
                'form': form,
                'newware': True,
                'back_level': back_level,
                'upload_id': uuid.uuid1().get_hex(),
            })
        return render_to_response('courseware_detail.html', ctx)
Beispiel #7
0
def student_add(request):
    if request.POST.has_key('add'):
        form = forms.UserForm(request.POST)
        form.fields['grade'].choices = common_def.get_all_grades(
            request.session['school_type'], prompt=True)
        form.fields['myclass'].choices = cache.get_grade_classes(
            request.session['school'], int(request.POST['grade']))
        if form.is_valid():
            uname = form.cleaned_data['username']
            #utype = int(form.cleaned_data['type'])
            with transaction.commit_on_success():
                user = User.objects.create(
                    username=uname,
                    first_name=form.cleaned_data['name'],
                    email=form.cleaned_data['email'])
                user.set_password(form.cleaned_data['password'])
                user.save()
                profile = user.userprofile
                profile.usertype = common_def.USERTYPE_STUDENT
                profile.region_id = request.session['region']
                profile.school_id = request.session['school']
                profile.myclass_id = int(request.POST['myclass'])
                profile.gender = form.cleaned_data['gender']
                profile.birthday = form.cleaned_data['birthday']
                profile.telphone = form.cleaned_data['tel']
                profile.contact = json.dumps(
                    {
                        'tel': profile.telphone,
                        'email': user.email
                    },
                    ensure_ascii=False)
                profile.save()
                log.log_addition(request.user, user, u'添加用户')
            return HttpResponseRedirect('/student/list/')
    elif request.POST:
        # change grade
        grade = int(request.POST['grade'])
        cache.set_selected_grade(request.user, 'change_student', grade, 300)
        form = forms.UserForm(request.POST)
        form.fields['grade'].choices = common_def.get_all_grades(
            request.session['school_type'], prompt=True)
        form.fields['myclass'].choices = cache.get_grade_classes(
            request.session['school'], grade)
        form.errors.clear()
    else:
        grade = cache.get_selected_grade(request.user, 'change_student')
        form = forms.UserForm(initial={'grade': grade})
        form.fields['grade'].choices = common_def.get_all_grades(
            request.session['school_type'], prompt=True)
        form.fields['myclass'].choices = cache.get_grade_classes(
            request.session['school'], grade)
    ctx = RequestContext(request, {
        'form': form,
    })
    return render_to_response('change_user.html', ctx)
Beispiel #8
0
def region_add(request):
    if request.POST.has_key('add'):
        form = forms.RegionForm(request.POST)
        if form.is_valid():
            region = models.Region.objects.create(
                name=form.cleaned_data['name'], code=form.cleaned_data['code'])
            log.log_addition(request.user, region, u'添加区域')
            return HttpResponseRedirect('/region/list/')
    else:
        form = forms.RegionForm()
    ctx = RequestContext(request, {'form': form})
    return render_to_response('change_region.html', ctx)
Beispiel #9
0
def add_course(request):
    if request.POST.has_key('add'):
        form = forms.CourseForm(request.POST, request.FILES)
        if form.is_valid():
            course = form.save()
            log.log_addition(request.user, course, u'添加课程')
            return HttpResponseRedirect('/course/list/')
    else:
        form = forms.CourseForm()
    ctx = RequestContext(request, {
        'form': form,
    })
    return render_to_response('change_course.html', ctx)
Beispiel #10
0
def class_add(request, grade):
    if request.POST.has_key('add'):
        form = forms.ClassForm(request.POST)
        if form.is_valid():
            clas = db_util.create_class(form.cleaned_data['name'], int(grade),
                                        None, request.session['school'],
                                        request.session['school_type'])
            log.log_addition(request.user, clas, u'添加班级')
            cache.clear_grade_classes(request.session['school'], int(grade))
            return HttpResponseRedirect('/class/list/%s/' % grade)
    else:
        form = forms.ClassForm()
    ctx = RequestContext(request, {
        'form': form,
    })
    return render_to_response('change_class.html', ctx)