From 4b2f695afb50745fdc8172bd84c5b82ce29e4bde Mon Sep 17 00:00:00 2001 From: "Edgar P. Burkhart" Date: Fri, 13 Jun 2025 22:23:18 +0200 Subject: [PATCH] Add YoutubeCredentials model and implement YouTube OAuth login functionality --- game/migrations/0008_youtubecredentials.py | 37 ++++ game/models.py | 5 + game/templates/game/home.html | 3 + game/urls.py | 6 + game/views.py | 41 ++++ musik/settings.py | 2 + musik/urls.py | 2 +- pyproject.toml | 4 + uv.lock | 216 +++++++++++++++++++++ 9 files changed, 315 insertions(+), 1 deletion(-) create mode 100644 game/migrations/0008_youtubecredentials.py diff --git a/game/migrations/0008_youtubecredentials.py b/game/migrations/0008_youtubecredentials.py new file mode 100644 index 0000000..5967308 --- /dev/null +++ b/game/migrations/0008_youtubecredentials.py @@ -0,0 +1,37 @@ +# Generated by Django 5.2.3 on 2025-06-13 20:16 + +import django.db.models.deletion +from django.conf import settings +from django.db import migrations, models + + +class Migration(migrations.Migration): + dependencies = [ + ("game", "0007_remove_musikgame_music_videos_musicgameorder"), + migrations.swappable_dependency(settings.AUTH_USER_MODEL), + ] + + operations = [ + migrations.CreateModel( + name="YoutubeCredentials", + fields=[ + ( + "id", + models.BigAutoField( + auto_created=True, + primary_key=True, + serialize=False, + verbose_name="ID", + ), + ), + ("credentials", models.JSONField()), + ( + "user", + models.OneToOneField( + on_delete=django.db.models.deletion.CASCADE, + to=settings.AUTH_USER_MODEL, + ), + ), + ], + ), + ] diff --git a/game/models.py b/game/models.py index 5b3c947..25e905c 100644 --- a/game/models.py +++ b/game/models.py @@ -3,6 +3,11 @@ from django.db import models from django.urls import reverse +class YoutubeCredentials(models.Model): + user = models.OneToOneField(User, on_delete=models.CASCADE) + credentials = models.JSONField() + + class Group(models.Model): name = models.CharField(verbose_name="Nom du groupe") owner = models.ForeignKey( diff --git a/game/templates/game/home.html b/game/templates/game/home.html index d2c045b..6c78861 100644 --- a/game/templates/game/home.html +++ b/game/templates/game/home.html @@ -2,6 +2,9 @@

Mes groupes

Créer un groupe + {% if not user.youtubecredentials %} + Me connecter au compte Youtube + {% endif %}

{% if user.owned_group_set.exists or user.group_set.exists %}