def _edit_courseware(courseware, request, classes): form = forms.CoursewareForm(request.POST, request.FILES) form.fields['file'].required = False #classes = db_util.get_teacher_classes(request.user, courseware.grade, courseware.course_id) form.refresh_choices(classes) form.full_clean() if form.is_valid(): f = form.cleaned_data['file'] if f: path = util.handle_upload(f, util.upload_dir(str(request.user.id), str(courseware.course_id))) courseware.path = path courseware.state = common_def.COURSEWARE_STATE_WAITING courseware.modified_time = datetime.now() course_ware.delete_delivered(courseware) courseware.name = form.cleaned_data['title'] courseware.book_provider_id = form.cleaned_data['provider'] courseware.category_id = form.cleaned_data['category'] courseware.share_level = form.cleaned_data['share'] courseware.week = form.cleaned_data['week'] courseware.description = form.cleaned_data['description'] courseware.password = form.cleaned_data['password'] courseware.classes = form.cleaned_data['classes'] upload_img = form.cleaned_data['image'] if upload_img: #image = courseware.image courseware.image = upload_img # if image: # try: # os.remove(image.path) # except Exception, e: # print >>sys.stderr, e courseware.save() log.log_change(request.user, courseware, u'修改课件') return form
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 _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 courseware_add(request, token, uid, grade, course_id): course = models.Course.objects.get(pk=course_id) grade = int(grade) back_level = 1 if 'add' in request.POST: back_level = int(request.POST['back_level']) + 1 return _add_courseware(request, token, uid, back_level) classes = db_util.get_teacher_classes(request.user, grade, course_id) if not classes: return _error_page(request, u'对不起,您无权管理 %s 课程的课件' % course.course_name) courseware = _dummy_courseware(grade, course_id, course.course_name) form = forms.CoursewareForm(initial={ 'classes': [c[0] for c in classes], 'share': common_def.SHARE_LEVEL_SCHOOL }) form.refresh_choices(classes) next_url = request.META.get('HTTP_REFERER', 'no referer') print >> sys.stderr, "courseware_add next: ", next_url ctx = RequestContext( request, { 'token': token, 'uid': uid, 'courseware': courseware, 'form': form, 'newware': True, 'back_level': back_level, 'upload_id': uuid.uuid1().get_hex(), }) return render_to_response('courseware_detail.html', ctx)
def courseware_detail(request, courseware_id): try: if request.method == 'GET' and courseware_id == '0': grade = int(request.GET['grade']) course_id = request.GET['course_id'] classes = db_util.get_teacher_classes(request.user, grade, course_id) course_name = request.GET['course_name'] if not classes: return _error_page(request, u'对不起,您无权管理 %s 课程的课件' % course_name) courseware = _dummy_courseware(grade, course_id, course_name) form = forms.CoursewareForm(initial={'classes': [c[0] for c in classes], 'share': common_def.SHARE_LEVEL_SCHOOL}) form.refresh_choices(classes) newware = True elif request.POST.has_key('add'): return _add_courseware(request) else: courseware = models.Courseware.objects.select_related('book_provider', 'category', 'course').get(id=courseware_id) newware = False classes = db_util.get_teacher_classes(request.user, courseware.grade, courseware.course_id) if not classes: return _error_page(request, u'对不起,您无权管理 %s 课程的课件' % courseware.course_name) if request.POST.has_key('edit'): form = _edit_courseware(courseware, request, classes) elif request.POST.has_key('delete'): log.log_deletion(request.user, courseware, u'删除课件') course_ware.delete_courseware(courseware) return HttpResponseRedirect('/coursewares/%d/%d/' % (courseware.course_id, courseware.grade)) else: data = { 'title': courseware.name, #'grade': courseware.grade, 'provider': courseware.book_provider_id, 'category': courseware.category_id, 'description': courseware.description, 'share': courseware.share_level, 'week': courseware.week, 'classes': db_util.get_courseware_classes(courseware), } form = forms.CoursewareForm(data, {'file': os.path.basename(courseware.path),}) form.refresh_choices(classes) form.files['file'] = os.path.basename(courseware.path) if hasattr(courseware.image, 'path'): form.files['image'] = os.path.basename(courseware.image.path) except palmtao.LicenseException, e: return e.response
def courseware_edit(request, token, uid, courseware_id): back_level = 1 try: courseware = models.Courseware.objects.select_related( 'book_provider', 'category', 'course').get(id=courseware_id) classes = db_util.get_teacher_classes(request.user, courseware.grade, courseware.course_id) if not classes: return _error_page(request, u'对不起,您无权管理 %s 课程的课件' % courseware.course_name) if 'edit' in request.POST: back_level = int(request.POST['back_level']) + 1 form = _edit_courseware(courseware, request, classes, back_level) if form.is_valid(): ctx = RequestContext(request, { 'level': -back_level, }) return render_to_response('history_goto.html', ctx) else: data = { 'title': courseware.name, #'grade': courseware.grade, 'provider': courseware.book_provider_id, 'category': courseware.category_id, 'description': courseware.description, 'share': courseware.share_level, 'week': courseware.week, 'classes': db_util.get_courseware_classes(courseware), } form = forms.CoursewareForm( data, {'file': os.path.basename(courseware.path)}) form.refresh_choices(classes) form.files['file'] = os.path.basename(courseware.path) if hasattr(courseware.image, 'path'): form.files['image'] = os.path.basename(courseware.image.path) except palmtao.LicenseException, e: return e.response