utils verplaatst, vote model toegevoegd

This commit is contained in:
2024-02-07 14:08:24 +01:00
parent 48dcf3bd9d
commit 2c2b8282b5
2 changed files with 30 additions and 0 deletions
+10
View File
@@ -0,0 +1,10 @@
from django.db import models
from django.contrib.auth.models import User
from . import Track
class Vote(models.Model):
class Meta:
unique_together = ["user", "track"]
track = models.ForeignKey(Track, on_delete=models.CASCADE)
user = models.ForeignKey(User, on_delete=models.CASCADE)
points = models.IntegerField()
+20
View File
@@ -0,0 +1,20 @@
from .models import Track, Vote
from random import choice, seed
def from_json(cls, json):
try:
return cls.objects.get(pk=json["id"])
except cls.DoesNotExist:
keys = [f.name for f in cls._meta.get_fields()]
subset = {key:json[key] for key in set(keys) & set(json.keys())}
return cls.objects.create(**subset)
def get_unvoted(user):
votes = set(Vote.objects.filter(user=user).values_list('track_id', flat=True))
tracks = set(Track.objects.values_list('pk', flat=True))
seed(user.username)
try:
random_track = choice(list(tracks - votes))
return Track.objects.get(pk=random_track)
except IndexError:
return None