#132 | #121: backoffice / dev-1.0-121 (#131)

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:
2024-04-28 22:02:09 +02:00
committed by Thomas Kairos
parent 1e17a1334a
commit 55123c386d
348 changed files with 124397 additions and 17879 deletions

View File

@ -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",
)

View File

@ -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")

View 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")

View 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",
]

View 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"]

View File

@ -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",
]