diff --git a/CHANGELOG.md b/CHANGELOG.md
index c98d5ed..4868406 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -3,6 +3,7 @@
## Improved
* game overview: improve how editions and purchases are displayed
* add purchase: only allow choosing purchases of selected edition
+* session list: clicking the "End now?" link is not much faster
## 1.5.1 / 2023-11-14 21:10+01:00
diff --git a/games/templates/list_sessions.html b/games/templates/list_sessions.html
index e3c29b9..6e80ac1 100644
--- a/games/templates/list_sessions.html
+++ b/games/templates/list_sessions.html
@@ -7,13 +7,13 @@
{% if dataset.count >= 1 %}
@@ -29,38 +29,37 @@
- {% for data in dataset %}
- {% partialdef session-row inline=True %}
-
-
-
- {{ data.purchase.edition }}
-
- |
-
- {{ data.timestamp_start | date:"d/m/Y H:i" }}
- |
-
- {% if data.unfinished %}
-
- Finish now?
-
- {% elif data.duration_manual %}
- --
- {% else %}
- {{ data.timestamp_end | date:"d/m/Y H:i" }}
- {% endif %}
- |
- {{ data.duration_formatted }} |
-
- {% endpartialdef %}
+ {% for session in dataset %}
+ {% partialdef session-row inline=True %}
+
+
+
+ {{ session.purchase.edition }}
+
+ |
+
+ {{ session.timestamp_start | date:"d/m/Y H:i" }}
+ |
+
+ {% if session.unfinished %}
+
+ Finish now?
+
+ {% elif session.duration_manual %}
+ --
+ {% else %}
+ {{ session.timestamp_end | date:"d/m/Y H:i" }}
+ {% endif %}
+ |
+ {{ session.duration_formatted }} |
+
+ {% endpartialdef %}
{% endfor %}
diff --git a/games/views.py b/games/views.py
index df34d2b..0f4ae4a 100644
--- a/games/views.py
+++ b/games/views.py
@@ -13,6 +13,7 @@ from django.http import (
from django.shortcuts import redirect, render
from django.urls import reverse
from django.utils import timezone
+from django.shortcuts import get_object_or_404
from common.time import format_duration
from common.utils import safe_division
@@ -74,11 +75,12 @@ def add_session(request, purchase_id=None):
def update_session(request, session_id=None):
- session = Session.objects.get(id=session_id)
+ session = get_object_or_404(Session, id=session_id)
session.finish_now()
session.save()
if request.htmx:
- return render(request, "list_sessions.html#session-row")
+ context = {"session": session}
+ return render(request, "list_sessions.html#session-row", context)
return redirect("list_sessions")
diff --git a/poetry.lock b/poetry.lock
index 32a5525..b0560bc 100644
--- a/poetry.lock
+++ b/poetry.lock
@@ -1,4 +1,4 @@
-# This file is automatically @generated by Poetry 1.7.1 and should not be changed by hand.
+# This file is automatically @generated by Poetry 1.7.0 and should not be changed by hand.
[[package]]
name = "aniso8601"
@@ -172,6 +172,21 @@ files = [
[package.dependencies]
Django = ">=3.2"
+[[package]]
+name = "django-htmx"
+version = "1.17.2"
+description = "Extensions for using Django with htmx."
+optional = false
+python-versions = ">=3.8"
+files = [
+ {file = "django-htmx-1.17.2.tar.gz", hash = "sha256:4089f2ed38727e9846c2f4cd1daddf6b010c7be8d834cfbcffc8c5ecf445c04e"},
+ {file = "django_htmx-1.17.2-py3-none-any.whl", hash = "sha256:f4971432d2ca45dbb31d9b58add1c50ae54354afe4bf59cafd591b1711b502c0"},
+]
+
+[package.dependencies]
+asgiref = ">=3.6"
+Django = ">=3.2"
+
[[package]]
name = "django-template-partials"
version = "23.4"
@@ -1005,4 +1020,4 @@ watchdog = ["watchdog (>=2.3)"]
[metadata]
lock-version = "2.0"
python-versions = "^3.11"
-content-hash = "c9ce052c193fdf4cc4b22f0cd1f2368fae6bc9304c38c770843315f39fa08de4"
+content-hash = "4662e73ad621b11cbe5b517ca08aae4cbeb350bfcc855a6c067861942e232d2a"
diff --git a/pyproject.toml b/pyproject.toml
index a8f3c18..a2ffae4 100644
--- a/pyproject.toml
+++ b/pyproject.toml
@@ -13,6 +13,8 @@ django = "^4.2.0"
gunicorn = "^20.1.0"
uvicorn = "^0.20.0"
graphene-django = "^3.1.5"
+django-htmx = "^1.17.2"
+django-template-partials = "^23.4"
[tool.poetry.group.dev.dependencies]
black = "^22.12.0"
@@ -28,9 +30,6 @@ pre-commit = "^3.5.0"
django-debug-toolbar = "^4.2.0"
-[tool.poetry.dependencies]
-django-htmx = "^1.17.2"
-django-template-partials = "^23.4"
[tool.isort]
profile = "black"