Apply djlint
This commit is contained in:
parent
71ede4e4dd
commit
63bb8e5fa6
|
@ -1,25 +1,24 @@
|
||||||
{% extends "base.html" %}
|
{% extends "base.html" %}
|
||||||
{% load static %}
|
{% load static %}
|
||||||
|
{% block title %}
|
||||||
{% block title %}{{ title }}{% endblock title %}
|
{{ title }}
|
||||||
|
{% endblock title %}
|
||||||
{% block content %}
|
{% block content %}
|
||||||
<form method="post" enctype="multipart/form-data">
|
<form method="post" enctype="multipart/form-data">
|
||||||
<table class="mx-auto">
|
<table class="mx-auto">
|
||||||
{% csrf_token %}
|
{% csrf_token %}
|
||||||
|
|
||||||
{{ form.as_table }}
|
{{ form.as_table }}
|
||||||
<tr>
|
<tr>
|
||||||
<td></td>
|
<td></td>
|
||||||
<td><input type="submit" value="Submit"/></td>
|
<td>
|
||||||
|
<input type="submit" value="Submit" />
|
||||||
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
</table>
|
</table>
|
||||||
</form>
|
</form>
|
||||||
{% endblock content %}
|
{% endblock content %}
|
||||||
|
|
||||||
{% block scripts %}
|
{% block scripts %}
|
||||||
{% if script_name %}
|
{% if script_name %}
|
||||||
<script type="module" src="{% static 'js/'|add:script_name %}"></script>
|
<script type="module" src="{% static 'js/'|add:script_name %}"></script>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
{% endblock scripts %}
|
{% endblock scripts %}
|
||||||
|
|
|
@ -1,29 +1,32 @@
|
||||||
{% extends "base.html" %}
|
{% extends "base.html" %}
|
||||||
{% load static %}
|
{% load static %}
|
||||||
|
{% block title %}
|
||||||
{% block title %}{{ title }}{% endblock title %}
|
{{ title }}
|
||||||
|
{% endblock title %}
|
||||||
{% block content %}
|
{% block content %}
|
||||||
<form method="post" enctype="multipart/form-data">
|
<form method="post" enctype="multipart/form-data">
|
||||||
<table class="mx-auto">
|
<table class="mx-auto">
|
||||||
{% csrf_token %}
|
{% csrf_token %}
|
||||||
|
|
||||||
{{ form.as_table }}
|
{{ form.as_table }}
|
||||||
<tr>
|
<tr>
|
||||||
<td></td>
|
<td></td>
|
||||||
<td><input type="submit" name="submit" value="Submit"/></td>
|
<td>
|
||||||
|
<input type="submit" name="submit" value="Submit" />
|
||||||
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<td></td>
|
<td></td>
|
||||||
<td><input type="submit" name="submit_and_redirect" value="Submit & Create Purchase"/></td>
|
<td>
|
||||||
|
<input type="submit"
|
||||||
|
name="submit_and_redirect"
|
||||||
|
value="Submit & Create Purchase" />
|
||||||
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
</table>
|
</table>
|
||||||
</form>
|
</form>
|
||||||
{% endblock content %}
|
{% endblock content %}
|
||||||
|
|
||||||
{% block scripts %}
|
{% block scripts %}
|
||||||
{% if script_name %}
|
{% if script_name %}
|
||||||
<script type="module" src="{% static 'js/'|add:script_name %}"></script>
|
<script type="module" src="{% static 'js/'|add:script_name %}"></script>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
{% endblock scripts %}
|
{% endblock scripts %}
|
||||||
|
|
|
@ -1,29 +1,32 @@
|
||||||
{% extends "base.html" %}
|
{% extends "base.html" %}
|
||||||
{% load static %}
|
{% load static %}
|
||||||
|
{% block title %}
|
||||||
{% block title %}{{ title }}{% endblock title %}
|
{{ title }}
|
||||||
|
{% endblock title %}
|
||||||
{% block content %}
|
{% block content %}
|
||||||
<form method="post" enctype="multipart/form-data">
|
<form method="post" enctype="multipart/form-data">
|
||||||
<table class="mx-auto">
|
<table class="mx-auto">
|
||||||
{% csrf_token %}
|
{% csrf_token %}
|
||||||
|
|
||||||
{{ form.as_table }}
|
{{ form.as_table }}
|
||||||
<tr>
|
<tr>
|
||||||
<td></td>
|
<td></td>
|
||||||
<td><input type="submit" name="submit" value="Submit"/></td>
|
<td>
|
||||||
|
<input type="submit" name="submit" value="Submit" />
|
||||||
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<td></td>
|
<td></td>
|
||||||
<td><input type="submit" name="submit_and_redirect" value="Submit & Create Edition"/></td>
|
<td>
|
||||||
|
<input type="submit"
|
||||||
|
name="submit_and_redirect"
|
||||||
|
value="Submit & Create Edition" />
|
||||||
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
</table>
|
</table>
|
||||||
</form>
|
</form>
|
||||||
{% endblock content %}
|
{% endblock content %}
|
||||||
|
|
||||||
{% block scripts %}
|
{% block scripts %}
|
||||||
{% if script_name %}
|
{% if script_name %}
|
||||||
<script type="module" src="{% static 'js/'|add:script_name %}"></script>
|
<script type="module" src="{% static 'js/'|add:script_name %}"></script>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
{% endblock scripts %}
|
{% endblock scripts %}
|
||||||
|
|
|
@ -1,29 +1,32 @@
|
||||||
{% extends "base.html" %}
|
{% extends "base.html" %}
|
||||||
{% load static %}
|
{% load static %}
|
||||||
|
{% block title %}
|
||||||
{% block title %}{{ title }}{% endblock title %}
|
{{ title }}
|
||||||
|
{% endblock title %}
|
||||||
{% block content %}
|
{% block content %}
|
||||||
<form method="post" enctype="multipart/form-data">
|
<form method="post" enctype="multipart/form-data">
|
||||||
<table class="mx-auto">
|
<table class="mx-auto">
|
||||||
{% csrf_token %}
|
{% csrf_token %}
|
||||||
|
|
||||||
{{ form.as_table }}
|
{{ form.as_table }}
|
||||||
<tr>
|
<tr>
|
||||||
<td></td>
|
<td></td>
|
||||||
<td><input type="submit" name="submit" value="Submit"/></td>
|
<td>
|
||||||
|
<input type="submit" name="submit" value="Submit" />
|
||||||
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<td></td>
|
<td></td>
|
||||||
<td><input type="submit" name="submit_and_redirect" value="Submit & Create Session"/></td>
|
<td>
|
||||||
|
<input type="submit"
|
||||||
|
name="submit_and_redirect"
|
||||||
|
value="Submit & Create Session" />
|
||||||
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
</table>
|
</table>
|
||||||
</form>
|
</form>
|
||||||
{% endblock content %}
|
{% endblock content %}
|
||||||
|
|
||||||
{% block scripts %}
|
{% block scripts %}
|
||||||
{% if script_name %}
|
{% if script_name %}
|
||||||
<script type="module" src="{% static 'js/'|add:script_name %}"></script>
|
<script type="module" src="{% static 'js/'|add:script_name %}"></script>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
{% endblock scripts %}
|
{% endblock scripts %}
|
||||||
|
|
|
@ -1,12 +1,11 @@
|
||||||
{% extends "base.html" %}
|
{% extends "base.html" %}
|
||||||
|
{% block title %}
|
||||||
{% block title %}{{ title }}{% endblock title %}
|
{{ title }}
|
||||||
|
{% endblock title %}
|
||||||
{% block content %}
|
{% block content %}
|
||||||
<form method="post" enctype="multipart/form-data">
|
<form method="post" enctype="multipart/form-data">
|
||||||
<table class="mx-auto">
|
<table class="mx-auto">
|
||||||
{% csrf_token %}
|
{% csrf_token %}
|
||||||
|
|
||||||
{% for field in form %}
|
{% for field in form %}
|
||||||
<tr>
|
<tr>
|
||||||
<th>{{ field.label_tag }}</th>
|
<th>{{ field.label_tag }}</th>
|
||||||
|
@ -19,7 +18,9 @@
|
||||||
<td>
|
<td>
|
||||||
<div class="basic-button-container">
|
<div class="basic-button-container">
|
||||||
<button class="basic-button" data-target="{{ field.name }}" data-type="now">Set to now</button>
|
<button class="basic-button" data-target="{{ field.name }}" data-type="now">Set to now</button>
|
||||||
<button class="basic-button" data-target="{{field.name}}" data-type="toggle">Toggle text</button>
|
<button class="basic-button"
|
||||||
|
data-target="{{ field.name }}"
|
||||||
|
data-type="toggle">Toggle text</button>
|
||||||
<button class="basic-button" data-target="{{ field.name }}" data-type="copy">Copy</button>
|
<button class="basic-button" data-target="{{ field.name }}" data-type="copy">Copy</button>
|
||||||
</div>
|
</div>
|
||||||
</td>
|
</td>
|
||||||
|
@ -28,7 +29,9 @@
|
||||||
{% endfor %}
|
{% endfor %}
|
||||||
<tr>
|
<tr>
|
||||||
<td></td>
|
<td></td>
|
||||||
<td><input type="submit" value="Submit"/></td>
|
<td>
|
||||||
|
<input type="submit" value="Submit" />
|
||||||
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
</table>
|
</table>
|
||||||
</form>
|
</form>
|
||||||
|
|
|
@ -1,72 +1,101 @@
|
||||||
<!doctype html>
|
<!DOCTYPE html>
|
||||||
<html lang="en">
|
<html lang="en">
|
||||||
|
|
||||||
{% load static %}
|
{% load static %}
|
||||||
|
|
||||||
<head>
|
<head>
|
||||||
<meta charset="utf-8" />
|
<meta charset="utf-8" />
|
||||||
<meta name="description" content="Self-hosted time-tracker." />
|
<meta name="description" content="Self-hosted time-tracker." />
|
||||||
<meta name="keywords" content="time, tracking, video games, self-hosted" />
|
<meta name="keywords" content="time, tracking, video games, self-hosted" />
|
||||||
<meta name="viewport" content="width=device-width, initial-scale=1" />
|
<meta name="viewport" content="width=device-width, initial-scale=1" />
|
||||||
<title>Timetracker - {% block title %}Untitled{% endblock title %}</title>
|
<title>Timetracker -
|
||||||
|
{% block title %}
|
||||||
|
Untitled
|
||||||
|
{% endblock title %}
|
||||||
|
</title>
|
||||||
<script src="{% static 'js/htmx.min.js' %}"></script>
|
<script src="{% static 'js/htmx.min.js' %}"></script>
|
||||||
<link rel="stylesheet" href="{% static 'base.css' %}" />
|
<link rel="stylesheet" href="{% static 'base.css' %}" />
|
||||||
</head>
|
</head>
|
||||||
|
|
||||||
<body class="dark" hx-indicator="#indicator" hx-boost="true">
|
<body class="dark" hx-indicator="#indicator" hx-boost="true">
|
||||||
<img id="indicator" src="{% static 'icons/loading.png' %}" class="absolute right-3 top-3 animate-spin htmx-indicator" />
|
<img id="indicator"
|
||||||
|
src="{% static 'icons/loading.png' %}"
|
||||||
|
class="absolute right-3 top-3 animate-spin htmx-indicator" />
|
||||||
<div class="dark:bg-gray-800 min-h-screen">
|
<div class="dark:bg-gray-800 min-h-screen">
|
||||||
<nav class="mb-4 bg-white dark:bg-gray-900 border-gray-200 rounded">
|
<nav class="mb-4 bg-white dark:bg-gray-900 border-gray-200 rounded">
|
||||||
<div class="container flex flex-wrap items-center justify-between mx-auto">
|
<div class="container flex flex-wrap items-center justify-between mx-auto">
|
||||||
<a href="{% url 'list_sessions_recent' %}" class="flex items-center">
|
<a href="{% url 'list_sessions_recent' %}" class="flex items-center">
|
||||||
<span class="text-4xl"><img src="{% static 'icons/schedule.png' %}" width="48" class="mr-4" /></span>
|
<span class="text-4xl">
|
||||||
|
<img src="{% static 'icons/schedule.png' %}" width="48" class="mr-4" />
|
||||||
|
</span>
|
||||||
<span class="self-center text-xl font-semibold whitespace-nowrap text-white">Timetracker</span>
|
<span class="self-center text-xl font-semibold whitespace-nowrap text-white">Timetracker</span>
|
||||||
</a>
|
</a>
|
||||||
<div class="w-full md:block md:w-auto">
|
<div class="w-full md:block md:w-auto">
|
||||||
<ul
|
<ul class="flex flex-col md:flex-row p-4 mt-4 dark:text-white">
|
||||||
class="flex flex-col md:flex-row p-4 mt-4 dark:text-white">
|
|
||||||
<li class="relative group">
|
<li class="relative group">
|
||||||
<a class="block py-2 pl-3 pr-4 hover:underline" href="{% url 'add_game' %}">New</a>
|
<a class="block py-2 pl-3 pr-4 hover:underline"
|
||||||
|
href="{% url 'add_game' %}">New</a>
|
||||||
<ul class="absolute hidden text-gray-700 pt-1 group-hover:block w-auto whitespace-nowrap">
|
<ul class="absolute hidden text-gray-700 pt-1 group-hover:block w-auto whitespace-nowrap">
|
||||||
{% if purchase_available %}
|
{% if purchase_available %}
|
||||||
<li><a class="bg-gray-200 hover:bg-gray-400 py-2 px-4 block whitespace-no-wrap" href="{% url 'add_device' %}">Device</a></li>
|
<li>
|
||||||
|
<a class="bg-gray-200 hover:bg-gray-400 py-2 px-4 block whitespace-no-wrap"
|
||||||
|
href="{% url 'add_device' %}">Device</a>
|
||||||
|
</li>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
<li><a class="bg-gray-200 hover:bg-gray-400 py-2 px-4 block whitespace-no-wrap" href="{% url 'add_game' %}">Game</a></li>
|
<li>
|
||||||
|
<a class="bg-gray-200 hover:bg-gray-400 py-2 px-4 block whitespace-no-wrap"
|
||||||
|
href="{% url 'add_game' %}">Game</a>
|
||||||
|
</li>
|
||||||
{% if game_available and platform_available %}
|
{% if game_available and platform_available %}
|
||||||
<li><a class="bg-gray-200 hover:bg-gray-400 py-2 px-4 block whitespace-no-wrap" href="{% url 'add_edition' %}">Edition</a></li>
|
<li>
|
||||||
|
<a class="bg-gray-200 hover:bg-gray-400 py-2 px-4 block whitespace-no-wrap"
|
||||||
|
href="{% url 'add_edition' %}">Edition</a>
|
||||||
|
</li>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
<li><a class="bg-gray-200 hover:bg-gray-400 py-2 px-4 block whitespace-no-wrap" href="{% url 'add_platform' %}">Platform</a></li>
|
<li>
|
||||||
|
<a class="bg-gray-200 hover:bg-gray-400 py-2 px-4 block whitespace-no-wrap"
|
||||||
|
href="{% url 'add_platform' %}">Platform</a>
|
||||||
|
</li>
|
||||||
{% if edition_available %}
|
{% if edition_available %}
|
||||||
<li><a class="bg-gray-200 hover:bg-gray-400 py-2 px-4 block whitespace-no-wrap" href="{% url 'add_purchase' %}">Purchase</a></li>
|
<li>
|
||||||
|
<a class="bg-gray-200 hover:bg-gray-400 py-2 px-4 block whitespace-no-wrap"
|
||||||
|
href="{% url 'add_purchase' %}">Purchase</a>
|
||||||
|
</li>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
{% if purchase_available %}
|
{% if purchase_available %}
|
||||||
<li><a class="bg-gray-200 hover:bg-gray-400 py-2 px-4 block whitespace-no-wrap" href="{% url 'add_session' %}">Session</a></li>
|
<li>
|
||||||
|
<a class="bg-gray-200 hover:bg-gray-400 py-2 px-4 block whitespace-no-wrap"
|
||||||
|
href="{% url 'add_session' %}">Session</a>
|
||||||
|
</li>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
|
||||||
</ul>
|
</ul>
|
||||||
</li>
|
</li>
|
||||||
{% if session_count > 0 %}
|
{% if session_count > 0 %}
|
||||||
<li class="relative group">
|
<li class="relative group">
|
||||||
<a class="block py-2 pl-3 pr-4 hover:underline" href="{% url 'stats_current_year' %}">Stats</a>
|
<a class="block py-2 pl-3 pr-4 hover:underline"
|
||||||
|
href="{% url 'stats_current_year' %}">Stats</a>
|
||||||
<ul class="absolute hidden text-gray-700 pt-1 group-hover:block">
|
<ul class="absolute hidden text-gray-700 pt-1 group-hover:block">
|
||||||
{% for year in stats_dropdown_year_range %}
|
{% for year in stats_dropdown_year_range %}
|
||||||
<li>
|
<li>
|
||||||
<a class="bg-gray-200 hover:bg-gray-400 py-2 px-4 block whitespace-no-wrap" href="{% url 'stats_by_year' year %}">{{ year }}</a>
|
<a class="bg-gray-200 hover:bg-gray-400 py-2 px-4 block whitespace-no-wrap"
|
||||||
|
href="{% url 'stats_by_year' year %}">{{ year }}</a>
|
||||||
</li>
|
</li>
|
||||||
{% endfor %}
|
{% endfor %}
|
||||||
</ul>
|
</ul>
|
||||||
</li>
|
</li>
|
||||||
<li><a class="block py-2 pl-3 pr-4 hover:underline" href="{% url 'list_sessions' %}">All Sessions</a></li>
|
<li>
|
||||||
|
<a class="block py-2 pl-3 pr-4 hover:underline"
|
||||||
|
href="{% url 'list_sessions' %}">All Sessions</a>
|
||||||
|
</li>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
</ul>
|
</ul>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</nav>
|
</nav>
|
||||||
{% block content %}No content here.{% endblock content %}
|
{% block content %}
|
||||||
|
No content here.
|
||||||
|
{% endblock content %}
|
||||||
</div>
|
</div>
|
||||||
{% load version %}
|
{% load version %}
|
||||||
<span class="fixed left-2 bottom-2 text-xs text-slate-300 dark:text-slate-600">{% version %} ({% version_date %})</span>
|
<span class="fixed left-2 bottom-2 text-xs text-slate-300 dark:text-slate-600">{% version %} ({% version_date %})</span>
|
||||||
{% block scripts %}{% endblock scripts %}
|
{% block scripts %}
|
||||||
|
{% endblock scripts %}
|
||||||
</body>
|
</body>
|
||||||
|
|
||||||
</html>
|
</html>
|
||||||
|
|
|
@ -2,24 +2,11 @@
|
||||||
title
|
title
|
||||||
text
|
text
|
||||||
{% endcomment %}
|
{% endcomment %}
|
||||||
<a
|
<a href="{{ link }}"
|
||||||
href="{{ link }}"
|
|
||||||
title="{{ title }}"
|
title="{{ title }}"
|
||||||
class="truncate max-w-xs py-1 px-2 text-xs bg-green-600 hover:bg-green-700 focus:ring-green-500 focus:ring-offset-blue-200 text-white transition ease-in duration-200 text-center font-semibold shadow-md focus:outline-none focus:ring-2 focus:ring-offset-2 rounded-sm"
|
class="truncate max-w-xs py-1 px-2 text-xs bg-green-600 hover:bg-green-700 focus:ring-green-500 focus:ring-offset-blue-200 text-white transition ease-in duration-200 text-center font-semibold shadow-md focus:outline-none focus:ring-2 focus:ring-offset-2 rounded-sm">
|
||||||
>
|
{% comment %} <svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="1.5" stroke="currentColor" class="self-center w-6 h-6 inline">
|
||||||
{% comment %} <svg
|
<path stroke-linecap="round" stroke-linejoin="round" d="M5.25 5.653c0-.856.917-1.398 1.667-.986l11.54 6.348a1.125 1.125 0 010 1.971l-11.54 6.347a1.125 1.125 0 01-1.667-.985V5.653z" />
|
||||||
xmlns="http://www.w3.org/2000/svg"
|
|
||||||
fill="none"
|
|
||||||
viewBox="0 0 24 24"
|
|
||||||
stroke-width="1.5"
|
|
||||||
stroke="currentColor"
|
|
||||||
class="self-center w-6 h-6 inline"
|
|
||||||
>
|
|
||||||
<path
|
|
||||||
stroke-linecap="round"
|
|
||||||
stroke-linejoin="round"
|
|
||||||
d="M5.25 5.653c0-.856.917-1.398 1.667-.986l11.54 6.348a1.125 1.125 0 010 1.971l-11.54 6.347a1.125 1.125 0 01-1.667-.985V5.653z"
|
|
||||||
/>
|
|
||||||
</svg>
|
</svg>
|
||||||
{% endcomment %}
|
{% endcomment %}
|
||||||
{{ text }}
|
{{ text }}
|
||||||
|
|
|
@ -2,25 +2,17 @@
|
||||||
title
|
title
|
||||||
text
|
text
|
||||||
{% endcomment %}
|
{% endcomment %}
|
||||||
<button
|
<button type="button"
|
||||||
type="button"
|
|
||||||
title="{{ title }}"
|
title="{{ title }}"
|
||||||
autofocus
|
autofocus
|
||||||
class="truncate max-w-xs sm:max-w-md lg:max-w-lg py-1 px-2 bg-green-600 hover:bg-green-700 focus:ring-green-500 focus:ring-offset-blue-200 text-white transition ease-in duration-200 text-center text-base font-semibold shadow-md focus:outline-none focus:ring-2 focus:ring-offset-2 rounded-lg"
|
class="truncate max-w-xs sm:max-w-md lg:max-w-lg py-1 px-2 bg-green-600 hover:bg-green-700 focus:ring-green-500 focus:ring-offset-blue-200 text-white transition ease-in duration-200 text-center text-base font-semibold shadow-md focus:outline-none focus:ring-2 focus:ring-offset-2 rounded-lg">
|
||||||
>
|
<svg xmlns="http://www.w3.org/2000/svg"
|
||||||
<svg
|
|
||||||
xmlns="http://www.w3.org/2000/svg"
|
|
||||||
fill="none"
|
fill="none"
|
||||||
viewBox="0 0 24 24"
|
viewBox="0 0 24 24"
|
||||||
stroke-width="1.5"
|
stroke-width="1.5"
|
||||||
stroke="currentColor"
|
stroke="currentColor"
|
||||||
class="self-center w-6 h-6 inline"
|
class="self-center w-6 h-6 inline">
|
||||||
>
|
<path stroke-linecap="round" stroke-linejoin="round" d="M5.25 5.653c0-.856.917-1.398 1.667-.986l11.54 6.348a1.125 1.125 0 010 1.971l-11.54 6.347a1.125 1.125 0 01-1.667-.985V5.653z" />
|
||||||
<path
|
|
||||||
stroke-linecap="round"
|
|
||||||
stroke-linejoin="round"
|
|
||||||
d="M5.25 5.653c0-.856.917-1.398 1.667-.986l11.54 6.348a1.125 1.125 0 010 1.971l-11.54 6.347a1.125 1.125 0 01-1.667-.985V5.653z"
|
|
||||||
/>
|
|
||||||
</svg>
|
</svg>
|
||||||
{{ text }}
|
{{ text }}
|
||||||
</button>
|
</button>
|
||||||
|
|
|
@ -1,21 +1,13 @@
|
||||||
<a href="{{ edit_url }}">
|
<a href="{{ edit_url }}">
|
||||||
<button
|
<button type="button"
|
||||||
type="button"
|
|
||||||
title="Edit"
|
title="Edit"
|
||||||
class="ml-1 py-1 px-2 flex justify-center items-center bg-violet-600 hover:bg-violet-700 focus:ring-violet-500 focus:ring-offset-violet-200 text-white transition ease-in duration-200 text-center text-base font-semibold shadow-md focus:outline-none focus:ring-2 focus:ring-offset-2 w-7 h-4 rounded-lg"
|
class="ml-1 py-1 px-2 flex justify-center items-center bg-violet-600 hover:bg-violet-700 focus:ring-violet-500 focus:ring-offset-violet-200 text-white transition ease-in duration-200 text-center text-base font-semibold shadow-md focus:outline-none focus:ring-2 focus:ring-offset-2 w-7 h-4 rounded-lg">
|
||||||
>
|
<svg xmlns="http://www.w3.org/2000/svg"
|
||||||
<svg
|
|
||||||
xmlns="http://www.w3.org/2000/svg"
|
|
||||||
viewBox="0 0 20 20"
|
viewBox="0 0 20 20"
|
||||||
fill="currentColor"
|
fill="currentColor"
|
||||||
class="w-5 h-5"
|
class="w-5 h-5">
|
||||||
>
|
<path d="M5.433 13.917l1.262-3.155A4 4 0 017.58 9.42l6.92-6.918a2.121 2.121 0 013 3l-6.92 6.918c-.383.383-.84.685-1.343.886l-3.154 1.262a.5.5 0 01-.65-.65z" />
|
||||||
<path
|
<path d="M3.5 5.75c0-.69.56-1.25 1.25-1.25H10A.75.75 0 0010 3H4.75A2.75 2.75 0 002 5.75v9.5A2.75 2.75 0 004.75 18h9.5A2.75 2.75 0 0017 15.25V10a.75.75 0 00-1.5 0v5.25c0 .69-.56 1.25-1.25 1.25h-9.5c-.69 0-1.25-.56-1.25-1.25v-9.5z" />
|
||||||
d="M5.433 13.917l1.262-3.155A4 4 0 017.58 9.42l6.92-6.918a2.121 2.121 0 013 3l-6.92 6.918c-.383.383-.84.685-1.343.886l-3.154 1.262a.5.5 0 01-.65-.65z"
|
|
||||||
/>
|
|
||||||
<path
|
|
||||||
d="M3.5 5.75c0-.69.56-1.25 1.25-1.25H10A.75.75 0 0010 3H4.75A2.75 2.75 0 002 5.75v9.5A2.75 2.75 0 004.75 18h9.5A2.75 2.75 0 0017 15.25V10a.75.75 0 00-1.5 0v5.25c0 .69-.56 1.25-1.25 1.25h-9.5c-.69 0-1.25-.56-1.25-1.25v-9.5z"
|
|
||||||
/>
|
|
||||||
</svg>
|
</svg>
|
||||||
</button>
|
</button>
|
||||||
</a>
|
</a>
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
{% extends "base.html" %}
|
{% extends "base.html" %}
|
||||||
|
{% block title %}
|
||||||
{% block title %}{{ title }}{% endblock title %}
|
{{ title }}
|
||||||
|
{% endblock title %}
|
||||||
{% block content %}
|
{% block content %}
|
||||||
<div class="text-slate-300 mx-auto max-w-screen-lg text-center">
|
<div class="text-slate-300 mx-auto max-w-screen-lg text-center">
|
||||||
{% if session_count > 0 %}
|
{% if session_count > 0 %}
|
||||||
|
|
|
@ -1,28 +1,23 @@
|
||||||
{% extends 'base.html' %}
|
{% extends 'base.html' %}
|
||||||
|
|
||||||
{% load static %}
|
{% load static %}
|
||||||
|
{% block title %}
|
||||||
{% block title %}{{ title }}{% endblock title %}
|
{{ title }}
|
||||||
|
{% endblock title %}
|
||||||
{% block content %}
|
{% block content %}
|
||||||
|
|
||||||
{% if dataset.count >= 1 %}
|
{% if dataset.count >= 1 %}
|
||||||
<div class="mx-auto text-center my-4">
|
<div class="mx-auto text-center my-4">
|
||||||
<a
|
<a id="last-session-start"
|
||||||
id="last-session-start"
|
|
||||||
href="{% url 'start_session_same_as_last' last.id %}"
|
href="{% url 'start_session_same_as_last' last.id %}"
|
||||||
hx-get="{% url 'start_session_same_as_last' last.id %}"
|
hx-get="{% url 'start_session_same_as_last' last.id %}"
|
||||||
hx-swap="afterbegin"
|
hx-swap="afterbegin"
|
||||||
hx-target=".responsive-table tbody"
|
hx-target=".responsive-table tbody"
|
||||||
hx-select=".responsive-table tbody tr:first-child"
|
hx-select=".responsive-table tbody tr:first-child"
|
||||||
onClick="document.querySelector('#last-session-start').classList.add('invisible')"
|
onClick="document.querySelector('#last-session-start').classList.add('invisible')"
|
||||||
class="{% if last.timestamp_end == null %}invisible{% endif %}"
|
class="{% if last.timestamp_end == null %}invisible{% endif %}">
|
||||||
>
|
|
||||||
{% include 'components/button_start.html' with text=last.purchase title="Start session of last played game" only %}
|
{% include 'components/button_start.html' with text=last.purchase title="Start session of last played game" only %}
|
||||||
</a>
|
</a>
|
||||||
</div>
|
</div>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
|
||||||
{% if dataset.count != 0 %}
|
{% if dataset.count != 0 %}
|
||||||
<table class="responsive-table">
|
<table class="responsive-table">
|
||||||
<thead>
|
<thead>
|
||||||
|
@ -36,11 +31,8 @@
|
||||||
<tbody>
|
<tbody>
|
||||||
{% for data in dataset %}
|
{% for data in dataset %}
|
||||||
<tr>
|
<tr>
|
||||||
<td
|
<td class="px-2 sm:px-4 md:px-6 md:py-2 purchase-name truncate max-w-20char md:max-w-40char">
|
||||||
class="px-2 sm:px-4 md:px-6 md:py-2 purchase-name truncate max-w-20char md:max-w-40char"
|
<a class="underline decoration-slate-500 sm:decoration-2"
|
||||||
>
|
|
||||||
<a
|
|
||||||
class="underline decoration-slate-500 sm:decoration-2"
|
|
||||||
href="{% url 'view_game' data.purchase.edition.game.id %}">
|
href="{% url 'view_game' data.purchase.edition.game.id %}">
|
||||||
{{ data.purchase.edition }}
|
{{ data.purchase.edition }}
|
||||||
</a>
|
</a>
|
||||||
|
@ -50,15 +42,13 @@
|
||||||
</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 data.unfinished %}
|
{% if data.unfinished %}
|
||||||
<a
|
<a href="{% url 'update_session' data.id %}"
|
||||||
href="{% url 'update_session' data.id %}"
|
|
||||||
hx-get="{% url 'update_session' data.id %}"
|
hx-get="{% url 'update_session' data.id %}"
|
||||||
hx-swap="outerHTML"
|
hx-swap="outerHTML"
|
||||||
hx-target=".responsive-table tbody tr:first-child"
|
hx-target=".responsive-table tbody tr:first-child"
|
||||||
hx-select=".responsive-table tbody tr:first-child"
|
hx-select=".responsive-table tbody tr:first-child"
|
||||||
hx-indicator="#indicator"
|
hx-indicator="#indicator"
|
||||||
onClick="document.querySelector('#last-session-start').classList.remove('invisible')"
|
onClick="document.querySelector('#last-session-start').classList.remove('invisible')">
|
||||||
>
|
|
||||||
<span class="text-yellow-300">Finish now?</span>
|
<span class="text-yellow-300">Finish now?</span>
|
||||||
</a>
|
</a>
|
||||||
{% elif data.duration_manual %}
|
{% elif data.duration_manual %}
|
||||||
|
@ -67,9 +57,7 @@
|
||||||
{{ data.timestamp_end | date:"d/m/Y H:i" }}
|
{{ data.timestamp_end | date:"d/m/Y H:i" }}
|
||||||
{% endif %}
|
{% endif %}
|
||||||
</td>
|
</td>
|
||||||
<td class="px-2 sm:px-4 md:px-6 md:py-2 font-mono">
|
<td class="px-2 sm:px-4 md:px-6 md:py-2 font-mono">{{ data.duration_formatted }}</td>
|
||||||
{{ data.duration_formatted }}
|
|
||||||
</td>
|
|
||||||
</tr>
|
</tr>
|
||||||
{% endfor %}
|
{% endfor %}
|
||||||
</tbody>
|
</tbody>
|
||||||
|
|
|
@ -1,15 +1,17 @@
|
||||||
{% extends "base.html" %}
|
{% extends "base.html" %}
|
||||||
|
{% block title %}
|
||||||
{% block title %}{{ title }}{% endblock title %}
|
{{ title }}
|
||||||
|
{% endblock title %}
|
||||||
{% load static %}
|
{% load static %}
|
||||||
|
|
||||||
{% block content %}
|
{% block content %}
|
||||||
<div class="dark:text-white max-w-sm sm:max-w-xl lg:max-w-3xl mx-auto">
|
<div class="dark:text-white max-w-sm sm:max-w-xl lg:max-w-3xl mx-auto">
|
||||||
<div class="flex justify-center items-center">
|
<div class="flex justify-center items-center">
|
||||||
<form method="get" class="text-center">
|
<form method="get" class="text-center">
|
||||||
<label class="text-5xl text-center inline-block mb-10" for="yearSelect">Stats for:</label>
|
<label class="text-5xl text-center inline-block mb-10" for="yearSelect">Stats for:</label>
|
||||||
<select name="year" id="yearSelect" onchange="this.form.submit();" class="mx-2">
|
<select name="year"
|
||||||
|
id="yearSelect"
|
||||||
|
onchange="this.form.submit();"
|
||||||
|
class="mx-2">
|
||||||
{% for year_item in stats_dropdown_year_range %}
|
{% for year_item in stats_dropdown_year_range %}
|
||||||
<option value="{{ year_item }}" {% if year == year_item %}selected{% endif %}>{{ year_item }}</option>
|
<option value="{{ year_item }}" {% if year == year_item %}selected{% endif %}>{{ year_item }}</option>
|
||||||
{% endfor %}
|
{% endfor %}
|
||||||
|
@ -62,11 +64,15 @@
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<td class="px-2 sm:px-4 md:px-6 md:py-2">Refunded</td>
|
<td class="px-2 sm:px-4 md:px-6 md:py-2">Refunded</td>
|
||||||
<td class="px-2 sm:px-4 md:px-6 md:py-2 font-mono">{{ all_purchased_refunded_this_year.count }} ({{ refunded_percent }}%)</td>
|
<td class="px-2 sm:px-4 md:px-6 md:py-2 font-mono">
|
||||||
|
{{ all_purchased_refunded_this_year.count }} ({{ refunded_percent }}%)
|
||||||
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<td class="px-2 sm:px-4 md:px-6 md:py-2">Unfinished</td>
|
<td class="px-2 sm:px-4 md:px-6 md:py-2">Unfinished</td>
|
||||||
<td class="px-2 sm:px-4 md:px-6 md:py-2 font-mono">{{ purchased_unfinished.count }} ({{ unfinished_purchases_percent }}%)</td>
|
<td class="px-2 sm:px-4 md:px-6 md:py-2 font-mono">
|
||||||
|
{{ purchased_unfinished.count }} ({{ unfinished_purchases_percent }}%)
|
||||||
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<td class="px-2 sm:px-4 md:px-6 md:py-2">Backlog Decrease</td>
|
<td class="px-2 sm:px-4 md:px-6 md:py-2">Backlog Decrease</td>
|
||||||
|
@ -92,9 +98,8 @@
|
||||||
{% for game in top_10_games_by_playtime %}
|
{% for game in top_10_games_by_playtime %}
|
||||||
<tr>
|
<tr>
|
||||||
<td class="px-2 sm:px-4 md:px-6 md:py-2 font-mono">
|
<td class="px-2 sm:px-4 md:px-6 md:py-2 font-mono">
|
||||||
<a class="underline decoration-slate-500 sm:decoration-2" href="{% url 'view_game' game.id %}">{{ game.name }}
|
<a class="underline decoration-slate-500 sm:decoration-2"
|
||||||
|
href="{% url 'view_game' game.id %}">{{ game.name }}</a>
|
||||||
</a>
|
|
||||||
</td>
|
</td>
|
||||||
<td class="px-2 sm:px-4 md:px-6 md:py-2 font-mono">{{ game.formatted_playtime }}</td>
|
<td class="px-2 sm:px-4 md:px-6 md:py-2 font-mono">{{ game.formatted_playtime }}</td>
|
||||||
</tr>
|
</tr>
|
||||||
|
@ -129,7 +134,10 @@
|
||||||
<tbody>
|
<tbody>
|
||||||
{% for purchase in all_finished_this_year %}
|
{% for purchase in all_finished_this_year %}
|
||||||
<tr>
|
<tr>
|
||||||
<td class="px-2 sm:px-4 md:px-6 md:py-2 font-mono"><a class="underline decoration-slate-500 sm:decoration-2" href="{% url 'edit_purchase' purchase.id %}">{{ purchase.edition.name }}</a></td>
|
<td class="px-2 sm:px-4 md:px-6 md:py-2 font-mono">
|
||||||
|
<a class="underline decoration-slate-500 sm:decoration-2"
|
||||||
|
href="{% url 'edit_purchase' purchase.id %}">{{ purchase.edition.name }}</a>
|
||||||
|
</td>
|
||||||
<td class="px-2 sm:px-4 md:px-6 md:py-2 font-mono">{{ purchase.date_finished | date:"d/m/Y" }}</td>
|
<td class="px-2 sm:px-4 md:px-6 md:py-2 font-mono">{{ purchase.date_finished | date:"d/m/Y" }}</td>
|
||||||
</tr>
|
</tr>
|
||||||
{% endfor %}
|
{% endfor %}
|
||||||
|
@ -146,7 +154,10 @@
|
||||||
<tbody>
|
<tbody>
|
||||||
{% for purchase in this_year_finished_this_year %}
|
{% for purchase in this_year_finished_this_year %}
|
||||||
<tr>
|
<tr>
|
||||||
<td class="px-2 sm:px-4 md:px-6 md:py-2 font-mono"><a class="underline decoration-slate-500 sm:decoration-2" href="{% url 'edit_purchase' purchase.id %}">{{ purchase.edition.name }}</a></td>
|
<td class="px-2 sm:px-4 md:px-6 md:py-2 font-mono">
|
||||||
|
<a class="underline decoration-slate-500 sm:decoration-2"
|
||||||
|
href="{% url 'edit_purchase' purchase.id %}">{{ purchase.edition.name }}</a>
|
||||||
|
</td>
|
||||||
<td class="px-2 sm:px-4 md:px-6 md:py-2 font-mono">{{ purchase.date_finished | date:"d/m/Y" }}</td>
|
<td class="px-2 sm:px-4 md:px-6 md:py-2 font-mono">{{ purchase.date_finished | date:"d/m/Y" }}</td>
|
||||||
</tr>
|
</tr>
|
||||||
{% endfor %}
|
{% endfor %}
|
||||||
|
@ -163,7 +174,10 @@
|
||||||
<tbody>
|
<tbody>
|
||||||
{% for purchase in purchased_this_year_finished_this_year %}
|
{% for purchase in purchased_this_year_finished_this_year %}
|
||||||
<tr>
|
<tr>
|
||||||
<td class="px-2 sm:px-4 md:px-6 md:py-2 font-mono"><a class="underline decoration-slate-500 sm:decoration-2" href="{% url 'edit_purchase' purchase.id %}">{{ purchase.edition.name }}</a></td>
|
<td class="px-2 sm:px-4 md:px-6 md:py-2 font-mono">
|
||||||
|
<a class="underline decoration-slate-500 sm:decoration-2"
|
||||||
|
href="{% url 'edit_purchase' purchase.id %}">{{ purchase.edition.name }}</a>
|
||||||
|
</td>
|
||||||
<td class="px-2 sm:px-4 md:px-6 md:py-2 font-mono">{{ purchase.date_finished | date:"d/m/Y" }}</td>
|
<td class="px-2 sm:px-4 md:px-6 md:py-2 font-mono">{{ purchase.date_finished | date:"d/m/Y" }}</td>
|
||||||
</tr>
|
</tr>
|
||||||
{% endfor %}
|
{% endfor %}
|
||||||
|
@ -182,11 +196,10 @@
|
||||||
{% for purchase in all_purchased_this_year %}
|
{% for purchase in all_purchased_this_year %}
|
||||||
<tr>
|
<tr>
|
||||||
<td class="px-2 sm:px-4 md:px-6 md:py-2 font-mono">
|
<td class="px-2 sm:px-4 md:px-6 md:py-2 font-mono">
|
||||||
<a class="underline decoration-slate-500 sm:decoration-2" href="{% url 'edit_purchase' purchase.id %}">
|
<a class="underline decoration-slate-500 sm:decoration-2"
|
||||||
|
href="{% url 'edit_purchase' purchase.id %}">
|
||||||
{{ purchase.edition.name }}
|
{{ purchase.edition.name }}
|
||||||
{% if purchase.type != "game" %}
|
{% if purchase.type != "game" %}({{ purchase.name }}, {{ purchase.get_type_display }}){% endif %}
|
||||||
({{ purchase.name }}, {{ purchase.get_type_display }})
|
|
||||||
{% endif %}
|
|
||||||
</a>
|
</a>
|
||||||
</td>
|
</td>
|
||||||
<td class="px-2 sm:px-4 md:px-6 md:py-2 font-mono">{{ purchase.price }}</td>
|
<td class="px-2 sm:px-4 md:px-6 md:py-2 font-mono">{{ purchase.price }}</td>
|
||||||
|
|
|
@ -1,9 +1,8 @@
|
||||||
{% extends "base.html" %}
|
{% extends "base.html" %}
|
||||||
|
{% block title %}
|
||||||
{% block title %}{{ title }}{% endblock title %}
|
{{ title }}
|
||||||
|
{% endblock title %}
|
||||||
{% load static %}
|
{% load static %}
|
||||||
|
|
||||||
{% block content %}
|
{% block content %}
|
||||||
<div class="dark:text-white max-w-sm sm:max-w-xl lg:max-w-3xl mx-auto">
|
<div class="dark:text-white max-w-sm sm:max-w-xl lg:max-w-3xl mx-auto">
|
||||||
<h1 class="text-4xl flex items-center">
|
<h1 class="text-4xl flex items-center">
|
||||||
|
@ -15,10 +14,12 @@
|
||||||
<h2 class="text-lg my-2 ml-2">
|
<h2 class="text-lg my-2 ml-2">
|
||||||
{{ hours_sum }} <span class="dark:text-slate-500">total</span>
|
{{ hours_sum }} <span class="dark:text-slate-500">total</span>
|
||||||
{{ session_average }} <span class="dark:text-slate-500">avg</span>
|
{{ session_average }} <span class="dark:text-slate-500">avg</span>
|
||||||
({{ playrange }}) </h2>
|
({{ playrange }})
|
||||||
|
</h2>
|
||||||
<hr class="border-slate-500">
|
<hr class="border-slate-500">
|
||||||
<h1 class="text-3xl mt-4 mb-1">Editions <span class="dark:text-slate-500">({{ edition_count }})</span> and Purchases <span class="dark:text-slate-500">({{ purchase_count }})</span></h1>
|
<h1 class="text-3xl mt-4 mb-1">
|
||||||
|
Editions <span class="dark:text-slate-500">({{ edition_count }})</span> and Purchases <span class="dark:text-slate-500">({{ purchase_count }})</span>
|
||||||
|
</h1>
|
||||||
<ul>
|
<ul>
|
||||||
{% for edition in editions %}
|
{% for edition in editions %}
|
||||||
<li class="sm:pl-2 flex items-center">
|
<li class="sm:pl-2 flex items-center">
|
||||||
|
@ -53,12 +54,9 @@
|
||||||
</ul>
|
</ul>
|
||||||
{% endfor %}
|
{% endfor %}
|
||||||
</ul>
|
</ul>
|
||||||
|
|
||||||
<h1 class="text-3xl mt-4 mb-1 flex gap-2 items-center">
|
<h1 class="text-3xl mt-4 mb-1 flex gap-2 items-center">
|
||||||
Sessions
|
Sessions
|
||||||
<span class="dark:text-slate-500">
|
<span class="dark:text-slate-500">({{ sessions.count }})</span>
|
||||||
({{ sessions.count }})
|
|
||||||
</span>
|
|
||||||
{% url 'start_game_session' game.id as add_session_link %}
|
{% url 'start_game_session' game.id as add_session_link %}
|
||||||
{% include 'components/button.html' with title="Start new session" text="New" link=add_session_link %}
|
{% include 'components/button.html' with title="Start new session" text="New" link=add_session_link %}
|
||||||
</h1>
|
</h1>
|
||||||
|
@ -72,7 +70,9 @@
|
||||||
</li>
|
</li>
|
||||||
{% endfor %}
|
{% endfor %}
|
||||||
</ul>
|
</ul>
|
||||||
<h1 class="text-3xl mt-4 mb-1">Notes <span class="dark:text-slate-500">({{ sessions_with_notes.count }})</span></h1>
|
<h1 class="text-3xl mt-4 mb-1">
|
||||||
|
Notes <span class="dark:text-slate-500">({{ sessions_with_notes.count }})</span>
|
||||||
|
</h1>
|
||||||
<ul>
|
<ul>
|
||||||
{% for session in sessions_with_notes %}
|
{% for session in sessions_with_notes %}
|
||||||
<li class="sm:pl-2">
|
<li class="sm:pl-2">
|
||||||
|
@ -84,13 +84,10 @@
|
||||||
{% include 'components/edit_button.html' with edit_url=edit_session_url %}
|
{% include 'components/edit_button.html' with edit_url=edit_session_url %}
|
||||||
</span>
|
</span>
|
||||||
</li>
|
</li>
|
||||||
<li class="sm:pl-4 italic">
|
<li class="sm:pl-4 italic">{{ session.note|linebreaks }}</li>
|
||||||
{{ session.note|linebreaks }}
|
|
||||||
</li>
|
|
||||||
</ul>
|
</ul>
|
||||||
</li>
|
</li>
|
||||||
{% endfor %}
|
{% endfor %}
|
||||||
</ul>
|
</ul>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
{% endblock content %}
|
{% endblock content %}
|
||||||
|
|
Loading…
Reference in New Issue