mirror of
https://github.com/Crocmagnon/charasheet.git
synced 2024-11-05 06:13:55 +01:00
Setup very basic character view
This commit is contained in:
parent
a7fa40bcf8
commit
9e816d2281
6 changed files with 36 additions and 3 deletions
|
@ -1,5 +1,6 @@
|
||||||
from django.db import models
|
from django.db import models
|
||||||
from django.db.models.functions import Lower
|
from django.db.models.functions import Lower
|
||||||
|
from django.urls import reverse
|
||||||
from django_extensions.db.models import TimeStampedModel
|
from django_extensions.db.models import TimeStampedModel
|
||||||
|
|
||||||
from character.models.dice import Dice
|
from character.models.dice import Dice
|
||||||
|
@ -113,6 +114,9 @@ class Character(models.Model):
|
||||||
def natural_key(self):
|
def natural_key(self):
|
||||||
return (self.name, self.player_id)
|
return (self.name, self.player_id)
|
||||||
|
|
||||||
|
def get_absolute_url(self):
|
||||||
|
return reverse("character:view", kwargs={"pk": self.pk})
|
||||||
|
|
||||||
@property
|
@property
|
||||||
def modifier_strength(self) -> int:
|
def modifier_strength(self) -> int:
|
||||||
return modifier(self.value_strength)
|
return modifier(self.value_strength)
|
||||||
|
|
8
src/character/templates/character/view.html
Normal file
8
src/character/templates/character/view.html
Normal file
|
@ -0,0 +1,8 @@
|
||||||
|
{% extends "common/base.html" %}
|
||||||
|
|
||||||
|
{% block title %}{{ character.name }}{% endblock %}
|
||||||
|
|
||||||
|
{% block content %}
|
||||||
|
<h1>{{ character.name }}</h1>
|
||||||
|
<p><a href="{% url "admin:character_character_change" object_id=character.pk %}">Edit</a></p>
|
||||||
|
{% endblock %}
|
6
src/character/urls.py
Normal file
6
src/character/urls.py
Normal file
|
@ -0,0 +1,6 @@
|
||||||
|
from django.urls import path
|
||||||
|
|
||||||
|
from character import views
|
||||||
|
|
||||||
|
app_name = "character"
|
||||||
|
urlpatterns = [path("<int:pk>/", views.character_view, name="view")]
|
|
@ -1 +1,13 @@
|
||||||
# Create your views here.
|
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:
|
||||||
|
character = get_object_or_404(Character, pk=pk)
|
||||||
|
context = {"character": character}
|
||||||
|
return render(request, "character/view.html", context)
|
||||||
|
|
|
@ -25,6 +25,7 @@ urlpatterns = [
|
||||||
path("logout/", logout, {"next_page": settings.LOGOUT_REDIRECT_URL}, name="logout"),
|
path("logout/", logout, {"next_page": settings.LOGOUT_REDIRECT_URL}, name="logout"),
|
||||||
path("admin/", admin.site.urls),
|
path("admin/", admin.site.urls),
|
||||||
path("", hello_world, name="hello_world"),
|
path("", hello_world, name="hello_world"),
|
||||||
|
path("character/", include("character.urls", namespace="character")),
|
||||||
]
|
]
|
||||||
|
|
||||||
urlpatterns += static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)
|
urlpatterns += static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)
|
||||||
|
|
|
@ -4,10 +4,12 @@
|
||||||
<html lang="en">
|
<html lang="en">
|
||||||
<head>
|
<head>
|
||||||
<meta charset="UTF-8">
|
<meta charset="UTF-8">
|
||||||
<title>Character Sheet</title>
|
<title>{% block title %}Character Sheet{% endblock %}</title>
|
||||||
</head>
|
</head>
|
||||||
<body>
|
<body>
|
||||||
|
{% block content %}
|
||||||
{% include "common/hello-random.html" %}
|
{% include "common/hello-random.html" %}
|
||||||
|
{% endblock %}
|
||||||
<script src="{% static 'vendor/htmx-1.8.2.min.js' %}" defer></script>
|
<script src="{% static 'vendor/htmx-1.8.2.min.js' %}" defer></script>
|
||||||
{% django_htmx_script %}
|
{% django_htmx_script %}
|
||||||
{% if debug %}
|
{% if debug %}
|
||||||
|
|
Loading…
Reference in a new issue