- HTML 49.6%
- Python 44.8%
- CSS 3%
- JavaScript 2.5%
A companion is a whole small sheet with values, notes and possibly an image, so a single misclick on "Entfernen" should not throw it away. The button now behaves like deleting a note page: companions.js asks with confirm() (naming the companion, or a generic question while the name is still empty) and only then sets DELETE and hides the card; the row is deleted on the next save as before. The button gets its own class .companion-delete instead of .row-remove, so the generic remove handler in formsets.js no longer acts on it. It keeps the look of the old button and is hidden in print. A browser test covers both answers: cancelling keeps the companion, confirming and saving removes it. Docs and the changelog are updated. |
||
|---|---|---|
| .claude | ||
| browser_tests | ||
| characters | ||
| config | ||
| docker | ||
| docs | ||
| imports | ||
| skills | ||
| static | ||
| templates | ||
| .dockerignore | ||
| .env.example | ||
| .gitignore | ||
| AGENTS.md | ||
| CLAUDE.md | ||
| docker-compose.test.yml | ||
| docker-compose.yml | ||
| Dockerfile | ||
| manage.py | ||
| README.md | ||
| requirements-browser.txt | ||
| requirements.txt | ||
DnD20
D&D-5e-Plattform auf Basis von Django: begonnen als Onlineversion des deutschen Charakterbogens (v1.2, André Taendler / dnddeutsch.de), wächst schrittweise zur kompletten D&D-Verwaltung und -Einsicht – aktueller Stand und nächste Schritte in docs/roadmap.md. Produktiv unter https://dnd20.de (weiterhin auch unter https://sheets.dnd20.de).
Starten
python3 -m venv .venv # oder: python3 -m venv --without-pip .venv (siehe unten)
.venv/bin/pip install -r requirements.txt
.venv/bin/python manage.py migrate
.venv/bin/python manage.py createsuperuser # optional, für /admin
.venv/bin/python manage.py runserver
Dann http://127.0.0.1:8000 öffnen, registrieren und Charaktere anlegen.
Ausführliche Entwicklerdokumentation: docs/
Mit Docker
cp .env.example .env # DJANGO_SECRET_KEY und POSTGRES_PASSWORD setzen
docker compose up -d --build
Läuft dann unter http://localhost:8000 (PostgreSQL, gunicorn, statische Dateien über WhiteNoise).
Migrationen laufen beim Start automatisch. Daten liegen in den Volumes db-data und media.
Bei eigener Domain DJANGO_ALLOWED_HOSTS und DJANGO_CSRF_TRUSTED_ORIGINS anpassen,
hinter einem HTTPS-Reverse-Proxy zusätzlich DJANGO_BEHIND_HTTPS_PROXY=1.
Aufbau
| Pfad | Inhalt |
|---|---|
characters/rules.py |
Alle Regelberechnungen (Modifikatoren, Übungsbonus, Fertigkeiten, Zauberplätze inkl. Multiklassen & Paktmagie). Die einzige Stelle, an der gerechnet wird. |
characters/models.py |
Character, ClassLevel (Multiklassen), Attack, CharacterSpell, Stammdaten CharacterClass / Subclass |
characters/migrations/0002_seed_classes.py |
Klassen und Unterklassen aus dem Spielerhandbuch |
characters/views.py |
Bogen (anlegen/bearbeiten), Liste, Löschen, Duplizieren, compute (JSON für Live-Berechnung) |
templates/characters/sheet.html |
Die drei Seiten des Bogens |
static/js/sheet/ |
Bogen als ES-Module (main.js): Seitenwechsel, dynamische Zeilen, Live-Berechnung über /berechnen/, Autosave |
Die Live-Werte im Browser kommen vom Server (POST /berechnen/ mit den ungespeicherten Formulardaten),
es gibt also keine doppelte Regel-Logik in JavaScript.
Was schon berechnet wird
- Attributsmodifikatoren, Übungsbonus (aus der Gesamtstufe)
- Rettungswürfe und Fertigkeiten (geübt / Expertise; Alleskönner beim Barden ab Stufe 2)
- Passive Wahrnehmung, Initiative
- Trefferwürfel gesamt, Vorschlag für TP-Maximum (Durchschnitt)
- Zauberwirken je Klasse: Attribut, Rettungswurf-SG, Angriffsbonus
- Zauberplätze pro Grad (Einzelklasse und Multiklassen-Tabelle), Paktmagie getrennt
Inzwischen dazugekommen, hier nur in Stichworten (Details in docs/): Hintergründe, Rüstungsklasse, Waffenübungen, Nachschlagewerke mit Regeltexten aus dem SRD 5.1, Questbuch & NPC-Buch, KI-Porträts, Dark Mode.
Nächste Schritte
Siehe docs/roadmap.md für den aktuellen Stand – als Nächstes geplant ist ein durchsuchbares Bestiarium (Monster-Nachschlagewerk), analog zu den bestehenden Zauber-/Rüstungs-/ Waffenübersichten.
Quellen und Lizenz der Regeldaten
Regelwerte wie Materialkomponenten, Reichweiten und Wirkungsdauern der Zauber stammen zum Teil aus dem System Reference Document 5.1 (SRD 5.1) von Wizards of the Coast LLC, lizenziert unter CC-BY-4.0, und wurden für dieses Projekt ins Deutsche übersetzt. Die englischen Daten wurden über die Zaubertabelle von Mythical Ink bezogen. Buch und Seite der deutschen Ausgaben wurden mit der Zauberliste von dnddeutsch.de abgeglichen. Beschreibungstexte aus Regelbüchern werden nicht gespeichert.