charasheet/src/character/views.py

33 lines
1.2 KiB
Python
Raw Normal View History

2022-10-30 10:12:49 +01:00
from django.contrib.auth.decorators import login_required
from django.core.handlers.wsgi import WSGIRequest
from django.http import HttpResponse
from django.shortcuts import get_object_or_404, render
from character.models import Character
@login_required
def character_view(request: WSGIRequest, pk: int) -> HttpResponse:
2022-10-30 10:54:28 +01:00
character = get_object_or_404(Character.objects.select_related("player"), pk=pk)
2022-10-30 10:12:49 +01:00
context = {"character": character}
return render(request, "character/view.html", context)
2022-10-30 17:37:09 +01:00
@login_required
def character_health_change(request: WSGIRequest, pk: int) -> HttpResponse:
character = get_object_or_404(Character, pk=pk)
value = request.GET.get("value")
if value == "ko":
character.health_remaining = 0
elif value == "max":
character.health_remaining = character.health_max
else:
value = int(value)
character.health_remaining += value
character.health_remaining = min(
[character.health_max, character.health_remaining]
)
character.health_remaining = max([0, character.health_remaining])
character.save(update_fields=["health_remaining"])
return HttpResponse(character.health_remaining)