Add game answer functionality with form and view for user responses
This commit is contained in:
parent
6dbb1a54e0
commit
d03d3b48d4
9 changed files with 97 additions and 12 deletions
|
@ -421,3 +421,34 @@ class GroupClearBlacklistView(MemberFilterMixin, SingleObjectMixin, View):
|
|||
group.musicvideo_set.filter(blacklisted=True).update(blacklisted=False)
|
||||
messages.add_message(request, messages.SUCCESS, "La blacklist a été effacée.")
|
||||
return redirect(group)
|
||||
|
||||
|
||||
class GameAnswerView(LoginRequiredMixin, DetailView):
|
||||
model = models.MusikGame
|
||||
template_name = "game/musikgame_answer.html"
|
||||
|
||||
def get_queryset(self):
|
||||
return super().get_queryset().filter(players=self.request.user)
|
||||
|
||||
def get_context_data(self, **kwargs):
|
||||
return super().get_context_data(**kwargs) | {
|
||||
"form": forms.AnswerForm(game=self.object, user=self.request.user)
|
||||
}
|
||||
|
||||
def post(self, request, pk):
|
||||
game = self.get_object()
|
||||
for music in game.musicgameorder_set.all():
|
||||
answer = request.POST.get(f"answer-{music.order}")
|
||||
if answer:
|
||||
models.MusicGameAnswer.objects.update_or_create(
|
||||
game=music,
|
||||
player=request.user,
|
||||
defaults={"answer": game.players.get(pk=answer)},
|
||||
)
|
||||
else:
|
||||
models.MusicGameAnswer.objects.update_or_create(
|
||||
game=music,
|
||||
player=request.user,
|
||||
defaults={"answer": None},
|
||||
)
|
||||
return redirect("game_answer", pk)
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue