From 6a3360cefa48dc3726d2066ef1aec5872bb70aac Mon Sep 17 00:00:00 2001 From: David Baumgold Date: Tue, 11 Jun 2013 16:26:36 -0400 Subject: [PATCH] Full front-end/back-end connection via Backbone.sync. No data validation whatsoever. --- cms/djangoapps/contentstore/views/course.py | 21 ++++---- cms/templates/textbooks.html | 58 ++++++++++++++++----- 2 files changed, 56 insertions(+), 23 deletions(-) diff --git a/cms/djangoapps/contentstore/views/course.py b/cms/djangoapps/contentstore/views/course.py index 0457c93916..7ee431c5eb 100644 --- a/cms/djangoapps/contentstore/views/course.py +++ b/cms/djangoapps/contentstore/views/course.py @@ -427,19 +427,21 @@ def textbook_index(request, org, course, name): org, course, name: Attributes of the Location for the item to edit """ - course_reference = StaticContent.compute_location(org, course, name) - store = contentstore() - assets_db_objs = store.get_all_content_for_course(course_reference) - assets_json_objs = assets_to_json_dict(assets_db_objs) - assets_pdfs = [asset for asset in assets_json_objs if asset["path"].endswith(".pdf")] location = get_location_and_verify_access(request, org, course, name) - course_module = modulestore().get_item(location, depth=3) + store = modulestore() + course_module = store.get_item(location, depth=3) if request.is_ajax(): if request.method == 'GET': return HttpResponse(json.dumps(course_module.pdf_textbooks), content_type="application/json") elif request.method == 'POST': - store.update_metadata(course.location, own_metadata(request.POST)) + try: + obj = json.loads(request.raw_post_data) + except ValueError: + msg = {"error": "invalid JSON"} + return HttpResponseBadRequest(json.dumps(msg), content_type="application/json") + course_module.pdf_textbooks = obj + store.update_metadata(course_module.location, own_metadata(course_module)) return HttpResponse('', content_type="application/json", status=201) else: upload_asset_callback_url = reverse('upload_asset', kwargs={ @@ -447,7 +449,7 @@ def textbook_index(request, org, course, name): 'course': course, 'coursename': name, }) - asset_index_url = reverse('asset_index', kwargs={ + textbook_url = reverse('textbook_index', kwargs={ 'org': org, 'course': course, 'name': name, @@ -455,7 +457,6 @@ def textbook_index(request, org, course, name): return render_to_response('textbooks.html', { 'context_course': course_module, 'course': course_module, - 'assets': assets_pdfs, 'upload_asset_callback_url': upload_asset_callback_url, - 'asset_index_url': asset_index_url, + 'textbook_url': textbook_url, }) diff --git a/cms/templates/textbooks.html b/cms/templates/textbooks.html index 9b7a228450..874c1b5cf9 100644 --- a/cms/templates/textbooks.html +++ b/cms/templates/textbooks.html @@ -27,7 +27,7 @@