Scope URLs to the games namespace
This commit is contained in:
+1
-1
@@ -95,7 +95,7 @@ class PurchaseForm(forms.ModelForm):
|
|||||||
|
|
||||||
# Automatically update related_purchase <select/>
|
# Automatically update related_purchase <select/>
|
||||||
# to only include purchases of the selected game.
|
# to only include purchases of the selected game.
|
||||||
related_purchase_by_game_url = reverse("related_purchase_by_game")
|
related_purchase_by_game_url = reverse("games:related_purchase_by_game")
|
||||||
self.fields["games"].widget.attrs.update(
|
self.fields["games"].widget.attrs.update(
|
||||||
{
|
{
|
||||||
"hx-trigger": "load, click",
|
"hx-trigger": "load, click",
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
<span class="truncate-container">
|
<span class="truncate-container">
|
||||||
<a class="underline decoration-slate-500 sm:decoration-2"
|
<a class="underline decoration-slate-500 sm:decoration-2"
|
||||||
href="{% url 'view_game' game_id %}">
|
href="{% url 'games:view_game' game_id %}">
|
||||||
{% if slot %}
|
{% if slot %}
|
||||||
{{ slot }}
|
{{ slot }}
|
||||||
{% else %}
|
{% else %}
|
||||||
|
|||||||
@@ -6,7 +6,7 @@
|
|||||||
<div>
|
<div>
|
||||||
<p>Are you sure you want to delete this status change?</p>
|
<p>Are you sure you want to delete this status change?</p>
|
||||||
<c-button color="red" type="submit" size="lg" class="w-full">Delete</c-button>
|
<c-button color="red" type="submit" size="lg" class="w-full">Delete</c-button>
|
||||||
<a href="{% url 'view_game' object.game.id %}" class="">
|
<a href="{% url 'games:view_game' object.game.id %}" class="">
|
||||||
<c-button color="gray" class="w-full">Cancel</c-button>
|
<c-button color="gray" class="w-full">Cancel</c-button>
|
||||||
</a>
|
</a>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@@ -6,7 +6,7 @@
|
|||||||
{% block content %}
|
{% block content %}
|
||||||
<div class="flex-col">
|
<div class="flex-col">
|
||||||
{% if dataset_count >= 1 %}
|
{% if dataset_count >= 1 %}
|
||||||
{% url 'list_sessions_start_session_from_session' last.id as start_session_url %}
|
{% url 'games:list_sessions_start_session_from_session' last.id as start_session_url %}
|
||||||
<div class="mx-auto text-center my-4">
|
<div class="mx-auto text-center my-4">
|
||||||
<a id="last-session-start"
|
<a id="last-session-start"
|
||||||
href="{{ start_session_url }}"
|
href="{{ start_session_url }}"
|
||||||
@@ -36,7 +36,7 @@
|
|||||||
<td class="px-2 sm:px-4 md:px-6 md:py-2 purchase-name relative align-top w-24 h-12 group">
|
<td class="px-2 sm:px-4 md:px-6 md:py-2 purchase-name relative align-top w-24 h-12 group">
|
||||||
<span class="inline-block relative">
|
<span class="inline-block relative">
|
||||||
<a class="underline decoration-slate-500 sm:decoration-2 inline-block truncate max-w-20char group-hover:absolute group-hover:max-w-none group-hover:-top-8 group-hover:-left-6 group-hover:min-w-60 group-hover:px-6 group-hover:py-3.5 group-hover:bg-purple-600 group-hover:rounded-xs group-hover:outline-dashed group-hover:outline-purple-400 group-hover:outline-4 group-hover:decoration-purple-900 group-hover:text-purple-100"
|
<a class="underline decoration-slate-500 sm:decoration-2 inline-block truncate max-w-20char group-hover:absolute group-hover:max-w-none group-hover:-top-8 group-hover:-left-6 group-hover:min-w-60 group-hover:px-6 group-hover:py-3.5 group-hover:bg-purple-600 group-hover:rounded-xs group-hover:outline-dashed group-hover:outline-purple-400 group-hover:outline-4 group-hover:decoration-purple-900 group-hover:text-purple-100"
|
||||||
href="{% url 'view_game' session.game.id %}">
|
href="{% url 'games:view_game' session.game.id %}">
|
||||||
{{ session.game.name }}
|
{{ session.game.name }}
|
||||||
</a>
|
</a>
|
||||||
</span>
|
</span>
|
||||||
@@ -46,7 +46,7 @@
|
|||||||
</td>
|
</td>
|
||||||
<td class="px-2 sm:px-4 md:px-6 md:py-2 font-mono hidden lg:table-cell">
|
<td class="px-2 sm:px-4 md:px-6 md:py-2 font-mono hidden lg:table-cell">
|
||||||
{% if not session.timestamp_end %}
|
{% if not session.timestamp_end %}
|
||||||
{% url 'list_sessions_end_session' session.id as end_session_url %}
|
{% url 'games:list_sessions_end_session' session.id as end_session_url %}
|
||||||
<a href="{{ end_session_url }}"
|
<a href="{{ end_session_url }}"
|
||||||
hx-get="{{ end_session_url }}"
|
hx-get="{{ end_session_url }}"
|
||||||
hx-target="closest tr"
|
hx-target="closest tr"
|
||||||
|
|||||||
+13
-13
@@ -1,7 +1,7 @@
|
|||||||
{% load static %}
|
{% load static %}
|
||||||
<nav class="bg-neutral-primary-soft border-b border-default">
|
<nav class="bg-neutral-primary-soft border-b border-default">
|
||||||
<div class="max-w-(--breakpoint-xl) flex flex-wrap items-center justify-between mx-auto p-4">
|
<div class="max-w-(--breakpoint-xl) flex flex-wrap items-center justify-between mx-auto p-4">
|
||||||
<a href="{% url 'index' %}"
|
<a href="{% url 'games:index' %}"
|
||||||
class="flex items-center space-x-3 rtl:space-x-reverse">
|
class="flex items-center space-x-3 rtl:space-x-reverse">
|
||||||
<img src="{% static 'icons/schedule.png' %}"
|
<img src="{% static 'icons/schedule.png' %}"
|
||||||
height="48"
|
height="48"
|
||||||
@@ -64,23 +64,23 @@
|
|||||||
<ul class="py-2 text-sm text-gray-700 dark:text-gray-400"
|
<ul class="py-2 text-sm text-gray-700 dark:text-gray-400"
|
||||||
aria-labelledby="dropdownLargeButton">
|
aria-labelledby="dropdownLargeButton">
|
||||||
<li>
|
<li>
|
||||||
<a href="{% url 'add_device' %}"
|
<a href="{% url 'games:add_device' %}"
|
||||||
class="block px-4 py-2 hover:bg-gray-100 dark:hover:bg-gray-600 dark:hover:text-white">Device</a>
|
class="block px-4 py-2 hover:bg-gray-100 dark:hover:bg-gray-600 dark:hover:text-white">Device</a>
|
||||||
</li>
|
</li>
|
||||||
<li>
|
<li>
|
||||||
<a href="{% url 'add_game' %}"
|
<a href="{% url 'games:add_game' %}"
|
||||||
class="block px-4 py-2 hover:bg-gray-100 dark:hover:bg-gray-600 dark:hover:text-white">Game</a>
|
class="block px-4 py-2 hover:bg-gray-100 dark:hover:bg-gray-600 dark:hover:text-white">Game</a>
|
||||||
</li>
|
</li>
|
||||||
<li>
|
<li>
|
||||||
<a href="{% url 'add_platform' %}"
|
<a href="{% url 'games:add_platform' %}"
|
||||||
class="block px-4 py-2 hover:bg-gray-100 dark:hover:bg-gray-600 dark:hover:text-white">Platform</a>
|
class="block px-4 py-2 hover:bg-gray-100 dark:hover:bg-gray-600 dark:hover:text-white">Platform</a>
|
||||||
</li>
|
</li>
|
||||||
<li>
|
<li>
|
||||||
<a href="{% url 'add_purchase' %}"
|
<a href="{% url 'games:add_purchase' %}"
|
||||||
class="block px-4 py-2 hover:bg-gray-100 dark:hover:bg-gray-600 dark:hover:text-white">Purchase</a>
|
class="block px-4 py-2 hover:bg-gray-100 dark:hover:bg-gray-600 dark:hover:text-white">Purchase</a>
|
||||||
</li>
|
</li>
|
||||||
<li>
|
<li>
|
||||||
<a href="{% url 'add_session' %}"
|
<a href="{% url 'games:add_session' %}"
|
||||||
class="block px-4 py-2 hover:bg-gray-100 dark:hover:bg-gray-600 dark:hover:text-white">Session</a>
|
class="block px-4 py-2 hover:bg-gray-100 dark:hover:bg-gray-600 dark:hover:text-white">Session</a>
|
||||||
</li>
|
</li>
|
||||||
</ul>
|
</ul>
|
||||||
@@ -105,34 +105,34 @@
|
|||||||
<ul class="py-2 text-sm text-gray-700 dark:text-gray-400"
|
<ul class="py-2 text-sm text-gray-700 dark:text-gray-400"
|
||||||
aria-labelledby="dropdownLargeButton">
|
aria-labelledby="dropdownLargeButton">
|
||||||
<li>
|
<li>
|
||||||
<a href="{% url 'list_devices' %}"
|
<a href="{% url 'games:list_devices' %}"
|
||||||
class="block px-4 py-2 hover:bg-gray-100 dark:hover:bg-gray-600 dark:hover:text-white">Devices</a>
|
class="block px-4 py-2 hover:bg-gray-100 dark:hover:bg-gray-600 dark:hover:text-white">Devices</a>
|
||||||
</li>
|
</li>
|
||||||
<li>
|
<li>
|
||||||
<a href="{% url 'list_games' %}"
|
<a href="{% url 'games:list_games' %}"
|
||||||
class="block px-4 py-2 hover:bg-gray-100 dark:hover:bg-gray-600 dark:hover:text-white">Games</a>
|
class="block px-4 py-2 hover:bg-gray-100 dark:hover:bg-gray-600 dark:hover:text-white">Games</a>
|
||||||
</li>
|
</li>
|
||||||
<li>
|
<li>
|
||||||
<a href="{% url 'list_platforms' %}"
|
<a href="{% url 'games:list_platforms' %}"
|
||||||
class="block px-4 py-2 hover:bg-gray-100 dark:hover:bg-gray-600 dark:hover:text-white">Platforms</a>
|
class="block px-4 py-2 hover:bg-gray-100 dark:hover:bg-gray-600 dark:hover:text-white">Platforms</a>
|
||||||
</li>
|
</li>
|
||||||
<li>
|
<li>
|
||||||
<a href="{% url 'list_playevents' %}"
|
<a href="{% url 'games:list_playevents' %}"
|
||||||
class="block px-4 py-2 hover:bg-gray-100 dark:hover:bg-gray-600 dark:hover:text-white">Play events</a>
|
class="block px-4 py-2 hover:bg-gray-100 dark:hover:bg-gray-600 dark:hover:text-white">Play events</a>
|
||||||
</li>
|
</li>
|
||||||
<li>
|
<li>
|
||||||
<a href="{% url 'list_purchases' %}"
|
<a href="{% url 'games:list_purchases' %}"
|
||||||
class="block px-4 py-2 hover:bg-gray-100 dark:hover:bg-gray-600 dark:hover:text-white">Purchases</a>
|
class="block px-4 py-2 hover:bg-gray-100 dark:hover:bg-gray-600 dark:hover:text-white">Purchases</a>
|
||||||
</li>
|
</li>
|
||||||
<li>
|
<li>
|
||||||
<a href="{% url 'list_sessions' %}"
|
<a href="{% url 'games:list_sessions' %}"
|
||||||
class="block px-4 py-2 hover:bg-gray-100 dark:hover:bg-gray-600 dark:hover:text-white">Sessions</a>
|
class="block px-4 py-2 hover:bg-gray-100 dark:hover:bg-gray-600 dark:hover:text-white">Sessions</a>
|
||||||
</li>
|
</li>
|
||||||
</ul>
|
</ul>
|
||||||
</div>
|
</div>
|
||||||
</li>
|
</li>
|
||||||
<li>
|
<li>
|
||||||
<a href="{% url 'stats_by_year' global_current_year %}"
|
<a href="{% url 'games:stats_by_year' global_current_year %}"
|
||||||
class="block py-2 px-3 text-gray-900 rounded-sm hover:bg-gray-100 md:hover:bg-transparent md:border-0 md:hover:text-blue-700 md:p-0 dark:text-white md:dark:hover:text-blue-500 dark:hover:bg-gray-700 dark:hover:text-white md:dark:hover:bg-transparent">Stats</a>
|
class="block py-2 px-3 text-gray-900 rounded-sm hover:bg-gray-100 md:hover:bg-transparent md:border-0 md:hover:text-blue-700 md:p-0 dark:text-white md:dark:hover:text-blue-500 dark:hover:bg-gray-700 dark:hover:text-white md:dark:hover:bg-transparent">Stats</a>
|
||||||
</li>
|
</li>
|
||||||
<li>
|
<li>
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
<ul class="list-disc list-inside">
|
<ul class="list-disc list-inside">
|
||||||
{% for change in statuschanges %}
|
{% for change in statuschanges %}
|
||||||
<li class="text-slate-500">
|
<li class="text-slate-500">
|
||||||
{% if change.timestamp %}{{ change.timestamp | date:"d/m/Y H:i" }}: Changed{% else %}At some point changed{% endif %} status from <c-gamestatus :status="change.old_status">{{ change.get_old_status_display }}</c-gamestatus> to <c-gamestatus :status="change.new_status">{{ change.get_new_status_display }}</c-gamestatus> (<a href="{% url 'edit_statuschange' change.id %}">Edit</a>, <a href="{% url 'delete_statuschange' change.id %}">Delete</a>)</li>
|
{% if change.timestamp %}{{ change.timestamp | date:"d/m/Y H:i" }}: Changed{% else %}At some point changed{% endif %} status from <c-gamestatus :status="change.old_status">{{ change.get_old_status_display }}</c-gamestatus> to <c-gamestatus :status="change.new_status">{{ change.get_new_status_display }}</c-gamestatus> (<a href="{% url 'games:edit_statuschange' change.id %}">Edit</a>, <a href="{% url 'games:delete_statuschange' change.id %}">Delete</a>)</li>
|
||||||
{% endfor %}
|
{% endfor %}
|
||||||
</ul>
|
</ul>
|
||||||
@@ -5,7 +5,7 @@
|
|||||||
<p class="dark:text-white text-center mt-5">
|
<p class="dark:text-white text-center mt-5">
|
||||||
Are you sure you want to mark this purchase as refunded?
|
Are you sure you want to mark this purchase as refunded?
|
||||||
</p>
|
</p>
|
||||||
<form class="" hx-post="{% url 'refund_purchase' purchase_id %}" hx-target="#purchase-row-{{ purchase_id }}" hx-swap="outerHTML">
|
<form class="" hx-post="{% url 'games:refund_purchase' purchase_id %}" hx-target="#purchase-row-{{ purchase_id }}" hx-swap="outerHTML">
|
||||||
{% csrf_token %}
|
{% csrf_token %}
|
||||||
<div class="mt-5 text-center">
|
<div class="mt-5 text-center">
|
||||||
<label class="flex flex-row items-center justify-center align-baseline gap-5">
|
<label class="flex flex-row items-center justify-center align-baseline gap-5">
|
||||||
|
|||||||
@@ -68,7 +68,7 @@
|
|||||||
>
|
>
|
||||||
<span class="uppercase">Played</span>
|
<span class="uppercase">Played</span>
|
||||||
<div class="inline-flex rounded-md shadow-2xs" role="group" x-data="{ played: {{ game.playevents.count }} }">
|
<div class="inline-flex rounded-md shadow-2xs" role="group" x-data="{ played: {{ game.playevents.count }} }">
|
||||||
<a href="{% url 'add_playevent' %}">
|
<a href="{% url 'games:add_playevent' %}">
|
||||||
<button type="button" class="px-4 py-2 text-sm font-medium text-gray-900 bg-white border border-gray-200 rounded-s-lg hover:bg-gray-100 hover:text-blue-700 focus:z-10 focus:ring-2 focus:ring-blue-700 focus:text-blue-700 dark:bg-gray-800 dark:border-gray-700 dark:text-white dark:hover:text-white dark:hover:bg-gray-700 dark:focus:ring-blue-500 dark:focus:text-white hover:cursor-pointer">
|
<button type="button" class="px-4 py-2 text-sm font-medium text-gray-900 bg-white border border-gray-200 rounded-s-lg hover:bg-gray-100 hover:text-blue-700 focus:z-10 focus:ring-2 focus:ring-blue-700 focus:text-blue-700 dark:bg-gray-800 dark:border-gray-700 dark:text-white dark:hover:text-white dark:hover:bg-gray-700 dark:focus:ring-blue-500 dark:focus:text-white hover:cursor-pointer">
|
||||||
<span x-text="played"></span> times
|
<span x-text="played"></span> times
|
||||||
</button>
|
</button>
|
||||||
@@ -83,7 +83,7 @@
|
|||||||
class=""
|
class=""
|
||||||
>
|
>
|
||||||
<li class="px-4 py-2 dark:hover:text-white dark:hover:bg-gray-700 dark:focus:ring-blue-500 dark:focus:text-white rounded-tr-md">
|
<li class="px-4 py-2 dark:hover:text-white dark:hover:bg-gray-700 dark:focus:ring-blue-500 dark:focus:text-white rounded-tr-md">
|
||||||
<a href="{% url 'add_playevent_for_game' game.id %}">Add playthrough...</a>
|
<a href="{% url 'games:add_playevent_for_game' game.id %}">Add playthrough...</a>
|
||||||
</li>
|
</li>
|
||||||
<li
|
<li
|
||||||
x-on:click="createPlayEvent"
|
x-on:click="createPlayEvent"
|
||||||
@@ -121,13 +121,13 @@
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="inline-flex rounded-md shadow-xs mb-3" role="group">
|
<div class="inline-flex rounded-md shadow-xs mb-3" role="group">
|
||||||
<a href="{% url 'edit_game' game.id %}">
|
<a href="{% url 'games:edit_game' game.id %}">
|
||||||
<button type="button"
|
<button type="button"
|
||||||
class="px-4 py-2 text-sm font-medium text-gray-900 bg-white border border-gray-200 rounded-s-lg hover:bg-gray-100 hover:text-blue-700 focus:z-10 focus:ring-2 focus:ring-blue-700 focus:text-blue-700 dark:bg-gray-800 dark:border-gray-700 dark:text-white dark:hover:text-white dark:hover:bg-gray-700 dark:focus:ring-blue-500 dark:focus:text-white hover:cursor-pointer">
|
class="px-4 py-2 text-sm font-medium text-gray-900 bg-white border border-gray-200 rounded-s-lg hover:bg-gray-100 hover:text-blue-700 focus:z-10 focus:ring-2 focus:ring-blue-700 focus:text-blue-700 dark:bg-gray-800 dark:border-gray-700 dark:text-white dark:hover:text-white dark:hover:bg-gray-700 dark:focus:ring-blue-500 dark:focus:text-white hover:cursor-pointer">
|
||||||
Edit
|
Edit
|
||||||
</button>
|
</button>
|
||||||
</a>
|
</a>
|
||||||
<a href="{% url 'delete_game' game.id %}">
|
<a href="{% url 'games:delete_game' game.id %}">
|
||||||
<button type="button"
|
<button type="button"
|
||||||
class="px-4 py-2 text-sm font-medium text-gray-900 bg-white border border-gray-200 rounded-e-lg hover:bg-red-100 hover:text-blue-700 focus:z-10 focus:ring-2 focus:ring-blue-700 focus:text-blue-700 dark:bg-gray-800 dark:border-gray-700 dark:text-white dark:hover:text-white dark:hover:bg-red-700 dark:focus:ring-blue-500 dark:focus:text-white hover:cursor-pointer">
|
class="px-4 py-2 text-sm font-medium text-gray-900 bg-white border border-gray-200 rounded-e-lg hover:bg-red-100 hover:text-blue-700 focus:z-10 focus:ring-2 focus:ring-blue-700 focus:text-blue-700 dark:bg-gray-800 dark:border-gray-700 dark:text-white dark:hover:text-white dark:hover:bg-red-700 dark:focus:ring-blue-500 dark:focus:text-white hover:cursor-pointer">
|
||||||
Delete
|
Delete
|
||||||
|
|||||||
@@ -15,13 +15,13 @@
|
|||||||
</span>
|
</span>
|
||||||
</span>
|
</span>
|
||||||
<div class="inline-flex rounded-md shadow-xs mb-3" role="group">
|
<div class="inline-flex rounded-md shadow-xs mb-3" role="group">
|
||||||
<a href="{% url 'edit_purchase' purchase.id %}">
|
<a href="{% url 'games:edit_purchase' purchase.id %}">
|
||||||
<button type="button"
|
<button type="button"
|
||||||
class="px-4 py-2 text-sm font-medium text-gray-900 bg-white border border-gray-200 rounded-s-lg hover:bg-gray-100 hover:text-blue-700 focus:z-10 focus:ring-2 focus:ring-blue-700 focus:text-blue-700 dark:bg-gray-800 dark:border-gray-700 dark:text-white dark:hover:text-white dark:hover:bg-gray-700 dark:focus:ring-blue-500 dark:focus:text-white">
|
class="px-4 py-2 text-sm font-medium text-gray-900 bg-white border border-gray-200 rounded-s-lg hover:bg-gray-100 hover:text-blue-700 focus:z-10 focus:ring-2 focus:ring-blue-700 focus:text-blue-700 dark:bg-gray-800 dark:border-gray-700 dark:text-white dark:hover:text-white dark:hover:bg-gray-700 dark:focus:ring-blue-500 dark:focus:text-white">
|
||||||
Edit
|
Edit
|
||||||
</button>
|
</button>
|
||||||
</a>
|
</a>
|
||||||
<a href="{% url 'delete_purchase' purchase.id %}">
|
<a href="{% url 'games:delete_purchase' purchase.id %}">
|
||||||
<button type="button"
|
<button type="button"
|
||||||
class="px-4 py-2 text-sm font-medium text-gray-900 bg-white border border-gray-200 rounded-e-lg hover:bg-red-100 hover:text-blue-700 focus:z-10 focus:ring-2 focus:ring-blue-700 focus:text-blue-700 dark:bg-gray-800 dark:border-gray-700 dark:text-white dark:hover:text-white dark:hover:bg-red-700 dark:focus:ring-blue-500 dark:focus:text-white">
|
class="px-4 py-2 text-sm font-medium text-gray-900 bg-white border border-gray-200 rounded-e-lg hover:bg-red-100 hover:text-blue-700 focus:z-10 focus:ring-2 focus:ring-blue-700 focus:text-blue-700 dark:bg-gray-800 dark:border-gray-700 dark:text-white dark:hover:text-white dark:hover:bg-red-700 dark:focus:ring-blue-500 dark:focus:text-white">
|
||||||
Delete
|
Delete
|
||||||
|
|||||||
@@ -1,5 +1,7 @@
|
|||||||
from django.urls import path
|
from django.urls import path
|
||||||
|
|
||||||
|
app_name = "games"
|
||||||
|
|
||||||
from games.api import api
|
from games.api import api
|
||||||
from games.views import (
|
from games.views import (
|
||||||
device,
|
device,
|
||||||
|
|||||||
@@ -36,7 +36,7 @@ def list_devices(request: HttpRequest) -> HttpResponse:
|
|||||||
else None
|
else None
|
||||||
),
|
),
|
||||||
"data": {
|
"data": {
|
||||||
"header_action": A([], Button([], "Add device"), url_name="add_device"),
|
"header_action": A([], Button([], "Add device"), url_name="games:add_device"),
|
||||||
"columns": [
|
"columns": [
|
||||||
"Name",
|
"Name",
|
||||||
"Type",
|
"Type",
|
||||||
@@ -53,12 +53,12 @@ def list_devices(request: HttpRequest) -> HttpResponse:
|
|||||||
{
|
{
|
||||||
"buttons": [
|
"buttons": [
|
||||||
{
|
{
|
||||||
"href": reverse("edit_device", args=[device.pk]),
|
"href": reverse("games:edit_device", args=[device.pk]),
|
||||||
"slot": Icon("edit"),
|
"slot": Icon("edit"),
|
||||||
"color": "gray",
|
"color": "gray",
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"href": reverse("delete_device", args=[device.pk]),
|
"href": reverse("games:delete_device", args=[device.pk]),
|
||||||
"slot": Icon("delete"),
|
"slot": Icon("delete"),
|
||||||
"color": "red",
|
"color": "red",
|
||||||
},
|
},
|
||||||
@@ -79,7 +79,7 @@ def edit_device(request: HttpRequest, device_id: int = 0) -> HttpResponse:
|
|||||||
form = DeviceForm(request.POST or None, instance=device)
|
form = DeviceForm(request.POST or None, instance=device)
|
||||||
if form.is_valid():
|
if form.is_valid():
|
||||||
form.save()
|
form.save()
|
||||||
return redirect("list_devices")
|
return redirect("games:list_devices")
|
||||||
|
|
||||||
context: dict[str, Any] = {"form": form, "title": "Edit device"}
|
context: dict[str, Any] = {"form": form, "title": "Edit device"}
|
||||||
return render(request, "add.html", context)
|
return render(request, "add.html", context)
|
||||||
@@ -89,7 +89,7 @@ def edit_device(request: HttpRequest, device_id: int = 0) -> HttpResponse:
|
|||||||
def delete_device(request: HttpRequest, device_id: int) -> HttpResponse:
|
def delete_device(request: HttpRequest, device_id: int) -> HttpResponse:
|
||||||
device = get_object_or_404(Device, id=device_id)
|
device = get_object_or_404(Device, id=device_id)
|
||||||
device.delete()
|
device.delete()
|
||||||
return redirect("list_sessions")
|
return redirect("games:list_sessions")
|
||||||
|
|
||||||
|
|
||||||
@login_required
|
@login_required
|
||||||
@@ -98,7 +98,7 @@ def add_device(request: HttpRequest) -> HttpResponse:
|
|||||||
form = DeviceForm(request.POST or None)
|
form = DeviceForm(request.POST or None)
|
||||||
if form.is_valid():
|
if form.is_valid():
|
||||||
form.save()
|
form.save()
|
||||||
return redirect("index")
|
return redirect("games:index")
|
||||||
|
|
||||||
context["form"] = form
|
context["form"] = form
|
||||||
context["title"] = "Add New Device"
|
context["title"] = "Add New Device"
|
||||||
|
|||||||
+14
-14
@@ -89,7 +89,7 @@ def list_games(request: HttpRequest, search_string: str = "") -> HttpResponse:
|
|||||||
)
|
)
|
||||||
]
|
]
|
||||||
),
|
),
|
||||||
A([], Button([], "Add game"), url_name="add_game"),
|
A([], Button([], "Add game"), url_name="games:add_game"),
|
||||||
],
|
],
|
||||||
attributes=[("class", "flex justify-between")],
|
attributes=[("class", "flex justify-between")],
|
||||||
),
|
),
|
||||||
@@ -126,12 +126,12 @@ def list_games(request: HttpRequest, search_string: str = "") -> HttpResponse:
|
|||||||
{
|
{
|
||||||
"buttons": [
|
"buttons": [
|
||||||
{
|
{
|
||||||
"href": reverse("edit_game", args=[game.pk]),
|
"href": reverse("games:edit_game", args=[game.pk]),
|
||||||
"slot": Icon("edit"),
|
"slot": Icon("edit"),
|
||||||
"color": "gray",
|
"color": "gray",
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"href": reverse("delete_game", args=[game.pk]),
|
"href": reverse("games:delete_game", args=[game.pk]),
|
||||||
"slot": Icon("delete"),
|
"slot": Icon("delete"),
|
||||||
"color": "red",
|
"color": "red",
|
||||||
},
|
},
|
||||||
@@ -154,10 +154,10 @@ def add_game(request: HttpRequest) -> HttpResponse:
|
|||||||
game = form.save()
|
game = form.save()
|
||||||
if "submit_and_redirect" in request.POST:
|
if "submit_and_redirect" in request.POST:
|
||||||
return HttpResponseRedirect(
|
return HttpResponseRedirect(
|
||||||
reverse("add_purchase_for_game", kwargs={"game_id": game.id})
|
reverse("games:add_purchase_for_game", kwargs={"game_id": game.id})
|
||||||
)
|
)
|
||||||
else:
|
else:
|
||||||
return redirect("list_games")
|
return redirect("games:list_games")
|
||||||
|
|
||||||
context["form"] = form
|
context["form"] = form
|
||||||
context["title"] = "Add New Game"
|
context["title"] = "Add New Game"
|
||||||
@@ -169,7 +169,7 @@ def add_game(request: HttpRequest) -> HttpResponse:
|
|||||||
def delete_game(request: HttpRequest, game_id: int) -> HttpResponse:
|
def delete_game(request: HttpRequest, game_id: int) -> HttpResponse:
|
||||||
game = get_object_or_404(Game, id=game_id)
|
game = get_object_or_404(Game, id=game_id)
|
||||||
game.delete()
|
game.delete()
|
||||||
return redirect("list_sessions")
|
return redirect("games:list_sessions")
|
||||||
|
|
||||||
|
|
||||||
@login_required
|
@login_required
|
||||||
@@ -180,7 +180,7 @@ def edit_game(request: HttpRequest, game_id: int) -> HttpResponse:
|
|||||||
form = GameForm(request.POST or None, instance=purchase)
|
form = GameForm(request.POST or None, instance=purchase)
|
||||||
if form.is_valid():
|
if form.is_valid():
|
||||||
form.save()
|
form.save()
|
||||||
return redirect("list_sessions")
|
return redirect("games:list_sessions")
|
||||||
context["title"] = "Edit Game"
|
context["title"] = "Edit Game"
|
||||||
context["form"] = form
|
context["form"] = form
|
||||||
return render(request, "add.html", context)
|
return render(request, "add.html", context)
|
||||||
@@ -242,12 +242,12 @@ def view_game(request: HttpRequest, game_id: int) -> HttpResponse:
|
|||||||
{
|
{
|
||||||
"buttons": [
|
"buttons": [
|
||||||
{
|
{
|
||||||
"href": reverse("edit_purchase", args=[purchase.pk]),
|
"href": reverse("games:edit_purchase", args=[purchase.pk]),
|
||||||
"slot": Icon("edit"),
|
"slot": Icon("edit"),
|
||||||
"color": "gray",
|
"color": "gray",
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"href": reverse("delete_purchase", args=[purchase.pk]),
|
"href": reverse("games:delete_purchase", args=[purchase.pk]),
|
||||||
"slot": Icon("delete"),
|
"slot": Icon("delete"),
|
||||||
"color": "red",
|
"color": "red",
|
||||||
},
|
},
|
||||||
@@ -274,7 +274,7 @@ def view_game(request: HttpRequest, game_id: int) -> HttpResponse:
|
|||||||
"header_action": Div(
|
"header_action": Div(
|
||||||
children=[
|
children=[
|
||||||
A(
|
A(
|
||||||
url_name="add_session",
|
url_name="games:add_session",
|
||||||
children=Button(
|
children=Button(
|
||||||
icon=True,
|
icon=True,
|
||||||
size="xs",
|
size="xs",
|
||||||
@@ -283,7 +283,7 @@ def view_game(request: HttpRequest, game_id: int) -> HttpResponse:
|
|||||||
),
|
),
|
||||||
A(
|
A(
|
||||||
href=reverse(
|
href=reverse(
|
||||||
"list_sessions_start_session_from_session",
|
"games:list_sessions_start_session_from_session",
|
||||||
args=[last_session.pk],
|
args=[last_session.pk],
|
||||||
),
|
),
|
||||||
children=Popover(
|
children=Popover(
|
||||||
@@ -317,7 +317,7 @@ def view_game(request: HttpRequest, game_id: int) -> HttpResponse:
|
|||||||
"buttons": [
|
"buttons": [
|
||||||
{
|
{
|
||||||
"href": reverse(
|
"href": reverse(
|
||||||
"list_sessions_end_session", args=[session.pk]
|
"games:list_sessions_end_session", args=[session.pk]
|
||||||
),
|
),
|
||||||
"slot": Icon("end"),
|
"slot": Icon("end"),
|
||||||
"title": "Finish session now",
|
"title": "Finish session now",
|
||||||
@@ -331,12 +331,12 @@ def view_game(request: HttpRequest, game_id: int) -> HttpResponse:
|
|||||||
# in the button group component
|
# in the button group component
|
||||||
else {},
|
else {},
|
||||||
{
|
{
|
||||||
"href": reverse("edit_session", args=[session.pk]),
|
"href": reverse("games:edit_session", args=[session.pk]),
|
||||||
"slot": Icon("edit"),
|
"slot": Icon("edit"),
|
||||||
"color": "gray",
|
"color": "gray",
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"href": reverse("delete_session", args=[session.pk]),
|
"href": reverse("games:delete_session", args=[session.pk]),
|
||||||
"slot": Icon("delete"),
|
"slot": Icon("delete"),
|
||||||
"color": "red",
|
"color": "red",
|
||||||
},
|
},
|
||||||
|
|||||||
@@ -257,9 +257,9 @@ def stats_alltime(request: HttpRequest) -> HttpResponse:
|
|||||||
def stats(request: HttpRequest, year: int = 0) -> HttpResponse:
|
def stats(request: HttpRequest, year: int = 0) -> HttpResponse:
|
||||||
selected_year = request.GET.get("year")
|
selected_year = request.GET.get("year")
|
||||||
if selected_year:
|
if selected_year:
|
||||||
return HttpResponseRedirect(reverse("stats_by_year", args=[selected_year]))
|
return HttpResponseRedirect(reverse("games:stats_by_year", args=[selected_year]))
|
||||||
if year == 0:
|
if year == 0:
|
||||||
return HttpResponseRedirect(reverse("stats_alltime"))
|
return HttpResponseRedirect(reverse("games:stats_alltime"))
|
||||||
this_year_sessions = Session.objects.filter(
|
this_year_sessions = Session.objects.filter(
|
||||||
timestamp_start__year=year
|
timestamp_start__year=year
|
||||||
).prefetch_related("game")
|
).prefetch_related("game")
|
||||||
@@ -512,4 +512,4 @@ def stats(request: HttpRequest, year: int = 0) -> HttpResponse:
|
|||||||
|
|
||||||
@login_required
|
@login_required
|
||||||
def index(request: HttpRequest) -> HttpResponse:
|
def index(request: HttpRequest) -> HttpResponse:
|
||||||
return redirect("list_sessions")
|
return redirect("games:list_sessions")
|
||||||
|
|||||||
@@ -37,7 +37,7 @@ def list_platforms(request: HttpRequest) -> HttpResponse:
|
|||||||
else None
|
else None
|
||||||
),
|
),
|
||||||
"data": {
|
"data": {
|
||||||
"header_action": A([], Button([], "Add platform"), url_name="add_platform"),
|
"header_action": A([], Button([], "Add platform"), url_name="games:add_platform"),
|
||||||
"columns": [
|
"columns": [
|
||||||
"Name",
|
"Name",
|
||||||
"Icon",
|
"Icon",
|
||||||
@@ -57,14 +57,14 @@ def list_platforms(request: HttpRequest) -> HttpResponse:
|
|||||||
"buttons": [
|
"buttons": [
|
||||||
{
|
{
|
||||||
"href": reverse(
|
"href": reverse(
|
||||||
"edit_platform", args=[platform.pk]
|
"games:edit_platform", args=[platform.pk]
|
||||||
),
|
),
|
||||||
"slot": Icon("edit"),
|
"slot": Icon("edit"),
|
||||||
"color": "gray",
|
"color": "gray",
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"href": reverse(
|
"href": reverse(
|
||||||
"delete_platform", args=[platform.pk]
|
"games:delete_platform", args=[platform.pk]
|
||||||
),
|
),
|
||||||
"slot": Icon("delete"),
|
"slot": Icon("delete"),
|
||||||
"color": "red",
|
"color": "red",
|
||||||
@@ -84,7 +84,7 @@ def list_platforms(request: HttpRequest) -> HttpResponse:
|
|||||||
def delete_platform(request: HttpRequest, platform_id: int) -> HttpResponse:
|
def delete_platform(request: HttpRequest, platform_id: int) -> HttpResponse:
|
||||||
platform = get_object_or_404(Platform, id=platform_id)
|
platform = get_object_or_404(Platform, id=platform_id)
|
||||||
platform.delete()
|
platform.delete()
|
||||||
return redirect("list_platforms")
|
return redirect("games:list_platforms")
|
||||||
|
|
||||||
|
|
||||||
@login_required
|
@login_required
|
||||||
@@ -95,7 +95,7 @@ def edit_platform(request: HttpRequest, platform_id: int) -> HttpResponse:
|
|||||||
form = PlatformForm(request.POST or None, instance=platform)
|
form = PlatformForm(request.POST or None, instance=platform)
|
||||||
if form.is_valid():
|
if form.is_valid():
|
||||||
form.save()
|
form.save()
|
||||||
return redirect("list_platforms")
|
return redirect("games:list_platforms")
|
||||||
context["title"] = "Edit Platform"
|
context["title"] = "Edit Platform"
|
||||||
context["form"] = form
|
context["form"] = form
|
||||||
return render(request, "add.html", context)
|
return render(request, "add.html", context)
|
||||||
@@ -107,7 +107,7 @@ def add_platform(request: HttpRequest) -> HttpResponse:
|
|||||||
form = PlatformForm(request.POST or None)
|
form = PlatformForm(request.POST or None)
|
||||||
if form.is_valid():
|
if form.is_valid():
|
||||||
form.save()
|
form.save()
|
||||||
return redirect("index")
|
return redirect("games:index")
|
||||||
|
|
||||||
context["form"] = form
|
context["form"] = form
|
||||||
context["title"] = "Add New Platform"
|
context["title"] = "Add New Platform"
|
||||||
|
|||||||
@@ -58,12 +58,12 @@ def create_playevent_tabledata(
|
|||||||
{
|
{
|
||||||
"buttons": [
|
"buttons": [
|
||||||
{
|
{
|
||||||
"href": reverse("edit_playevent", args=[playevent.pk]),
|
"href": reverse("games:edit_playevent", args=[playevent.pk]),
|
||||||
"slot": Icon("edit"),
|
"slot": Icon("edit"),
|
||||||
"color": "gray",
|
"color": "gray",
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"href": reverse("delete_playevent", args=[playevent.pk]),
|
"href": reverse("games:delete_playevent", args=[playevent.pk]),
|
||||||
"slot": Icon("delete"),
|
"slot": Icon("delete"),
|
||||||
"color": "red",
|
"color": "red",
|
||||||
},
|
},
|
||||||
@@ -78,7 +78,7 @@ def create_playevent_tabledata(
|
|||||||
for row in row_list
|
for row in row_list
|
||||||
]
|
]
|
||||||
return {
|
return {
|
||||||
"header_action": A([], Button([], "Add play event"), url_name="add_playevent"),
|
"header_action": A([], Button([], "Add play event"), url_name="games:add_playevent"),
|
||||||
"columns": list(filtered_column_list),
|
"columns": list(filtered_column_list),
|
||||||
"rows": filtered_row_list,
|
"rows": filtered_row_list,
|
||||||
}
|
}
|
||||||
@@ -194,7 +194,7 @@ def add_playevent(request: HttpRequest, game_id: int = 0) -> HttpResponse:
|
|||||||
if not game_id:
|
if not game_id:
|
||||||
# coming from add_playevent url path
|
# coming from add_playevent url path
|
||||||
game_id = form.instance.game.id
|
game_id = form.instance.game.id
|
||||||
return HttpResponseRedirect(reverse("view_game", args=[game_id]))
|
return HttpResponseRedirect(reverse("games:view_game", args=[game_id]))
|
||||||
|
|
||||||
return render(request, "add.html", {"form": form, "title": "Add new playthrough"})
|
return render(request, "add.html", {"form": form, "title": "Add new playthrough"})
|
||||||
|
|
||||||
@@ -205,7 +205,7 @@ def edit_playevent(request: HttpRequest, playevent_id: int) -> HttpResponse:
|
|||||||
form = PlayEventForm(request.POST or None, instance=playevent)
|
form = PlayEventForm(request.POST or None, instance=playevent)
|
||||||
if form.is_valid():
|
if form.is_valid():
|
||||||
form.save()
|
form.save()
|
||||||
return HttpResponseRedirect(reverse("view_game", args=[playevent.game.id]))
|
return HttpResponseRedirect(reverse("games:view_game", args=[playevent.game.id]))
|
||||||
|
|
||||||
context = {
|
context = {
|
||||||
"form": form,
|
"form": form,
|
||||||
|
|||||||
+10
-10
@@ -30,7 +30,7 @@ def _render_purchase_buttons(purchase_id, is_refunded):
|
|||||||
{
|
{
|
||||||
"href": "#",
|
"href": "#",
|
||||||
"hx_get": reverse(
|
"hx_get": reverse(
|
||||||
"refund_purchase_confirmation",
|
"games:refund_purchase_confirmation",
|
||||||
args=[purchase_id],
|
args=[purchase_id],
|
||||||
),
|
),
|
||||||
"hx_target": "#global-modal-container",
|
"hx_target": "#global-modal-container",
|
||||||
@@ -40,13 +40,13 @@ def _render_purchase_buttons(purchase_id, is_refunded):
|
|||||||
if not is_refunded
|
if not is_refunded
|
||||||
else {},
|
else {},
|
||||||
{
|
{
|
||||||
"href": reverse("edit_purchase", args=[purchase_id]),
|
"href": reverse("games:edit_purchase", args=[purchase_id]),
|
||||||
"slot": Icon("edit"),
|
"slot": Icon("edit"),
|
||||||
"title": "Edit",
|
"title": "Edit",
|
||||||
"color": "gray",
|
"color": "gray",
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"href": reverse("delete_purchase", args=[purchase_id]),
|
"href": reverse("games:delete_purchase", args=[purchase_id]),
|
||||||
"slot": Icon("delete"),
|
"slot": Icon("delete"),
|
||||||
"title": "Delete",
|
"title": "Delete",
|
||||||
"color": "red",
|
"color": "red",
|
||||||
@@ -100,7 +100,7 @@ def list_purchases(request: HttpRequest) -> HttpResponse:
|
|||||||
else None
|
else None
|
||||||
),
|
),
|
||||||
"data": {
|
"data": {
|
||||||
"header_action": A([], Button([], "Add purchase"), url_name="add_purchase"),
|
"header_action": A([], Button([], "Add purchase"), url_name="games:add_purchase"),
|
||||||
"columns": [
|
"columns": [
|
||||||
"Name",
|
"Name",
|
||||||
"Type",
|
"Type",
|
||||||
@@ -129,12 +129,12 @@ def add_purchase(request: HttpRequest, game_id: int = 0) -> HttpResponse:
|
|||||||
if "submit_and_redirect" in request.POST:
|
if "submit_and_redirect" in request.POST:
|
||||||
return HttpResponseRedirect(
|
return HttpResponseRedirect(
|
||||||
reverse(
|
reverse(
|
||||||
"add_session_for_game",
|
"games:add_session_for_game",
|
||||||
kwargs={"game_id": purchase.first_game.id},
|
kwargs={"game_id": purchase.first_game.id},
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
else:
|
else:
|
||||||
return redirect("list_purchases")
|
return redirect("games:list_purchases")
|
||||||
else:
|
else:
|
||||||
if game_id:
|
if game_id:
|
||||||
game = Game.objects.get(id=game_id)
|
game = Game.objects.get(id=game_id)
|
||||||
@@ -162,7 +162,7 @@ def edit_purchase(request: HttpRequest, purchase_id: int) -> HttpResponse:
|
|||||||
form = PurchaseForm(request.POST or None, instance=purchase)
|
form = PurchaseForm(request.POST or None, instance=purchase)
|
||||||
if form.is_valid():
|
if form.is_valid():
|
||||||
form.save()
|
form.save()
|
||||||
return redirect("list_sessions")
|
return redirect("games:list_sessions")
|
||||||
context["title"] = "Edit Purchase"
|
context["title"] = "Edit Purchase"
|
||||||
context["form"] = form
|
context["form"] = form
|
||||||
context["purchase_id"] = str(purchase_id)
|
context["purchase_id"] = str(purchase_id)
|
||||||
@@ -174,7 +174,7 @@ def edit_purchase(request: HttpRequest, purchase_id: int) -> HttpResponse:
|
|||||||
def delete_purchase(request: HttpRequest, purchase_id: int) -> HttpResponse:
|
def delete_purchase(request: HttpRequest, purchase_id: int) -> HttpResponse:
|
||||||
purchase = get_object_or_404(Purchase, id=purchase_id)
|
purchase = get_object_or_404(Purchase, id=purchase_id)
|
||||||
purchase.delete()
|
purchase.delete()
|
||||||
return redirect("list_purchases")
|
return redirect("games:list_purchases")
|
||||||
|
|
||||||
|
|
||||||
@login_required
|
@login_required
|
||||||
@@ -192,7 +192,7 @@ def drop_purchase(request: HttpRequest, purchase_id: int) -> HttpResponse:
|
|||||||
purchase = get_object_or_404(Purchase, id=purchase_id)
|
purchase = get_object_or_404(Purchase, id=purchase_id)
|
||||||
purchase.date_dropped = timezone.now()
|
purchase.date_dropped = timezone.now()
|
||||||
purchase.save()
|
purchase.save()
|
||||||
return redirect("list_purchases")
|
return redirect("games:list_purchases")
|
||||||
|
|
||||||
|
|
||||||
@login_required
|
@login_required
|
||||||
@@ -235,7 +235,7 @@ def finish_purchase(request: HttpRequest, purchase_id: int) -> HttpResponse:
|
|||||||
purchase = get_object_or_404(Purchase, id=purchase_id)
|
purchase = get_object_or_404(Purchase, id=purchase_id)
|
||||||
purchase.date_finished = timezone.now()
|
purchase.date_finished = timezone.now()
|
||||||
purchase.save()
|
purchase.save()
|
||||||
return redirect("list_purchases")
|
return redirect("games:list_purchases")
|
||||||
|
|
||||||
|
|
||||||
def related_purchase_by_game(request: HttpRequest) -> HttpResponse:
|
def related_purchase_by_game(request: HttpRequest) -> HttpResponse:
|
||||||
|
|||||||
+11
-11
@@ -81,7 +81,7 @@ def list_sessions(request: HttpRequest, search_string: str = "") -> HttpResponse
|
|||||||
Div(
|
Div(
|
||||||
children=[
|
children=[
|
||||||
A(
|
A(
|
||||||
url_name="add_session",
|
url_name="games:add_session",
|
||||||
children=Button(
|
children=Button(
|
||||||
icon=True,
|
icon=True,
|
||||||
size="xs",
|
size="xs",
|
||||||
@@ -90,7 +90,7 @@ def list_sessions(request: HttpRequest, search_string: str = "") -> HttpResponse
|
|||||||
),
|
),
|
||||||
A(
|
A(
|
||||||
href=reverse(
|
href=reverse(
|
||||||
"list_sessions_start_session_from_session",
|
"games:list_sessions_start_session_from_session",
|
||||||
args=[last_session.pk],
|
args=[last_session.pk],
|
||||||
),
|
),
|
||||||
children=Popover(
|
children=Popover(
|
||||||
@@ -150,7 +150,7 @@ def list_sessions(request: HttpRequest, search_string: str = "") -> HttpResponse
|
|||||||
"buttons": [
|
"buttons": [
|
||||||
{
|
{
|
||||||
"href": reverse(
|
"href": reverse(
|
||||||
"list_sessions_end_session", args=[session.pk]
|
"games:list_sessions_end_session", args=[session.pk]
|
||||||
),
|
),
|
||||||
"slot": Icon("end"),
|
"slot": Icon("end"),
|
||||||
"title": "Finish session now",
|
"title": "Finish session now",
|
||||||
@@ -164,7 +164,7 @@ def list_sessions(request: HttpRequest, search_string: str = "") -> HttpResponse
|
|||||||
# in the button group component
|
# in the button group component
|
||||||
else {},
|
else {},
|
||||||
{
|
{
|
||||||
"href": reverse("edit_session", args=[session.pk]),
|
"href": reverse("games:edit_session", args=[session.pk]),
|
||||||
"slot": Icon("edit"),
|
"slot": Icon("edit"),
|
||||||
"title": "Edit",
|
"title": "Edit",
|
||||||
# "color": "gray",
|
# "color": "gray",
|
||||||
@@ -172,7 +172,7 @@ def list_sessions(request: HttpRequest, search_string: str = "") -> HttpResponse
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
"href": reverse(
|
"href": reverse(
|
||||||
"delete_session", args=[session.pk]
|
"games:delete_session", args=[session.pk]
|
||||||
),
|
),
|
||||||
"slot": Icon("delete"),
|
"slot": Icon("delete"),
|
||||||
"title": "Delete",
|
"title": "Delete",
|
||||||
@@ -209,7 +209,7 @@ def add_session(request: HttpRequest, game_id: int = 0) -> HttpResponse:
|
|||||||
form = SessionForm(request.POST or None, initial=initial)
|
form = SessionForm(request.POST or None, initial=initial)
|
||||||
if form.is_valid():
|
if form.is_valid():
|
||||||
form.save()
|
form.save()
|
||||||
return redirect("list_sessions")
|
return redirect("games:list_sessions")
|
||||||
else:
|
else:
|
||||||
if game_id:
|
if game_id:
|
||||||
game = Game.objects.get(id=game_id)
|
game = Game.objects.get(id=game_id)
|
||||||
@@ -236,7 +236,7 @@ def edit_session(request: HttpRequest, session_id: int) -> HttpResponse:
|
|||||||
form = SessionForm(request.POST or None, instance=session)
|
form = SessionForm(request.POST or None, instance=session)
|
||||||
if form.is_valid():
|
if form.is_valid():
|
||||||
form.save()
|
form.save()
|
||||||
return redirect("list_sessions")
|
return redirect("games:list_sessions")
|
||||||
context["title"] = "Edit Session"
|
context["title"] = "Edit Session"
|
||||||
context["script_name"] = "add_session.js"
|
context["script_name"] = "add_session.js"
|
||||||
context["form"] = form
|
context["form"] = form
|
||||||
@@ -265,7 +265,7 @@ def new_session_from_existing_session(
|
|||||||
"session_count": int(request.GET.get("session_count", 0)) + 1,
|
"session_count": int(request.GET.get("session_count", 0)) + 1,
|
||||||
}
|
}
|
||||||
return render(request, template, context)
|
return render(request, template, context)
|
||||||
return redirect("list_sessions")
|
return redirect("games:list_sessions")
|
||||||
|
|
||||||
|
|
||||||
@login_required
|
@login_required
|
||||||
@@ -281,18 +281,18 @@ def end_session(
|
|||||||
"session_count": request.GET.get("session_count", 0),
|
"session_count": request.GET.get("session_count", 0),
|
||||||
}
|
}
|
||||||
return render(request, template, context)
|
return render(request, template, context)
|
||||||
return redirect("list_sessions")
|
return redirect("games:list_sessions")
|
||||||
|
|
||||||
|
|
||||||
@login_required
|
@login_required
|
||||||
def delete_session(request: HttpRequest, session_id: int = 0) -> HttpResponse:
|
def delete_session(request: HttpRequest, session_id: int = 0) -> HttpResponse:
|
||||||
session = get_object_or_404(Session, id=session_id)
|
session = get_object_or_404(Session, id=session_id)
|
||||||
session.delete()
|
session.delete()
|
||||||
return redirect("list_sessions")
|
return redirect("games:list_sessions")
|
||||||
|
|
||||||
|
|
||||||
@login_required
|
@login_required
|
||||||
def delete_session(request: HttpRequest, session_id: int = 0) -> HttpResponse:
|
def delete_session(request: HttpRequest, session_id: int = 0) -> HttpResponse:
|
||||||
session = get_object_or_404(Session, id=session_id)
|
session = get_object_or_404(Session, id=session_id)
|
||||||
session.delete()
|
session.delete()
|
||||||
return redirect("list_sessions")
|
return redirect("games:list_sessions")
|
||||||
|
|||||||
@@ -17,7 +17,7 @@ class EditStatusChangeView(LoginRequiredMixin, UpdateView):
|
|||||||
return get_object_or_404(GameStatusChange, id=self.kwargs["statuschange_id"])
|
return get_object_or_404(GameStatusChange, id=self.kwargs["statuschange_id"])
|
||||||
|
|
||||||
def get_success_url(self):
|
def get_success_url(self):
|
||||||
return reverse_lazy("list_platforms")
|
return reverse_lazy("games:list_platforms")
|
||||||
|
|
||||||
def get_context_data(self, **kwargs):
|
def get_context_data(self, **kwargs):
|
||||||
context = super().get_context_data(**kwargs)
|
context = super().get_context_data(**kwargs)
|
||||||
@@ -31,7 +31,7 @@ class AddStatusChangeView(LoginRequiredMixin, CreateView):
|
|||||||
template_name = "add.html"
|
template_name = "add.html"
|
||||||
|
|
||||||
def get_success_url(self):
|
def get_success_url(self):
|
||||||
return reverse_lazy("view_game", kwargs={"pk": self.object.game.id})
|
return reverse_lazy("games:view_game", kwargs={"pk": self.object.game.id})
|
||||||
|
|
||||||
def get_context_data(self, **kwargs):
|
def get_context_data(self, **kwargs):
|
||||||
context = super().get_context_data(**kwargs)
|
context = super().get_context_data(**kwargs)
|
||||||
@@ -54,4 +54,4 @@ class GameStatusChangeDeleteView(LoginRequiredMixin, DeleteView):
|
|||||||
template_name = "gamestatuschange_confirm_delete.html"
|
template_name = "gamestatuschange_confirm_delete.html"
|
||||||
|
|
||||||
def get_success_url(self):
|
def get_success_url(self):
|
||||||
return reverse_lazy("view_game", kwargs={"game_id": self.object.game.id})
|
return reverse_lazy("games:view_game", kwargs={"game_id": self.object.game.id})
|
||||||
|
|||||||
Reference in New Issue
Block a user