Add migration to alter MusicVideo model options and update group detail form to use textarea for YouTube IDs

This commit is contained in:
Edgar P. Burkhart 2025-06-15 16:20:53 +02:00
parent 486f650ea6
commit cc38d72df8
Signed by: edpibu
GPG key ID: 9833D3C5A25BD227
4 changed files with 42 additions and 22 deletions

View file

@ -0,0 +1,16 @@
# Generated by Django 5.2.3 on 2025-06-15 14:19
from django.db import migrations
class Migration(migrations.Migration):
dependencies = [
("game", "0022_musicgameorder_value"),
]
operations = [
migrations.AlterModelOptions(
name="musicvideo",
options={"ordering": ["blacklisted", "-date_added"]},
),
]

View file

@ -66,6 +66,7 @@ class MusicVideo(models.Model):
fields=("yt_id", "owner", "group"), name="unique_music_in_group"
)
]
ordering = ["blacklisted", "-date_added"]
class GameManager(models.Manager):

View file

@ -71,8 +71,8 @@
</details>
<form method="post" action="{% url "group_add_music" pk=group.pk %}">
{% csrf_token %}
<fieldset role="group">
<input type="string" name="yt_id" id="yt_id" placeholder="Musique" required>
<fieldset>
<textarea name="yt_id" id="yt_id" placeholder="Musiques" required></textarea>
<button type="submit">Ajouter</button>
</fieldset>
</form>

View file

@ -104,28 +104,31 @@ class GroupAddMusicView(MemberFilterMixin, SingleObjectMixin, View):
def post(self, request, pk):
group = self.get_object()
yt_id = request.POST.get("yt_id")
if not yt_id:
messages.add_message(request, messages.ERROR, "Aucun identifiant donné")
return redirect(group)
yt_id = utils.parse_musik(yt_id)
ids = request.POST.get("yt_id")
for yt_id in ids.split():
if not yt_id:
messages.add_message(request, messages.ERROR, "Aucun identifiant donné")
return redirect(group)
yt_id = utils.parse_musik(yt_id)
title = utils.get_yt_title(yt_id)
if not title:
messages.add_message(
request, messages.ERROR, f"Vidéo Youtube invalide : {yt_id}"
)
return redirect(group)
try:
group.musicvideo_set.create(yt_id=yt_id, title=title, owner=request.user)
except IntegrityError:
messages.add_message(
request, messages.ERROR, f"Vidéo Youtube déjà ajoutée : {yt_id}"
)
title = utils.get_yt_title(yt_id)
if not title:
messages.add_message(
request, messages.ERROR, f"Vidéo Youtube invalide : {yt_id}"
)
else:
try:
group.musicvideo_set.create(
yt_id=yt_id, title=title, owner=request.user
)
except IntegrityError:
messages.add_message(
request, messages.ERROR, f"Vidéo Youtube déjà ajoutée : {yt_id}"
)
messages.add_message(
request, messages.SUCCESS, f"Vidéo Youtube ajoutée : {yt_id}"
)
messages.add_message(
request, messages.SUCCESS, f"Vidéo Youtube ajoutée : {yt_id}"
)
return redirect(group)