47 lines
No EOL
1.2 KiB
Python
Executable file
47 lines
No EOL
1.2 KiB
Python
Executable file
from django.shortcuts import render
|
|
from .azure_auth import AzureUser
|
|
from .models import Berichtsheft
|
|
import datetime
|
|
import json
|
|
|
|
# Create your views here.
|
|
|
|
def next_date(year: int, week: int) -> (int, int):
|
|
if week >= 52:
|
|
return (year + 1, 1)
|
|
else:
|
|
return (year, week + 1)
|
|
|
|
def write_new_report(request):
|
|
user = AzureUser(request)
|
|
|
|
# TODO : Get template for user
|
|
definition = json.loads(open("report_weekly.json").read())
|
|
|
|
# Get the latest year and week
|
|
latest = Berichtsheft.objects.filter(user=user).order_by('-year', '-week').first()
|
|
if latest is not None:
|
|
current_year, current_week = next_date(latest.year, latest.week)
|
|
else:
|
|
current_year, current_week, _ = datetime.datetime.today().isocalendar()
|
|
|
|
# Get cookies for persistent saves
|
|
|
|
|
|
return render(request, "write.html", {
|
|
"user": user,
|
|
"year": current_year,
|
|
"week": current_week,
|
|
"definition": definition
|
|
})
|
|
|
|
def index(request):
|
|
user = AzureUser(request)
|
|
|
|
# Get all berichtshefte
|
|
all_reports = Berichtsheft.objects.filter(user=user)
|
|
|
|
return render(request, "index.html", {"user": user, "reports": all_reports})
|
|
|
|
def test(request):
|
|
return render(request, "test.html", {}) |