Exemple #1
0
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
        })
Exemple #2
0
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)
Exemple #4
0
 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)
Exemple #5
0
 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)
Exemple #6
0
    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)
Exemple #7
0
    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)
Exemple #8
0
    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)