from django.shortcuts import render from django.contrib.auth.decorators import login_required from calendars.models import Event, EventParticipation from clubs.models import Team @login_required def dashboard(request): user = request.user events = [] children_events = [] # Get user's own events player_teams = [] if hasattr(user, 'team') and user.team: player_teams = [user.team] coached_teams = user.coached_teams.all() assisted_teams = user.assisted_teams.all() from itertools import chain all_teams = list(set(chain(player_teams, coached_teams, assisted_teams))) if all_teams: events = Event.objects.filter(team__in=all_teams).select_related('game', 'training').order_by('start_time') # Get children's events if hasattr(user, 'children'): for child in user.children.all(): child_events_list = [] if child.team: child_events = Event.objects.filter(team=child.team).select_related('game', 'training').order_by('start_time') for event in child_events: participation, created = EventParticipation.objects.get_or_create(user=child, event=event) child_events_list.append({'event': event, 'participation': participation}) children_events.append({'child': child, 'events': child_events_list}) context = { 'events': events, 'children_events': children_events, } return render(request, 'dashboard/dashboard.html', context)