aboutsummaryrefslogtreecommitdiff
path: root/apps/notes/serializers.py
diff options
context:
space:
mode:
Diffstat (limited to 'apps/notes/serializers.py')
-rw-r--r--apps/notes/serializers.py34
1 files changed, 31 insertions, 3 deletions
diff --git a/apps/notes/serializers.py b/apps/notes/serializers.py
index daef52e..f811edd 100644
--- a/apps/notes/serializers.py
+++ b/apps/notes/serializers.py
@@ -1,11 +1,29 @@
from rest_framework import serializers
from taggit_serializer.serializers import TagListSerializerField, TaggitSerializer
-from .models import Note, Notebook
+from .models import Note, Notebook, LuxTag
+
+import six
+
+
+class NewTagListSerializerField(TagListSerializerField):
+ def to_internal_value(self, value):
+ if isinstance(value, six.string_types):
+ value = [v.strip() for v in value.split(',')]
+
+ if not isinstance(value, list):
+ self.fail('not_a_list', input_type=type(value).__name__)
+
+ for s in value:
+ if not isinstance(s, six.string_types):
+ self.fail('not_a_str')
+
+ self.child.run_validation(s)
+ return value
class NoteSerializer(TaggitSerializer, serializers.ModelSerializer):
- tags = TagListSerializerField()
+ tags = NewTagListSerializerField(required=False)
class Meta:
model = Note
@@ -14,7 +32,17 @@ class NoteSerializer(TaggitSerializer, serializers.ModelSerializer):
class NotebookSerializer(serializers.HyperlinkedModelSerializer):
json_absolute_url = serializers.URLField(source='get_absolute_url', read_only=True)
+ owner = serializers.HiddenField(
+ default=serializers.CurrentUserDefault()
+ )
class Meta:
model = Notebook
- fields = ('name', 'json_absolute_url')
+ fields = ('name', 'color_rgb', 'json_absolute_url', 'owner')
+
+
+class NoteTagSerializer(serializers.HyperlinkedModelSerializer):
+
+ class Meta:
+ model = LuxTag
+ fields = ('name', 'color_hex')