mirror of
https://gitlab.science.ru.nl/technicie/MarietjeDjango.git
synced 2025-12-09 21:42:20 +01:00
45 lines
1.1 KiB
Python
45 lines
1.1 KiB
Python
from typing import Optional
|
|
|
|
from django.contrib.auth import get_user_model
|
|
|
|
from queues.models import Queue, Playlist
|
|
from django.conf import settings
|
|
|
|
|
|
User = get_user_model()
|
|
|
|
|
|
def get_user_or_default_queue(request) -> Queue:
|
|
"""Get the user or default queue from a request."""
|
|
if request.user is None:
|
|
return get_default_queue()
|
|
else:
|
|
return get_queue_for_user(request.user)
|
|
|
|
|
|
def get_queue_for_user(user: User) -> Optional[Queue]:
|
|
"""Get the queue for a User."""
|
|
if user.queue is None:
|
|
return None
|
|
else:
|
|
return user.queue.queue
|
|
|
|
|
|
def get_default_queue() -> Queue:
|
|
"""Get the default queue."""
|
|
try:
|
|
return Queue.objects.get(pk=settings.DEFAULT_QUEUE)
|
|
except Queue.DoesNotExist:
|
|
return get_first_queue()
|
|
|
|
|
|
def get_first_queue() -> Queue:
|
|
"""Get the first Queue object or create one."""
|
|
queue = Queue.objects.first()
|
|
if queue is not None:
|
|
return queue
|
|
|
|
playlist = Playlist.objects.create()
|
|
random_playlist = Playlist.objects.create()
|
|
return Queue.objects.create(name="Queue", playlist=playlist, random_playlist=random_playlist)
|