mirror of
https://github.com/Crocmagnon/charasheet.git
synced 2024-11-04 22:03:56 +01:00
Display rank next to path
This commit is contained in:
parent
76d492a5b1
commit
d80094cf41
3 changed files with 24 additions and 14 deletions
|
@ -65,7 +65,7 @@ class Path(DocumentedModel, UniquelyNamedModel, TimeStampedModel, models.Model):
|
|||
return None
|
||||
|
||||
def get_next_capability(self, character) -> Capability:
|
||||
next_rank = character.capabilities.filter(path=self).count() + 1
|
||||
next_rank = self.max_rank(character) + 1
|
||||
return self.capabilities.get(rank=next_rank)
|
||||
|
||||
def has_next_capability(self, character) -> bool:
|
||||
|
@ -75,6 +75,9 @@ class Path(DocumentedModel, UniquelyNamedModel, TimeStampedModel, models.Model):
|
|||
except Capability.DoesNotExist:
|
||||
return False
|
||||
|
||||
def max_rank(self, character) -> int:
|
||||
return character.capabilities.filter(path=self).count()
|
||||
|
||||
|
||||
class CapabilityManager(models.Manager):
|
||||
def get_by_natural_key(self, path, rank):
|
||||
|
|
|
@ -1,22 +1,24 @@
|
|||
{% load character_extras %}
|
||||
<div class="col-xl-3 col-md-6">
|
||||
<div class="col col-md-6 col-xl-4">
|
||||
<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="#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 %}"
|
||||
{{ path.display_name }} ({{ path|max_rank:character }})
|
||||
<div class="btn-group btn-group-sm">
|
||||
<button hx-get="{% url "character:remove_last_in_path" character_pk=character.pk path_pk=path.pk %}"
|
||||
hx-target="#paths-and-capabilities"
|
||||
hx-swap="outerHTML"
|
||||
class="btn btn-sm btn-primary">
|
||||
<i class="fa-solid fa-plus"></i>
|
||||
class="btn btn-primary">
|
||||
<i class="fa-solid fa-minus"></i>
|
||||
</button>
|
||||
{% endif %}
|
||||
{% 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="#paths-and-capabilities"
|
||||
hx-swap="outerHTML"
|
||||
class="btn btn-primary">
|
||||
<i class="fa-solid fa-plus"></i>
|
||||
</button>
|
||||
{% endif %}
|
||||
</div>
|
||||
</h5>
|
||||
{% if path.notes %}
|
||||
<div class="card-body text-bg-light">{{ path.notes }}</div>
|
||||
|
|
|
@ -32,3 +32,8 @@ def weapon_modifier(character: Character, weapon: Weapon):
|
|||
@register.filter
|
||||
def has_next_capability(path: Path, character: Character) -> bool:
|
||||
return path.has_next_capability(character)
|
||||
|
||||
|
||||
@register.filter
|
||||
def max_rank(path: Path, character: Character) -> int:
|
||||
return path.max_rank(character)
|
||||
|
|
Loading…
Reference in a new issue