forked from rc/aircox

- serializer: track search, reorder module files - autocomplete: allow simple string value selection - playlist editor: - ui & flow improve - init data - save user settings - autocomplete - fix bugs - discard changes
31 lines
927 B
Python
31 lines
927 B
Python
from rest_framework import serializers
|
|
from taggit.serializers import TagListSerializerField, TaggitSerializer
|
|
|
|
from ..models import Track, UserSettings
|
|
|
|
|
|
__all__ = ('TrackSerializer', 'UserSettingsSerializer')
|
|
|
|
|
|
class TrackSerializer(TaggitSerializer, serializers.ModelSerializer):
|
|
tags = TagListSerializerField()
|
|
|
|
class Meta:
|
|
model = Track
|
|
fields = ('pk', 'artist', 'title', 'album', 'year', 'position',
|
|
'info', 'tags', 'episode', 'sound')
|
|
|
|
|
|
class UserSettingsSerializer(serializers.ModelSerializer):
|
|
# TODO: validate fields values (playlist_editor_columns at least)
|
|
class Meta:
|
|
model = UserSettings
|
|
fields = ('playlist_editor_columns', 'playlist_editor_sep')
|
|
|
|
def create(self, validated_data):
|
|
user = self.context.get('user')
|
|
if user:
|
|
validated_data['user_id'] = user.id
|
|
return super().create(validated_data)
|
|
|