From 83404e2ed5b969678c0cf7f0fd6a39fecd31eb7e Mon Sep 17 00:00:00 2001
From: "Edgar P. Burkhart"
Date: Sun, 15 Jun 2025 10:25:40 +0200
Subject: [PATCH] Add title field to YoutubeCredentials model and update
related templates and tasks
---
.../migrations/0017_youtubecredentials_title.py | 17 +++++++++++++++++
game/models.py | 1 +
game/tasks.py | 2 --
game/templates/game/home.html | 2 +-
game/templates/game/musikgame_form.html | 2 +-
game/views.py | 4 ++--
6 files changed, 22 insertions(+), 6 deletions(-)
create mode 100644 game/migrations/0017_youtubecredentials_title.py
diff --git a/game/migrations/0017_youtubecredentials_title.py b/game/migrations/0017_youtubecredentials_title.py
new file mode 100644
index 0000000..89870e4
--- /dev/null
+++ b/game/migrations/0017_youtubecredentials_title.py
@@ -0,0 +1,17 @@
+# Generated by Django 5.2.3 on 2025-06-15 08:24
+
+from django.db import migrations, models
+
+
+class Migration(migrations.Migration):
+ dependencies = [
+ ("game", "0016_alter_groupleader_member"),
+ ]
+
+ operations = [
+ migrations.AddField(
+ model_name="youtubecredentials",
+ name="title",
+ field=models.CharField(blank=True),
+ ),
+ ]
diff --git a/game/models.py b/game/models.py
index a3f104d..1f8ce2f 100644
--- a/game/models.py
+++ b/game/models.py
@@ -11,6 +11,7 @@ from . import tasks
class YoutubeCredentials(models.Model):
user = models.OneToOneField(User, on_delete=models.CASCADE)
credentials = models.JSONField()
+ title = models.CharField(blank=True)
class Group(models.Model):
diff --git a/game/tasks.py b/game/tasks.py
index ceb5777..22a7dc0 100644
--- a/game/tasks.py
+++ b/game/tasks.py
@@ -8,7 +8,6 @@ from . import models
@shared_task
def generate_playlist(creds, game_pk):
game = models.MusikGame.objects.get(pk=game_pk)
- creds.pop("channel_title")
credentials = google.oauth2.credentials.Credentials(**creds)
yt_api = googleapiclient.discovery.build("youtube", "v3", credentials=credentials)
pl_request = yt_api.playlists().insert(
@@ -48,7 +47,6 @@ def generate_playlist(creds, game_pk):
@shared_task
def delete_playlist(creds, playlist_id):
- creds.pop("channel_title")
credentials = google.oauth2.credentials.Credentials(**creds)
yt_api = googleapiclient.discovery.build("youtube", "v3", credentials=credentials)
diff --git a/game/templates/game/home.html b/game/templates/game/home.html
index 27511b5..5a290a5 100644
--- a/game/templates/game/home.html
+++ b/game/templates/game/home.html
@@ -9,7 +9,7 @@
{% if not user.youtubecredentials.credentials %}
Me connecter au compte Youtube
{% else %}
- Connecté au compte Youtube {{ user.youtubecredentials.credentials.channel_title }}.
+ Connecté au compte Youtube {{ user.youtubecredentials.title }}.
{% endif %}
diff --git a/game/templates/game/musikgame_form.html b/game/templates/game/musikgame_form.html
index 03820a3..38ed5b6 100644
--- a/game/templates/game/musikgame_form.html
+++ b/game/templates/game/musikgame_form.html
@@ -8,7 +8,7 @@
{% if not user.youtubecredentials.credentials %}
Me connecter au compte Youtube
{% else %}
- Une playlist sera générée automatiquement sur le compte Youtube {{ user.youtubecredentials.credentials.channel_title }}.
+ Une playlist sera générée automatiquement sur le compte Youtube {{ user.youtubecredentials.title }}.
{% endif %}
{% form form %}
diff --git a/game/views.py b/game/views.py
index cbcbdb8..096bc12 100644
--- a/game/views.py
+++ b/game/views.py
@@ -381,8 +381,8 @@ class YoutubeCallbackView(LoginRequiredMixin, View):
"client_id": credentials.client_id,
"client_secret": credentials.client_secret,
"granted_scopes": credentials.granted_scopes,
- "channel_title": res["items"][0]["snippet"]["title"],
- }
+ },
+ "title": res["items"][0]["snippet"]["title"],
},
)
messages.add_message(request, messages.SUCCESS, "Connexion à Youtube réussie.")