new migrations in apps.epic app; new models, urls, views handle the founder of a New Game inviting a friend via email to a game gatekeeper; ea. may drop coin in any of up to 6 avail. slots; FTs & ITs passing
This commit is contained in:
@@ -1,7 +1,7 @@
|
||||
from django.contrib.auth.decorators import login_required
|
||||
from django.shortcuts import redirect, render
|
||||
|
||||
from apps.epic.models import Room, debit_token
|
||||
from apps.epic.models import Room, RoomInvite, debit_token
|
||||
from apps.lyric.models import Token
|
||||
|
||||
|
||||
@@ -17,9 +17,14 @@ def create_room(request):
|
||||
def gatekeeper(request, room_id):
|
||||
room = Room.objects.get(id=room_id)
|
||||
slots = room.gate_slots.order_by("slot_number")
|
||||
user_has_slot = (
|
||||
request.user.is_authenticated
|
||||
and room.gate_slots.filter(gamer=request.user).exists()
|
||||
)
|
||||
return render(request, "apps/gameboard/room.html", {
|
||||
'room': room,
|
||||
'slots': slots,
|
||||
"room": room,
|
||||
"slots": slots,
|
||||
"user_has_slot": user_has_slot,
|
||||
})
|
||||
|
||||
@login_required
|
||||
@@ -35,3 +40,17 @@ def drop_token(request, room_id, slot_number):
|
||||
if token:
|
||||
debit_token(request.user, slot, token)
|
||||
return redirect("epic:gatekeeper", room_id=room_id)
|
||||
|
||||
@login_required
|
||||
def invite_gamer(request, room_id):
|
||||
if request.method == "POST":
|
||||
room = Room.objects.get(id=room_id)
|
||||
email = request.POST.get("invitee_email", "").strip()
|
||||
if email:
|
||||
RoomInvite.objects.get_or_create(
|
||||
room=room,
|
||||
inviter=request.user,
|
||||
invitee_email=email,
|
||||
defaults={"status": RoomInvite.PENDING}
|
||||
)
|
||||
return redirect("epic:gatekeeper", room_id=room_id)
|
||||
|
||||
Reference in New Issue
Block a user