forked from rc/aircox
cfr #121 Co-authored-by: Christophe Siraut <d@tobald.eu.org> Co-authored-by: bkfox <thomas bkfox net> Co-authored-by: Thomas Kairos <thomas@bkfox.net> Reviewed-on: rc/aircox#131 Co-authored-by: Chris Tactic <ctactic@noreply.git.radiocampus.be> Co-committed-by: Chris Tactic <ctactic@noreply.git.radiocampus.be>
This commit is contained in:
@ -1,12 +1,18 @@
|
||||
from . import auth
|
||||
from .admin import TrackSerializer, UserSettingsSerializer
|
||||
from .episode import EpisodeSoundSerializer, EpisodeSerializer
|
||||
from .log import LogInfo, LogInfoSerializer
|
||||
from .sound import PodcastSerializer, SoundSerializer
|
||||
from .page import CommentSerializer
|
||||
from .sound import SoundSerializer
|
||||
|
||||
__all__ = (
|
||||
"TrackSerializer",
|
||||
"UserSettingsSerializer",
|
||||
"auth",
|
||||
"CommentSerializer",
|
||||
"LogInfo",
|
||||
"LogInfoSerializer",
|
||||
"EpisodeSoundSerializer",
|
||||
"EpisodeSerializer",
|
||||
"SoundSerializer",
|
||||
"PodcastSerializer",
|
||||
"TrackSerializer",
|
||||
"UserSettingsSerializer",
|
||||
)
|
||||
|
@ -1,9 +1,17 @@
|
||||
from rest_framework import serializers
|
||||
|
||||
from filer.models.imagemodels import Image
|
||||
from taggit.serializers import TaggitSerializer, TagListSerializerField
|
||||
|
||||
from ..models import Track, UserSettings
|
||||
|
||||
__all__ = ("TrackSerializer", "UserSettingsSerializer")
|
||||
__all__ = ("ImageSerializer", "TrackSerializer", "UserSettingsSerializer")
|
||||
|
||||
|
||||
class ImageSerializer(serializers.ModelSerializer):
|
||||
class Meta:
|
||||
model = Image
|
||||
fields = "__all__"
|
||||
|
||||
|
||||
class TrackSerializer(TaggitSerializer, serializers.ModelSerializer):
|
||||
@ -27,10 +35,10 @@ class TrackSerializer(TaggitSerializer, serializers.ModelSerializer):
|
||||
|
||||
|
||||
class UserSettingsSerializer(serializers.ModelSerializer):
|
||||
# TODO: validate fields values (playlist_editor_columns at least)
|
||||
# TODO: validate fields values (tracklist_editor_columns at least)
|
||||
class Meta:
|
||||
model = UserSettings
|
||||
fields = ("playlist_editor_columns", "playlist_editor_sep")
|
||||
fields = ("tracklist_editor_columns", "tracklist_editor_sep")
|
||||
|
||||
def create(self, validated_data):
|
||||
user = self.context.get("user")
|
||||
|
28
aircox/serializers/auth.py
Normal file
28
aircox/serializers/auth.py
Normal file
@ -0,0 +1,28 @@
|
||||
from django.contrib.auth.models import User, Group
|
||||
from rest_framework import serializers
|
||||
|
||||
|
||||
__all__ = ("UserSerializer", "GroupSerializer", "UserGroupSerializer")
|
||||
|
||||
|
||||
class UserSerializer(serializers.ModelSerializer):
|
||||
class Meta:
|
||||
exclude = ("password",)
|
||||
model = User
|
||||
|
||||
|
||||
class GroupSerializer(serializers.ModelSerializer):
|
||||
class Meta:
|
||||
exclude = ("permissions",)
|
||||
model = Group
|
||||
|
||||
|
||||
class UserGroupSerializer(serializers.ModelSerializer):
|
||||
group = GroupSerializer(read_only=True)
|
||||
user = UserSerializer(read_only=True)
|
||||
user_id = serializers.IntegerField()
|
||||
group_id = serializers.IntegerField()
|
||||
|
||||
class Meta:
|
||||
model = User.groups.through
|
||||
fields = ("id", "group_id", "user_id", "group", "user")
|
36
aircox/serializers/episode.py
Normal file
36
aircox/serializers/episode.py
Normal file
@ -0,0 +1,36 @@
|
||||
from rest_framework import serializers
|
||||
|
||||
from .. import models
|
||||
from .sound import SoundSerializer
|
||||
from .admin import TrackSerializer
|
||||
|
||||
|
||||
class EpisodeSoundSerializer(serializers.ModelSerializer):
|
||||
sound = SoundSerializer(read_only=True)
|
||||
|
||||
class Meta:
|
||||
model = models.EpisodeSound
|
||||
fields = [
|
||||
"id",
|
||||
"position",
|
||||
"episode",
|
||||
"broadcast",
|
||||
"sound",
|
||||
"sound_id",
|
||||
]
|
||||
|
||||
|
||||
class EpisodeSerializer(serializers.ModelSerializer):
|
||||
playlist = EpisodeSoundSerializer(source="episodesound_set", many=True, read_only=True)
|
||||
tracks = TrackSerializer(source="track_set", many=True, read_only=True)
|
||||
|
||||
class Meta:
|
||||
model = models.Episode
|
||||
fields = [
|
||||
"id",
|
||||
"title",
|
||||
"content",
|
||||
"pub_date",
|
||||
"playlist",
|
||||
"tracks",
|
||||
]
|
12
aircox/serializers/page.py
Normal file
12
aircox/serializers/page.py
Normal file
@ -0,0 +1,12 @@
|
||||
from rest_framework import serializers
|
||||
|
||||
from aircox import models
|
||||
|
||||
|
||||
__all__ = ("CommentSerializer",)
|
||||
|
||||
|
||||
class CommentSerializer(serializers.ModelSerializer):
|
||||
class Meta:
|
||||
model = models.Comment
|
||||
fields = ["page", "nickname", "email", "date", "content"]
|
@ -1,43 +1,24 @@
|
||||
from rest_framework import serializers
|
||||
|
||||
from ..models import Sound
|
||||
from .. import models
|
||||
|
||||
__all__ = ("SoundSerializer", "PodcastSerializer")
|
||||
__all__ = ("SoundSerializer",)
|
||||
|
||||
|
||||
class SoundSerializer(serializers.ModelSerializer):
|
||||
file = serializers.FileField(use_url=False)
|
||||
|
||||
class Meta:
|
||||
model = Sound
|
||||
model = models.Sound
|
||||
fields = [
|
||||
"pk",
|
||||
"id",
|
||||
"name",
|
||||
"program",
|
||||
"episode",
|
||||
"type",
|
||||
"file",
|
||||
"duration",
|
||||
"mtime",
|
||||
"is_good_quality",
|
||||
"is_public",
|
||||
"url",
|
||||
]
|
||||
|
||||
|
||||
class PodcastSerializer(serializers.ModelSerializer):
|
||||
# serializers.HyperlinkedIdentityField(view_name='sound', format='html')
|
||||
|
||||
class Meta:
|
||||
model = Sound
|
||||
fields = [
|
||||
"pk",
|
||||
"name",
|
||||
"program",
|
||||
"episode",
|
||||
"type",
|
||||
"duration",
|
||||
"mtime",
|
||||
"url",
|
||||
"is_downloadable",
|
||||
"url",
|
||||
]
|
||||
|
Reference in New Issue
Block a user