def create_content( request, course_id ): course_uri = course_model.course_id2uri(course_id) course = _get_course_or_404(course_uri) if request.method == "POST": form = ContentForm(request.POST) if form.is_valid(): user = request.user.get_profile() user_uri = u"/uri/user/{0}".format(user.username) content_data = { 'title': form.cleaned_data.get('title'), 'content': form.cleaned_data.get('content'), 'author_uri': user_uri, } content = content_model.create_content(**content_data) course_model.add_course_content(course['uri'], content['uri']) redirect_url = request.POST.get('next_url', None) if not redirect_url: redirect_url = reverse('courses_show', kwargs={'course_id': course['id'], 'slug': course['slug']} ) return http.HttpResponseRedirect(redirect_url) else: form = ContentForm() context = { 'form': form } 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/create_content.html', context, context_instance=RequestContext(request) )
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) )
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) )