Marietje 4.1: Addition of Django REST framework, Swagger, Dark mode and updates to Django and Bootstrap

This commit is contained in:
Lars van Rhijn
2023-09-14 19:55:51 +02:00
parent 379ababcc0
commit d1a1be7e2e
124 changed files with 4835 additions and 3490 deletions

View File

@ -0,0 +1,50 @@
import time
from rest_framework import serializers
from marietje.api.v1.serializers import UserRelatedFieldSerializer
from queues.models import Queue, Playlist, PlaylistSong
from songs.api.v1.serializers import SongSerializer
class PlaylistSongSerializer(serializers.ModelSerializer):
song = SongSerializer()
user = UserRelatedFieldSerializer()
class Meta:
model = PlaylistSong
fields = ["id", "playlist", "song", "user", "played_at"]
class PlaylistSerializer(serializers.ModelSerializer):
songs = PlaylistSongSerializer(many=True)
class Meta:
model = Playlist
fields = [
"id",
"songs",
]
class QueueSerializer(serializers.ModelSerializer):
current_song = serializers.SerializerMethodField()
queue = serializers.SerializerMethodField()
def get_current_song(self, queue):
return PlaylistSongSerializer(queue.current_song()).data
def get_queue(self, queue):
return PlaylistSongSerializer(queue.queue(), many=True).data
class Meta:
model = Queue
fields = [
"id",
"name",
"playlist",
"random_playlist",
"current_song",
"queue",
"started_at",
]