Commit 2a7ed61e by Oleg Marshev

Add course key field.

parent 5f92a534
......@@ -2,7 +2,7 @@ import json
from django.db import models
from django.core.exceptions import ValidationError
from opaque_keys.edx.keys import CourseKey, UsageKey
from opaque_keys.edx.locations import BlockUsageLocator
from opaque_keys.edx.locations import BlockUsageLocator, CourseLocator
def _strip_object(key):
......@@ -116,7 +116,7 @@ class UsageKeyField(OpaqueKeyField):
class Note(models.Model):
user_id = models.CharField(max_length=255)
course_id = models.CharField(max_length=255)
course_id = CourseKeyField(max_length=255)
usage_id = UsageKeyField(max_length=255)
text = models.TextField(default="")
quote = models.TextField(default="")
......@@ -147,7 +147,7 @@ class Note(models.Model):
self.quote = body.get('quote', '')
try:
self.course_id = body['course_id']
self.course_id = CourseLocator.from_string(body['course_id'])
self.usage_id = BlockUsageLocator.from_string(body['usage_id'])
self.user_id = body['user']
except KeyError as error:
......@@ -172,7 +172,7 @@ class Note(models.Model):
return {
'id': self.pk,
'user': self.user_id,
'course_id': self.course_id,
'course_id': self.course_id.html_id(),
'usage_id': self.usage_id.to_deprecated_string(),
'text': self.text,
'quote': self.quote,
......
......@@ -6,13 +6,11 @@ from django.core.exceptions import ValidationError
class NoteTest(TestCase):
def setUp(self):
self.course_id = "test_course_id"
self.user_id = "test_user_id"
self.note = {
"user": u"test_user_id",
"usage_id": "i4x://org/course/category/name",
"course_id": u"test-course-id",
"usage_id": u"i4x://org/course/html/52aa9816425a4ce98a07625b8cb70811",
"course_id": u"org/course/run",
"text": u"test note text",
"quote": u"test note quote",
"ranges": [
......@@ -58,7 +56,7 @@ class NoteTest(TestCase):
note.clean(json.dumps({
'text': 'foo',
'quote': 'bar',
'ranges': [{} for i in range(10)] # too many ranges
'ranges': [{} for i in range(10)] # Too many ranges.
}))
def test_save(self):
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment