Initial commit

This commit is contained in:
2022-12-31 14:18:27 +01:00
commit 6ae46c5d34
36 changed files with 1956 additions and 0 deletions

53
src/web/tracker/views.py Normal file
View File

@ -0,0 +1,53 @@
from django.shortcuts import render
from .models import Game, Platform, Purchase, Session
from .forms import SessionForm, PurchaseForm, GameForm
from datetime import datetime
from django.db.models import ExpressionWrapper, F, DurationField
def add_session(request):
context = {}
now = datetime.now()
initial = {"timestamp_start": now, "timestamp_end": now}
form = SessionForm(request.POST or None, initial=initial)
if form.is_valid():
form.save()
context["form"] = form
return render(request, "add_session.html", context)
def list_sessions(request):
context = {}
dataset = Session.objects.annotate(
time_delta=ExpressionWrapper(
F("timestamp_end") - F("timestamp_start"), output_field=DurationField()
)
)
context["dataset"] = dataset
return render(request, "list_sessions.html", context)
def add_purchase(request):
context = {}
now = datetime.now()
initial = {"date_purchased": now}
form = PurchaseForm(request.POST or None, initial=initial)
if form.is_valid():
form.save()
context["form"] = form
return render(request, "add_purchase.html", context)
def add_game(request):
context = {}
form = GameForm(request.POST or None)
if form.is_valid():
form.save()
context["form"] = form
context["title"] = "Add New Game"
return render(request, "add.html", context)