Esempio n. 1
0
    def test_clone_course(self):
        clone = course_model.clone_course(self.course["uri"], "/uri/user/bob/")
        for key in ["title", "hashtag", "description", "language"]:
            self.assertEqual(clone[key], self.course[key])
        self.assertIn("based_on_uri", clone)

        about = content_model.get_content(self.course["about_uri"])
        clone_about = content_model.get_content(clone["about_uri"])
        self.assertEquals(about["content"], clone_about["content"])

        self.assertEqual(len(clone["content"]), len(self.course["content"]))
        for i in range(len(clone["content"])):
            self.assertEqual(clone["content"][i]["title"], self.course["content"][i]["title"])
            self.assertEqual(clone["content"][i]["content"], self.course["content"][i]["content"])
Esempio n. 2
0
    def test_clone_course(self):
        clone = course_model.clone_course(self.course['uri'], '/uri/user/bob/')
        for key in ['title', 'hashtag', 'description', 'language']:
            self.assertEqual(clone[key], self.course[key])
        self.assertIn('based_on_uri', clone)

        about = content_model.get_content(self.course['about_uri'])
        clone_about = content_model.get_content(clone['about_uri'])
        self.assertEquals(about['content'], clone_about['content'])

        self.assertEqual(len(clone['content']), len(self.course['content']))
        for i in range(len(clone['content'])):
            self.assertEqual(clone['content'][i]['title'], self.course['content'][i]['title'])
            self.assertEqual(clone['content'][i]['content'], self.course['content'][i]['content'])
Esempio n. 3
0
    def test_course_creation(self):
        course = course_model.create_course(
            **{
                "title": "A test course",
                "hashtag": "ATC-1",
                "description": "This course is all about ABC",
                "language": "en",
                "organizer_uri": '/uri/user/testuser'
            }
        )

        self.assertTrue(not course == None)

        # test that about content was created
        about = content_model.get_content(course['about_uri'])
        self.assertTrue(not about == None)
        self.assertEqual(about['title'], "About")

        # test that a cohort was created
        cohort = course_model.get_course_cohort(course['uri'])
        self.assertTrue(not cohort == None)

        self.assertTrue(
            course_model.user_in_cohort('/uri/user/testuser', cohort['uri'])
        )
        self.assertTrue(
            course_model.is_cohort_organizer('/uri/user/testuser', cohort['uri'])
        )
Esempio n. 4
0
    def test_course_creation(self):
        course = course_model.create_course(
            **{
                "title": "A test course",
                "hashtag": "ATC-1",
                "description": "This course is all about ABC",
                "language": "en",
                "organizer_uri": '/uri/user/testuser'
            })

        self.assertTrue(not course == None)

        # test that about content was created
        about = content_model.get_content(course['about_uri'])
        self.assertTrue(not about == None)
        self.assertEqual(about['title'], "About")

        # test that a cohort was created
        cohort = course_model.get_course_cohort(course['uri'])
        self.assertTrue(not cohort == None)

        self.assertTrue(
            course_model.user_in_cohort('/uri/user/testuser', cohort['uri']))
        self.assertTrue(
            course_model.is_cohort_organizer('/uri/user/testuser',
                                             cohort['uri']))
Esempio n. 5
0
    def test_clone_course(self):
        clone = course_model.clone_course(self.course['uri'], '/uri/user/bob/')
        for key in ['title', 'hashtag', 'description', 'language']:
            self.assertEqual(clone[key], self.course[key])
        self.assertIn('based_on_uri', clone)

        about = content_model.get_content(self.course['about_uri'])
        clone_about = content_model.get_content(clone['about_uri'])
        self.assertEquals(about['content'], clone_about['content'])

        self.assertEqual(len(clone['content']), len(self.course['content']))
        for i in range(len(clone['content'])):
            self.assertEqual(clone['content'][i]['title'],
                             self.course['content'][i]['title'])
            self.assertEqual(clone['content'][i]['content'],
                             self.course['content'][i]['content'])
Esempio n. 6
0
def get_course_content(course_uri):
    content = []
    course_id = course_uri2id(course_uri)
    course_db = _get_course_db(course_uri)
    for course_content_db in course_db.content.order_by('index'):
        content_data = content_model.get_content(course_content_db.content_uri)
        content += [{
            "id": content_data["id"],
            "uri": content_data["uri"],
            "title": content_data["title"],
            "index": course_content_db.index,
        }]
    return content
Esempio n. 7
0
def get_course_content(course_uri):
    content = []
    course_id = course_uri2id(course_uri)
    course_db = _get_course_db(course_uri)
    for course_content_db in course_db.content.order_by('index'):
        content_data = content_model.get_content(course_content_db.content_uri)
        content += [{
            "id": content_data["id"],
            "uri": content_data["uri"],
            "title": content_data["title"],
            "index": course_content_db.index,
        }]
    return content
Esempio n. 8
0
def show_content( request, course_id, content_id):
    content_uri = u'/uri/content/{0}'.format(content_id)
    user_uri = u"/uri/user/{0}".format(request.user.username)
    context = _populate_course_context(request, course_id, {})

    if not any( c['uri'] == content_uri for c in context['course']['content']):
       raise http.Http404

    content = content_model.get_content(content_uri)
    context['content'] = content
    context['content_active'] = True
    #context['comments'] = course_model.get_cohort_comments(cohort['uri'], content['uri'])
    context['form'] = ContentForm(content)
    return render_to_response(
        'courses/content.html', 
        context, 
        context_instance=RequestContext(request)
    )
