Major redesign #73
|
@ -1,7 +1,7 @@
|
||||||
from django import forms
|
from django import forms
|
||||||
from django.urls import reverse
|
from django.urls import reverse
|
||||||
from common.utils import safe_getattr
|
|
||||||
|
|
||||||
|
from common.utils import safe_getattr
|
||||||
from games.models import Device, Edition, Game, Platform, Purchase, Session
|
from games.models import Device, Edition, Game, Platform, Purchase, Session
|
||||||
|
|
||||||
custom_date_widget = forms.DateInput(attrs={"type": "date"})
|
custom_date_widget = forms.DateInput(attrs={"type": "date"})
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
{% extends 'base.html' %}
|
{% extends "base.html" %}
|
||||||
{% load static %}
|
{% load static %}
|
||||||
{% block title %}
|
{% block title %}
|
||||||
{{ title }}
|
{{ title }}
|
||||||
|
@ -15,7 +15,7 @@
|
||||||
hx-target=".responsive-table tbody"
|
hx-target=".responsive-table tbody"
|
||||||
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 %}
|
||||||
|
|
|
@ -100,12 +100,16 @@
|
||||||
{% if edition.wikidata %}
|
{% if edition.wikidata %}
|
||||||
<span class="hidden sm:inline">
|
<span class="hidden sm:inline">
|
||||||
<a href="https://www.wikidata.org/wiki/{{ edition.wikidata }}">
|
<a href="https://www.wikidata.org/wiki/{{ edition.wikidata }}">
|
||||||
<img class="inline mx-2 w-6" src="{% static 'icons/wikidata.png' %}" />
|
<img class="inline mx-2 w-6"
|
||||||
|
width="48"
|
||||||
|
height="48"
|
||||||
|
alt="Wikidata Icon"
|
||||||
|
src="{% static 'icons/wikidata.png' %}" />
|
||||||
</a>
|
</a>
|
||||||
</span>
|
</span>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
{% url 'edit_edition' edition.id as edit_url %}
|
{% url 'edit_edition' edition.id as edit_url %}
|
||||||
{% include 'components/edit_button.html' with edit_url=edit_url %}
|
{% include "components/edit_button.html" with edit_url=edit_url %}
|
||||||
</li>
|
</li>
|
||||||
<ul>
|
<ul>
|
||||||
{% for purchase in edition.game_purchases %}
|
{% for purchase in edition.game_purchases %}
|
||||||
|
@ -113,14 +117,14 @@
|
||||||
{{ purchase.get_ownership_type_display }}, {{ purchase.date_purchased | date:"Y" }}
|
{{ purchase.get_ownership_type_display }}, {{ purchase.date_purchased | date:"Y" }}
|
||||||
{% if purchase.price != 0 %}({{ purchase.price }} {{ purchase.price_currency }}){% endif %}
|
{% if purchase.price != 0 %}({{ purchase.price }} {{ purchase.price_currency }}){% endif %}
|
||||||
{% url 'edit_purchase' purchase.id as edit_url %}
|
{% url 'edit_purchase' purchase.id as edit_url %}
|
||||||
{% include 'components/edit_button.html' with edit_url=edit_url %}
|
{% include "components/edit_button.html" with edit_url=edit_url %}
|
||||||
</li>
|
</li>
|
||||||
<ul>
|
<ul>
|
||||||
{% for related_purchase in purchase.nongame_related_purchases %}
|
{% for related_purchase in purchase.nongame_related_purchases %}
|
||||||
<li class="sm:pl-12 flex items-center">
|
<li class="sm:pl-12 flex items-center">
|
||||||
{{ related_purchase.name }} ({{ related_purchase.get_type_display }}, {{ purchase.platform }}, {{ related_purchase.date_purchased | date:"Y" }}, {{ related_purchase.price }} {{ related_purchase.price_currency }})
|
{{ related_purchase.name }} ({{ related_purchase.get_type_display }}, {{ purchase.platform }}, {{ related_purchase.date_purchased | date:"Y" }}, {{ related_purchase.price }} {{ related_purchase.price_currency }})
|
||||||
{% url 'edit_purchase' related_purchase.id as edit_url %}
|
{% url 'edit_purchase' related_purchase.id as edit_url %}
|
||||||
{% include 'components/edit_button.html' with edit_url=edit_url %}
|
{% include "components/edit_button.html" with edit_url=edit_url %}
|
||||||
</li>
|
</li>
|
||||||
{% endfor %}
|
{% endfor %}
|
||||||
</ul>
|
</ul>
|
||||||
|
@ -151,7 +155,7 @@
|
||||||
{% if session.timestamp_end %}-{{ session.timestamp_end | date:"H:i" }}{% endif %}
|
{% if session.timestamp_end %}-{{ session.timestamp_end | date:"H:i" }}{% endif %}
|
||||||
({{ session.device.get_type_display | default:"Unknown" }}, {{ session.duration_formatted }})
|
({{ session.device.get_type_display | default:"Unknown" }}, {{ session.duration_formatted }})
|
||||||
{% url 'edit_session' session.id as edit_url %}
|
{% url 'edit_session' session.id as edit_url %}
|
||||||
{% include 'components/edit_button.html' with edit_url=edit_url %}
|
{% include "components/edit_button.html" with edit_url=edit_url %}
|
||||||
{% if not session.timestamp_end %}
|
{% if not session.timestamp_end %}
|
||||||
{% url 'view_game_end_session' session.id as end_session_url %}
|
{% url 'view_game_end_session' session.id as end_session_url %}
|
||||||
<a class="flex bg-green-600 rounded-full px-2 w-7 h-4 text-white justify-center items-center"
|
<a class="flex bg-green-600 rounded-full px-2 w-7 h-4 text-white justify-center items-center"
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
|
import markdown
|
||||||
from django import template
|
from django import template
|
||||||
from django.utils.safestring import mark_safe
|
from django.utils.safestring import mark_safe
|
||||||
import markdown
|
|
||||||
|
|
||||||
register = template.Library()
|
register = template.Library()
|
||||||
|
|
||||||
|
|
|
@ -2,17 +2,7 @@ from datetime import datetime
|
||||||
from typing import Any, Callable
|
from typing import Any, Callable
|
||||||
|
|
||||||
from django.contrib.auth.decorators import login_required
|
from django.contrib.auth.decorators import login_required
|
||||||
|
from django.db.models import Avg, Count, ExpressionWrapper, F, Prefetch, Q, Sum, fields
|
||||||
from django.db.models import (
|
|
||||||
Avg,
|
|
||||||
Count,
|
|
||||||
ExpressionWrapper,
|
|
||||||
F,
|
|
||||||
Prefetch,
|
|
||||||
Q,
|
|
||||||
Sum,
|
|
||||||
fields,
|
|
||||||
)
|
|
||||||
from django.db.models.functions import TruncDate, TruncMonth
|
from django.db.models.functions import TruncDate, TruncMonth
|
||||||
from django.http import (
|
from django.http import (
|
||||||
HttpRequest,
|
HttpRequest,
|
||||||
|
@ -20,10 +10,9 @@ from django.http import (
|
||||||
HttpResponseBadRequest,
|
HttpResponseBadRequest,
|
||||||
HttpResponseRedirect,
|
HttpResponseRedirect,
|
||||||
)
|
)
|
||||||
from django.shortcuts import redirect, render
|
from django.shortcuts import get_object_or_404, redirect, render
|
||||||
from django.urls import reverse
|
from django.urls import reverse
|
||||||
from django.utils import timezone
|
from django.utils import timezone
|
||||||
from django.shortcuts import get_object_or_404
|
|
||||||
|
|
||||||
from common.time import format_duration
|
from common.time import format_duration
|
||||||
from common.utils import safe_division, safe_getattr
|
from common.utils import safe_division, safe_getattr
|
||||||
|
|
|
@ -13,6 +13,7 @@ Including another URLconf
|
||||||
1. Import the include() function: from django.urls import include, path
|
1. Import the include() function: from django.urls import include, path
|
||||||
2. Add a URL to urlpatterns: path('blog/', include('blog.urls'))
|
2. Add a URL to urlpatterns: path('blog/', include('blog.urls'))
|
||||||
"""
|
"""
|
||||||
|
|
||||||
from django.conf import settings
|
from django.conf import settings
|
||||||
from django.contrib import admin
|
from django.contrib import admin
|
||||||
from django.contrib.auth import views as auth_views
|
from django.contrib.auth import views as auth_views
|
||||||
|
|
Loading…
Reference in New Issue