mirror of
https://github.com/Crocmagnon/charasheet.git
synced 2024-11-04 22:03:56 +01:00
Improve cap update
This commit is contained in:
parent
22832adcb0
commit
b4d5ca039f
2 changed files with 9 additions and 16 deletions
|
@ -1,17 +1,17 @@
|
|||
{% load character_extras %}
|
||||
<div class="col-xl-3 col-md-6" data-path-id="{{ path.pk }}">
|
||||
<div class="col-xl-3 col-md-6">
|
||||
<div class="card">
|
||||
<h5 class="card-header">
|
||||
{{ path.display_name }}
|
||||
<button hx-get="{% url "character:remove_last_in_path" character_pk=character.pk path_pk=path.pk %}"
|
||||
hx-target="[data-path-id='{{ path.pk }}']"
|
||||
hx-target="#paths-and-capabilities"
|
||||
hx-swap="outerHTML"
|
||||
class="btn btn-sm btn-primary">
|
||||
<i class="fa-solid fa-minus"></i>
|
||||
</button>
|
||||
{% if path|has_next_capability:character %}
|
||||
<button hx-get="{% url "character:add_next_in_path" character_pk=character.pk path_pk=path.pk %}"
|
||||
hx-target="[data-path-id='{{ path.pk }}']"
|
||||
hx-target="#paths-and-capabilities"
|
||||
hx-swap="outerHTML"
|
||||
class="btn btn-sm btn-primary">
|
||||
<i class="fa-solid fa-plus"></i>
|
||||
|
|
|
@ -194,11 +194,10 @@ def add_next_in_path(request, character_pk: int, path_pk: int):
|
|||
capability = path.get_next_capability(character)
|
||||
character.capabilities.add(capability)
|
||||
context = {
|
||||
"capabilities": character.capabilities.filter(path=path).order_by("rank"),
|
||||
"path": path,
|
||||
"character": character,
|
||||
"add_path_form": AddPathForm(character),
|
||||
}
|
||||
return render(request, "character/path.html", context)
|
||||
return render(request, "character/paths_and_capabilities.html", context)
|
||||
|
||||
|
||||
@login_required
|
||||
|
@ -206,19 +205,13 @@ def remove_last_in_path(request, character_pk: int, path_pk: int):
|
|||
character = get_object_or_404(
|
||||
Character.objects.filter(player=request.user), pk=character_pk
|
||||
)
|
||||
path = get_object_or_404(Path, pk=path_pk)
|
||||
last_rank = max(
|
||||
character.capabilities.filter(path=path).values_list("rank", flat=True)
|
||||
character.capabilities.filter(path_id=path_pk).values_list("rank", flat=True)
|
||||
)
|
||||
cap = Capability.objects.get(path=path, rank=last_rank)
|
||||
cap = Capability.objects.get(path_id=path_pk, rank=last_rank)
|
||||
character.capabilities.remove(cap)
|
||||
capabilities = character.capabilities.filter(path=path).order_by("rank")
|
||||
if len(capabilities) == 0:
|
||||
return HttpResponse()
|
||||
|
||||
context = {
|
||||
"capabilities": capabilities,
|
||||
"path": path,
|
||||
"character": character,
|
||||
"add_path_form": AddPathForm(character),
|
||||
}
|
||||
return render(request, "character/path.html", context)
|
||||
return render(request, "character/paths_and_capabilities.html", context)
|
||||
|
|
Loading…
Reference in a new issue