Esempio n. 9
0
def show_course( request, course_id, slug=None ):
    course_uri = course_model.course_id2uri(course_id)
    course = _get_course_or_404(course_uri)
    
    if slug != course['slug']:
        return course_slug_redirect( request, course_id)

    context = { }
    context = _populate_course_context(request, course_id, context)
    context['about_active'] = True

    if context['organizer']:
        context['update_form'] = CourseUpdateForm(course)

    context['about'] = content_model.get_content(course['about_uri'])

    return render_to_response(
        'courses/course.html',
        context,
        context_instance=RequestContext(request)
    )
Esempio n. 10
0
def show_content( request, course_id, content_id):
    content_uri = u'/uri/content/{0}'.format(content_id)
    user_uri = u"/uri/user/{0}".format(request.user.username)
    context = _populate_course_context(request, course_id, {})

    if not any( c['uri'] == content_uri for c in context['course']['content']):
       raise http.Http404

    content = content_model.get_content(content_uri)
    context['content'] = content
    context['content_active'] = True
    context['disqus_public_key'] = settings.DISQUS_PUBLIC_KEY
    if request.user.is_authenticated():
        context['disqus_sso'] = get_disqus_sso(request.user)

    context['form'] = ContentForm(content)
    return render_to_response(
        'courses/content.html', 
        context, 
        context_instance=RequestContext(request)
    )
Esempio n. 11
0
def show_content( request, course_id, content_id):
    content_uri = u'/uri/content/{0}'.format(content_id)
    user_uri = u"/uri/user/{0}".format(request.user.username)
    context = _populate_course_context(request, course_id, {})

    if not any( c['uri'] == content_uri for c in context['course']['content']):
       raise http.Http404

    content = content_model.get_content(content_uri)
    context['content'] = content
    context['content_active'] = True
    context['disqus_public_key'] = settings.DISQUS_PUBLIC_KEY
    if request.user.is_authenticated():
        context['disqus_sso'] = get_disqus_sso(request.user)

    context['form'] = ContentForm(content)
    return render_to_response(
        'courses/content.html', 
        context, 
        context_instance=RequestContext(request)
    )
Esempio n. 12
0
def show_course( request, course_id, slug=None ):
    course_uri = course_model.course_id2uri(course_id)
    course = _get_course_or_404(course_uri)
    
    if slug != course['slug']:
        return course_slug_redirect( request, course_id)

    context = { }
    context = _populate_course_context(request, course_id, context)
    context['about_active'] = True

    if context['organizer']:
        context['update_form'] = CourseUpdateForm(course)

    context['about'] = content_model.get_content(course['about_uri'])

    return render_to_response(
        'courses/course.html',
        context,
        context_instance=RequestContext(request)
    )
Esempio n. 13
0
def edit_content( request, course_id, content_id ):
    course_uri = course_model.course_id2uri(course_id)
    course = _get_course_or_404(course_uri)
    content = content_model.get_content("/uri/content/{0}".format(content_id))

    if request.method == "POST":
        form = ContentForm(request.POST)
        if form.is_valid():
            content_data = {
                'title': form.cleaned_data.get('title'),
                'content': form.cleaned_data.get('content'),
            }
            user = request.user.get_profile()
            user_uri = u"/uri/user/{0}".format(user.username)
            content = content_model.update_content(
                content['uri'], content_data['title'], 
                content_data['content'], user_uri
            )
            
            redirect_url = request.POST.get('next_url', None)
            if not redirect_url:
                redirect_url = reverse('courses_content_show',
                    kwargs={'course_id': course_id, 'content_id': content_id}
                )
            return http.HttpResponseRedirect(redirect_url)
    else:
        form = ContentForm(initial=content)

    context = {
        'form': form,
        'content': content,
    }
    context = _populate_course_context(request, course_id, context)
    if request.GET.get('next_url', None):
        context['next_url'] = request.GET.get('next_url', None)
    return render_to_response('courses/edit_content.html', 
        context, context_instance=RequestContext(request)
    )
Esempio n. 14
0
def edit_content( request, course_id, content_id ):
    course_uri = course_model.course_id2uri(course_id)
    course = _get_course_or_404(course_uri)
    content = content_model.get_content("/uri/content/{0}".format(content_id))

    if request.method == "POST":
        form = ContentForm(request.POST)
        if form.is_valid():
            content_data = {
                'title': form.cleaned_data.get('title'),
                'content': form.cleaned_data.get('content'),
            }
            user = request.user.get_profile()
            user_uri = u"/uri/user/{0}".format(user.username)
            content = content_model.update_content(
                content['uri'], content_data['title'], 
                content_data['content'], user_uri
            )
            
            redirect_url = request.POST.get('next_url', None)
            if not redirect_url:
                redirect_url = reverse('courses_content_show',
                    kwargs={'course_id': course_id, 'content_id': content_id}
                )
            return http.HttpResponseRedirect(redirect_url)
    else:
        form = ContentForm(initial=content)

    context = {
        'form': form,
        'content': content,
    }
    context = _populate_course_context(request, course_id, context)
    if request.GET.get('next_url', None):
        context['next_url'] = request.GET.get('next_url', None)
    return render_to_response('courses/edit_content.html', 
        context, context_instance=RequestContext(request)
    )
Esempio n. 15
0
 def test_content_creation(self):
     content = content_model.create_content('title', 'content', '/uri/users/bob')
     content2 = content_model.get_content(content['uri'])
     self.assertEquals(content, content2)
Esempio n. 16
0
 def test_content_creation(self):
     content = content_model.create_content('title', 'content',
                                            '/uri/users/bob')
     content2 = content_model.get_content(content['uri'])
     self.assertEquals(content, content2)