57 lines
1.4 KiB
Python
57 lines
1.4 KiB
Python
import datetime
|
|
|
|
from django import template
|
|
from django.shortcuts import redirect, render
|
|
|
|
from teamsnap.views import get_teamsnap_client
|
|
|
|
register = template.Library()
|
|
|
|
|
|
@register.simple_tag
|
|
def multiply(a, b):
|
|
return a * b
|
|
|
|
|
|
@register.simple_tag
|
|
def divide(a, b):
|
|
return int(a / b)
|
|
|
|
|
|
def dashboard(request, team_id=None):
|
|
if not team_id:
|
|
return redirect(
|
|
"teamsnap_dashboard",
|
|
team_id=request.user.teamsnap_preferences.managed_team_id,
|
|
)
|
|
|
|
from pyteamsnap.models import AvailabilitySummary, Event
|
|
|
|
client = get_teamsnap_client(request)
|
|
ts_events = Event.search(client, team_id=team_id)
|
|
ts_availability_summaries_d = {
|
|
a.data["id"]: a for a in AvailabilitySummary.search(client, team_id=team_id)
|
|
}
|
|
ts_events_future = [
|
|
e
|
|
for e in ts_events
|
|
if e.data["start_date"] > datetime.datetime.now(datetime.timezone.utc)
|
|
]
|
|
ts_events_past = [
|
|
e
|
|
for e in reversed(ts_events)
|
|
if e.data["start_date"] < datetime.datetime.now(datetime.timezone.utc)
|
|
]
|
|
|
|
return render(
|
|
request,
|
|
"dashboard.html",
|
|
{
|
|
"ts_events_future": ts_events_future,
|
|
"ts_events_past": ts_events_past,
|
|
"events_availabilities": [
|
|
(e, ts_availability_summaries_d[e.data["id"]]) for e in ts_events_future
|
|
],
|
|
},
|
|
)
|