def upload_step2(request, course_id, editing=False): if (editing and not can_edit_course(request, course_id)): raise exceptions.PermissionDenied course = Course.objects.get(pk=course_id) if request.method == 'POST': form = UploadCourseStep2Form(request.POST, request.FILES) if form.is_valid() and course: # add the tags add_course_tags(form, course, request.user) redirect = 'oppia_course' if editing else 'oppia_upload_success' CoursePublishingLog( course=course, new_version=course.version, user=request.user, action="upload_course_published", data=_(u'Course published via file upload')).save() return HttpResponseRedirect(reverse(redirect)) else: form = UploadCourseStep2Form(initial={ 'tags': course.get_tags(), 'is_draft': course.is_draft, }) page_title = _(u'Upload Course - step 2') if not editing else _( u'Edit course') return render( request, 'course/form.html', { 'form': form, 'course_title': course.title, 'editing': editing, 'title': page_title })
def upload_step2(request, course_id, editing=False): if (editing and not can_edit_course(request, course_id) ) or not request.user.userprofile.get_can_upload(): raise exceptions.PermissionDenied course = Course.objects.get(pk=course_id) if request.method == 'POST': form = UploadCourseStep2Form(request.POST, request.FILES) if form.is_valid() and course: #add the tags add_course_tags(form, course, request.user) redirect = 'oppia_course' if editing else 'oppia_upload_success' return HttpResponseRedirect( reverse(redirect)) # Redirect after POST else: form = UploadCourseStep2Form(initial={ 'tags': course.get_tags(), 'is_draft': course.is_draft, }) # An unbound form page_title = _(u'Upload Course - step 2') if not editing else _( u'Edit course') return render( request, 'oppia/upload.html', { 'form': form, 'course_title': course.title, 'editing': editing, 'title': page_title })
def test_add_categories(self): course = Course.objects.get(pk=1) new_categories = course.get_categories() \ + ', my new categories, another new category' coursetag_count_start = CourseCategory.objects.filter( course=course).count() tag_count_start = Category.objects.all().count() request_post = { 'categories': new_categories, 'is_draft': course.is_draft, } form = UploadCourseStep2Form(request_post) self.assertEqual(form.is_valid(), True) cfv = CourseFormView() cfv.update_course_tags(form, course, self.admin_user) coursetag_count_end = CourseCategory.objects.filter( course=course).count() self.assertEqual(coursetag_count_start + 2, coursetag_count_end) tag_count_end = Category.objects.all().count() self.assertEqual(tag_count_start + 2, tag_count_end)
def test_empty_tag(self): course = Course.objects.get(pk=1) coursetag_count_start = CourseTag.objects.filter(course=course).count() request_post = { 'tags': ' ', 'is_draft': course.is_draft, } form = UploadCourseStep2Form(request_post) self.assertEqual(form.is_valid(), False) coursetag_count_end = CourseTag.objects.filter(course=course).count() self.assertEqual(coursetag_count_start, coursetag_count_end)
def test_empty_category(self): course = Course.objects.get(pk=1) coursetag_count_start = CourseCategory.objects.filter( course=course).count() request_post = { 'tags': ' ', 'status': CourseStatus.DRAFT, } form = UploadCourseStep2Form(request_post) self.assertEqual(form.is_valid(), False) coursetag_count_end = CourseCategory.objects.filter( course=course).count() self.assertEqual(coursetag_count_start, coursetag_count_end)
def test_remove_one_tag(self): course = Course.objects.get(pk=1) new_tags = 'HEAT, ANC' coursetag_count_start = CourseTag.objects.filter(course=course).count() tag_count_start = Tag.objects.all().count() request_post = { 'tags': new_tags, 'is_draft': course.is_draft, } form = UploadCourseStep2Form(request_post) self.assertEqual(form.is_valid(), True) update_course_tags(form, course, self.admin_user) coursetag_count_end = CourseTag.objects.filter(course=course).count() self.assertEqual(coursetag_count_start - 1, coursetag_count_end) tag_count_end = Tag.objects.all().count() self.assertEqual(tag_count_start, tag_count_end)
def test_add_tags(self): course = Course.objects.get(pk=1) new_tags = course.get_tags() + ', my new tag, another new tag' coursetag_count_start = CourseTag.objects.filter(course=course).count() tag_count_start = Tag.objects.all().count() request_post = { 'tags': new_tags, 'is_draft': course.is_draft, } form = UploadCourseStep2Form(request_post) self.assertEqual(form.is_valid(), True) update_course_tags(form, course, self.admin_user) coursetag_count_end = CourseTag.objects.filter(course=course).count() self.assertEqual(coursetag_count_start + 2, coursetag_count_end) tag_count_end = Tag.objects.all().count() self.assertEqual(tag_count_start + 2, tag_count_end)
def test_remove_one_category(self): course = Course.objects.get(pk=1) new_categories = 'HEAT, ANC' coursetag_count_start = CourseCategory.objects.filter( course=course).count() tag_count_start = Category.objects.all().count() request_post = { 'categories': new_categories, 'status': CourseStatus.DRAFT, } form = UploadCourseStep2Form(request_post) self.assertEqual(form.is_valid(), True) cfv = CourseFormView() cfv.update_course_tags(form, course, self.admin_user) coursetag_count_end = CourseCategory.objects.filter( course=course).count() self.assertEqual(coursetag_count_start - 1, coursetag_count_end) tag_count_end = Category.objects.all().count() self.assertEqual(tag_count_start, tag_count_end)