diff --git a/lms/djangoapps/notes/api.py b/lms/djangoapps/notes/api.py index fced908c99..c20891748f 100644 --- a/lms/djangoapps/notes/api.py +++ b/lms/djangoapps/notes/api.py @@ -88,9 +88,7 @@ def create(request, course_id): def read(request, course_id, note_id): try: note = Note.objects.get(id=note_id) - except Note.DoesNotExist: - return [HttpResponse('', status=404), None] - except Note.MultipleObjectsReturned: + except: return [HttpResponse('', status=404), None] if not note.user.id == request.user.id: @@ -101,9 +99,7 @@ def read(request, course_id, note_id): def update(request, course_id, note_id): try: note = Note.objects.get(note_id) - except Note.DoesNotExist: - return [HttpResponse('', status=404), None] - except Note.MultipleObjectsReturned: + except: return [HttpResponse('', status=404), None] if not note.user.id == request.user.id: @@ -117,14 +113,14 @@ def update(request, course_id, note_id): def delete(request, course_id, note_id): try: note = Note.objects.get(note_id) - except Note.DoesNotExist: - return [HttpResponse('', status=404), None] - except Note.MultipleObjectsReturned: + except: return [HttpResponse('', status=404), None] if not note.user.id == request.user.id: return [HttpResponse('', status=403)] + note.delete() + return [HttpResponse('', status=204), None] def search(request, course_id): diff --git a/lms/djangoapps/notes/models.py b/lms/djangoapps/notes/models.py index 9baf62ed70..0779cb5fcd 100644 --- a/lms/djangoapps/notes/models.py +++ b/lms/djangoapps/notes/models.py @@ -21,4 +21,5 @@ class Note(models.Model): if type(json_body) is dict: d.update(json_body) d['id'] = self.id + d['user_id'] = self.user.id return d \ No newline at end of file diff --git a/lms/djangoapps/notes/views.py b/lms/djangoapps/notes/views.py index 9dd5cce515..0ead23b561 100644 --- a/lms/djangoapps/notes/views.py +++ b/lms/djangoapps/notes/views.py @@ -1,6 +1,7 @@ -from django.http import HttpResponse +from mitxmako.shortcuts import render_to_response +from courseware.courses import get_course_with_access from notes.models import Note -import datetime +import json import logging log = logging.getLogger(__name__) @@ -19,6 +20,16 @@ log = logging.getLogger(__name__) # https://github.com/okfn/annotator/wiki def notes(request, course_id): - now = datetime.datetime.now() - html = "
It is now %s. Course_id: %s" % (now, course_id) - return HttpResponse(html) + course = get_course_with_access(request.user, course_id, 'load') + + notes = Note.objects.filter(user_id=request.user.id) + prettyprint = {'sort_keys':True, 'indent':2, 'separators':(',', ': ')} + json_notes = json.dumps([n.as_dict() for n in notes], **prettyprint) + + context = { + 'course': course, + 'notes': notes, + 'json_notes': json_notes + } + + return render_to_response('notes.html', context) diff --git a/lms/templates/notes.html b/lms/templates/notes.html new file mode 100644 index 0000000000..b053698242 --- /dev/null +++ b/lms/templates/notes.html @@ -0,0 +1,25 @@ +<%namespace name='static' file='static_content.html'/> +<%inherit file="main.html" /> + +<%block name="headextra"> + <%static:css group='course'/> + <%static:js group='courseware'/> +%block> + +<%block name="js_extra"> + +%block> + +<%include file="/courseware/course_navigation.html" args="active_page='notes'" /> + +${json_notes}
+