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)
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)
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)
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)
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)
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)
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)
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)
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)
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)