from django.contrib.auth.decorators import login_required from django.shortcuts import redirect, render from apps.applets.utils import applet_context from apps.applets.models import Applet, UserApplet from apps.lyric.models import Token GAMEBOARD_APPLET_ORDER = [ "new-game", "my-games", "game-kit", ] @login_required(login_url="/") def gameboard(request): coin = request.user.tokens.filter(token_type=Token.COIN).first() free_tokens = list(request.user.tokens.filter(token_type=Token.FREE)) return render( request, "apps/gameboard/gameboard.html", { "coin": coin, "free_tokens": free_tokens, "applets": applet_context(request.user, "gameboard"), } ) @login_required(login_url="/") def toggle_game_applets(request): checked = request.POST.getlist("applets") for applet in Applet.objects.filter(context="gameboard"): UserApplet.objects.update_or_create( user=request.user, applet=applet, defaults={"visible": applet.slug in checked}, ) if request.headers.get("HX-Request"): return render(request, "apps/gameboard/_partials/_applets.html", { "applets": applet_context(request.user, "gameboard"), "coin": request.user.tokens.filter(token_type=Token.COIN).first(), "free_tokens": list(request.user.tokens.filter(token_type=Token.FREE)), }) return redirect("gameboard")