From aa669710e11add216740e8304d2abafd713e3a31 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Luk=C3=A1=C5=A1=20Kucharczyk?= Date: Wed, 10 Jan 2024 14:10:13 +0100 Subject: [PATCH] Change update_session to template partial --- games/templates/base.html | 2 ++ games/templates/list_sessions.html | 2 ++ games/views.py | 2 ++ poetry.lock | 22 ++++++++++++++++++++-- pyproject.toml | 6 +++++- timetracker/settings.py | 4 ++++ 6 files changed, 35 insertions(+), 3 deletions(-) diff --git a/games/templates/base.html b/games/templates/base.html index b49a99c..79f3dfe 100644 --- a/games/templates/base.html +++ b/games/templates/base.html @@ -1,3 +1,4 @@ +{% load django_htmx %} {% load static %} @@ -12,6 +13,7 @@ {% endblock title %} + {% django_htmx_script %} diff --git a/games/templates/list_sessions.html b/games/templates/list_sessions.html index 23bf923..e3c29b9 100644 --- a/games/templates/list_sessions.html +++ b/games/templates/list_sessions.html @@ -30,6 +30,7 @@ {% for data in dataset %} + {% partialdef session-row inline=True %} {{ data.duration_formatted }} + {% endpartialdef %} {% endfor %} diff --git a/games/views.py b/games/views.py index 9d7b29b..df34d2b 100644 --- a/games/views.py +++ b/games/views.py @@ -77,6 +77,8 @@ def update_session(request, session_id=None): session = Session.objects.get(id=session_id) session.finish_now() session.save() + if request.htmx: + return render(request, "list_sessions.html#session-row") return redirect("list_sessions") diff --git a/poetry.lock b/poetry.lock index 07940fa..32a5525 100644 --- a/poetry.lock +++ b/poetry.lock @@ -172,6 +172,24 @@ files = [ [package.dependencies] Django = ">=3.2" +[[package]] +name = "django-template-partials" +version = "23.4" +description = "django-template-partials" +optional = false +python-versions = "*" +files = [ + {file = "django-template-partials-23.4.tar.gz", hash = "sha256:f762b0b7b2222462df0845f0556792640b769eb832eae218a0e7dadd4e5606cc"}, + {file = "django_template_partials-23.4-py2.py3-none-any.whl", hash = "sha256:d83d9c2d2836be769919e9aaf394d5feb1ac86e1187083030398308070122fca"}, +] + +[package.dependencies] +Django = "*" + +[package.extras] +docs = ["Sphinx"] +tests = ["coverage", "django_coverage_plugin"] + [[package]] name = "djhtml" version = "1.5.2" @@ -986,5 +1004,5 @@ watchdog = ["watchdog (>=2.3)"] [metadata] lock-version = "2.0" -python-versions = "^3.12" -content-hash = "e864dc8abf6c84e5bb16ac2aa937c2a70561d15f3e8a1459866b9d6507e8773e" +python-versions = "^3.11" +content-hash = "c9ce052c193fdf4cc4b22f0cd1f2368fae6bc9304c38c770843315f39fa08de4" diff --git a/pyproject.toml b/pyproject.toml index d17eda8..a8f3c18 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -8,7 +8,7 @@ readme = "README.md" packages = [{include = "timetracker"}] [tool.poetry.group.main.dependencies] -python = "^3.12" +python = "^3.11" django = "^4.2.0" gunicorn = "^20.1.0" uvicorn = "^0.20.0" @@ -27,6 +27,10 @@ isort = "^5.11.4" 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" diff --git a/timetracker/settings.py b/timetracker/settings.py index 6386976..f80d9ea 100644 --- a/timetracker/settings.py +++ b/timetracker/settings.py @@ -38,7 +38,9 @@ INSTALLED_APPS = [ "django.contrib.sessions", "django.contrib.messages", "django.contrib.staticfiles", + "template_partials", "graphene_django", + "django_htmx", ] GRAPHENE = {"SCHEMA": "games.schema.schema"} @@ -56,6 +58,7 @@ MIDDLEWARE = [ "django.contrib.auth.middleware.AuthenticationMiddleware", "django.contrib.messages.middleware.MessageMiddleware", "django.middleware.clickjacking.XFrameOptionsMiddleware", + "django_htmx.middleware.HtmxMiddleware", ] if DEBUG: @@ -79,6 +82,7 @@ TEMPLATES = [ "games.views.model_counts", "games.views.stats_dropdown_year_range", ], + "builtins": ["template_partials.templatetags.partials"], }, }, ]