You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
329 lines
13 KiB
329 lines
13 KiB
from django.shortcuts import render, get_object_or_404
|
|
from django.http import HttpResponse
|
|
from django.template import loader
|
|
from django.contrib.auth.models import User
|
|
from .models import Match, Club, Tournament, Team, Player
|
|
from .serializers import UserSerializer, MatchSerializer, ClubSerializer, TournamentSerializer, TeamSerializer, PlayerSerializer
|
|
from rest_framework import viewsets
|
|
from rest_framework import permissions
|
|
|
|
def index(request):
|
|
club = Club.objects.first()
|
|
live_matches = Match.objects.filter(enddate__isnull=True).order_by('court')
|
|
ended_matches = Match.objects.filter(enddate__isnull=False).order_by('court')
|
|
template = loader.get_template('scores/index.html')
|
|
context = {
|
|
'club': club,
|
|
'live_matches': live_matches,
|
|
'ended_matches': ended_matches,
|
|
}
|
|
return HttpResponse(template.render(context, request))
|
|
|
|
def tv_index(request):
|
|
club = Club.objects.first()
|
|
live_matches = Match.objects.filter(enddate__isnull=True).order_by('court')
|
|
ended_matches = Match.objects.filter(enddate__isnull=False).order_by('court')
|
|
template = loader.get_template('scores/index.html')
|
|
context = {
|
|
'club': club,
|
|
'tv': True,
|
|
'live_matches': live_matches,
|
|
'ended_matches': ended_matches,
|
|
}
|
|
return HttpResponse(template.render(context, request))
|
|
|
|
def club(request, club_id):
|
|
|
|
club = get_object_or_404(Club, pk=club_id)
|
|
template = loader.get_template('scores/club.html')
|
|
context = {
|
|
'club': club,
|
|
}
|
|
return HttpResponse(template.render(context, request))
|
|
|
|
|
|
def club_name(request, club_name):
|
|
|
|
club = get_object_or_404(Club, name__iexact=club_name.lower())
|
|
tournaments = Tournament.objects.filter(club=club.id).order_by('id').reverse()
|
|
template = loader.get_template('scores/club.html')
|
|
context = {
|
|
'club': club,
|
|
'tournaments': tournaments,
|
|
}
|
|
return HttpResponse(template.render(context, request))
|
|
|
|
def tv_club_name(request, club_name):
|
|
|
|
club = get_object_or_404(Club, name__iexact=club_name.lower())
|
|
tournaments = Tournament.objects.filter(club=club.id).order_by('id').reverse()
|
|
template = loader.get_template('scores/club.html')
|
|
context = {
|
|
'club': club,
|
|
'tournaments': tournaments,
|
|
'tv': True,
|
|
}
|
|
return HttpResponse(template.render(context, request))
|
|
|
|
def tournament_name(request, tournament_shortname):
|
|
tournamentFound = Tournament.objects.filter(shortname__iexact=tournament_shortname.lower()).first()
|
|
return tournament(request, tournamentFound.id)
|
|
|
|
def club_name_tournament(request, club_name, tournament_id):
|
|
return tournament(request, tournament_id)
|
|
|
|
def club_name_tournament_name(request, club_name, tournament_shortname):
|
|
club = get_object_or_404(Club, name__iexact=club_name.lower())
|
|
tournamentFound = Tournament.objects.filter(club_id=club.id, shortname__iexact=tournament_shortname.lower()).first()
|
|
return tournament(request, tournamentFound.id)
|
|
|
|
def tournament(request, tournament_id):
|
|
|
|
tournament = get_object_or_404(Tournament, pk=tournament_id)
|
|
live_matches = Match.objects.filter(tournament=tournament.id, enddate__isnull=True).order_by('court')
|
|
ended_matches = Match.objects.filter(tournament=tournament.id, enddate__isnull=False).order_by('court')
|
|
|
|
template = loader.get_template('scores/tournament.html')
|
|
context = {
|
|
'tournament': tournament,
|
|
'live_matches': live_matches,
|
|
'ended_matches': ended_matches,
|
|
}
|
|
return HttpResponse(template.render(context, request))
|
|
|
|
def match(request, match_id):
|
|
|
|
match = get_object_or_404(Match, pk=match_id)
|
|
template = loader.get_template('scores/match.html')
|
|
context = {
|
|
'match': match,
|
|
}
|
|
return HttpResponse(template.render(context, request))
|
|
|
|
def match_tv(request, match_id):
|
|
|
|
match = get_object_or_404(Match, pk=match_id)
|
|
template = loader.get_template('scores/match.html')
|
|
context = {
|
|
'match': match,
|
|
'tv': True,
|
|
}
|
|
return HttpResponse(template.render(context, request))
|
|
|
|
|
|
def teams_tournament_name(request, tournament_shortname):
|
|
tournament = get_object_or_404(Tournament, shortname__iexact=tournament_shortname.lower())
|
|
return teams_tournament(request, tournament.id)
|
|
|
|
def teams_club_name_tournament(request, club_name, tournament_id):
|
|
club = get_object_or_404(Club, name__iexact=club_name.lower())
|
|
tournament = get_object_or_404(Tournament, pk=tournament_id)
|
|
return teams_tournament(request, tournament.id)
|
|
|
|
def teams_club_name_tournament_name(request, club_name, tournament_shortname):
|
|
club = get_object_or_404(Club, name__iexact=club_name.lower())
|
|
tournament = Tournament.objects.filter(club_id=club.id, shortname__iexact=tournament_shortname.lower()).first()
|
|
return teams_tournament(request, tournament.id)
|
|
|
|
def teams_tournament(request, tournament_id):
|
|
|
|
tournament = get_object_or_404(Tournament, pk=tournament_id)
|
|
template = loader.get_template('scores/teams.html')
|
|
context = {
|
|
'tournament': tournament,
|
|
}
|
|
return HttpResponse(template.render(context, request))
|
|
|
|
def tv_index(request):
|
|
club = Club.objects.first()
|
|
live_matches = Match.objects.filter(enddate__isnull=True).order_by('court')
|
|
ended_matches = Match.objects.filter(enddate__isnull=False).order_by('court')
|
|
template = loader.get_template('scores/index.html')
|
|
context = {
|
|
'club': club,
|
|
'live_matches': live_matches,
|
|
'ended_matches': ended_matches,
|
|
'tv': True,
|
|
}
|
|
return HttpResponse(template.render(context, request))
|
|
|
|
def tv_tournament_name(request, tournament_shortname):
|
|
tournamentFound = Tournament.objects.filter(shortname__iexact=tournament_shortname.lower()).first()
|
|
return tv_tournament(request, tournamentFound.id)
|
|
|
|
def tv_club_name_tournament(request, club_name, tournament_id):
|
|
return tv_tournament(request, tournament_id)
|
|
|
|
def tv_club_name_tournament_name(request, club_name, tournament_shortname):
|
|
club = get_object_or_404(Club, name__iexact=club_name.lower())
|
|
tournamentFound = Tournament.objects.filter(club_id=club.id, shortname__iexact=tournament_shortname.lower()).first()
|
|
return tv_tournament(request, tournamentFound.id)
|
|
|
|
def tv_tournament(request, tournament_id):
|
|
|
|
tournament = get_object_or_404(Tournament, pk=tournament_id)
|
|
live_matches = Match.objects.filter(tournament=tournament.id, enddate__isnull=True).order_by('court')
|
|
ended_matches = Match.objects.filter(tournament=tournament.id, enddate__isnull=False).order_by('court')
|
|
|
|
template = loader.get_template('scores/tournament.html')
|
|
context = {
|
|
'tournament': tournament,
|
|
'live_matches': live_matches,
|
|
'ended_matches': ended_matches,
|
|
'tv': True,
|
|
}
|
|
return HttpResponse(template.render(context, request))
|
|
|
|
def tv_teams_tournament_name(request, tournament_shortname):
|
|
tournament = get_object_or_404(Tournament, shortname__iexact=tournament_shortname.lower())
|
|
return tv_teams_tournament(request, tournament.id)
|
|
|
|
def tv_teams_club_name_tournament(request, club_name, tournament_id):
|
|
club = get_object_or_404(Club, name__iexact=club_name.lower())
|
|
tournament = get_object_or_404(Tournament, pk=tournament_id)
|
|
return tv_teams_tournament(request, tournament.id)
|
|
|
|
def tv_teams_club_name_tournament_name(request, club_name, tournament_shortname):
|
|
club = get_object_or_404(Club, name__iexact=club_name.lower())
|
|
tournament = Tournament.objects.filter(club_id=club.id, shortname__iexact=tournament_shortname.lower()).first()
|
|
return tv_teams_tournament(request, tournament.id)
|
|
|
|
def tv_teams_tournament(request, tournament_id):
|
|
|
|
tournament = get_object_or_404(Tournament, pk=tournament_id)
|
|
template = loader.get_template('scores/teams.html')
|
|
context = {
|
|
'tournament': tournament,
|
|
'tv': True,
|
|
}
|
|
return HttpResponse(template.render(context, request))
|
|
|
|
def ranking_tournament_id(request, club_name, tournament_id):
|
|
tournament = get_object_or_404(Tournament, pk=tournament_id)
|
|
template = loader.get_template('scores/ranks.html')
|
|
context = {
|
|
'tournament': tournament,
|
|
}
|
|
return HttpResponse(template.render(context, request))
|
|
|
|
def tv_ranking_tournament_id(request, club_name, tournament_id):
|
|
tournament = get_object_or_404(Tournament, pk=tournament_id)
|
|
template = loader.get_template('scores/ranks.html')
|
|
context = {
|
|
'tournament': tournament,
|
|
'tv': True,
|
|
}
|
|
return HttpResponse(template.render(context, request))
|
|
|
|
|
|
def tv_ranking(request, club_name, tournament_shortname):
|
|
club = get_object_or_404(Club, name__iexact=club_name.lower())
|
|
tournament = Tournament.objects.filter(club_id=club.id, shortname__iexact=tournament_shortname.lower()).first()
|
|
template = loader.get_template('scores/ranks.html')
|
|
context = {
|
|
'tournament': tournament,
|
|
'tv': True,
|
|
}
|
|
return HttpResponse(template.render(context, request))
|
|
|
|
def ranking(request, club_name, tournament_shortname):
|
|
club = get_object_or_404(Club, name__iexact=club_name.lower())
|
|
tournament = Tournament.objects.filter(club_id=club.id, shortname__iexact=tournament_shortname.lower()).first()
|
|
template = loader.get_template('scores/ranks.html')
|
|
context = {
|
|
'tournament': tournament,
|
|
}
|
|
return HttpResponse(template.render(context, request))
|
|
|
|
def brackets_tournament_id(request, club_name, tournament_id):
|
|
tournament = get_object_or_404(Tournament, pk=tournament_id)
|
|
template = loader.get_template('scores/brackets.html')
|
|
allBrackets = Match.objects.filter(tournament=tournament.id).order_by('court')
|
|
context = {
|
|
'tournament': tournament,
|
|
'brackets': allBrackets,
|
|
}
|
|
return HttpResponse(template.render(context, request))
|
|
|
|
def tv_brackets_tournament_id(request, club_name, tournament_id):
|
|
tournament = get_object_or_404(Tournament, pk=tournament_id)
|
|
template = loader.get_template('scores/brackets.html')
|
|
allBrackets = Match.objects.filter(tournament=tournament.id).order_by('court')
|
|
context = {
|
|
'tournament': tournament,
|
|
'brackets': allBrackets,
|
|
'tv': True,
|
|
}
|
|
return HttpResponse(template.render(context, request))
|
|
|
|
|
|
def tv_brackets(request, club_name, tournament_shortname):
|
|
club = get_object_or_404(Club, name__iexact=club_name.lower())
|
|
tournament = Tournament.objects.filter(club_id=club.id, shortname__iexact=tournament_shortname.lower()).first()
|
|
template = loader.get_template('scores/brackets.html')
|
|
allBrackets = Match.objects.filter(tournament=tournament.id).order_by('court')
|
|
context = {
|
|
'tournament': tournament,
|
|
'brackets': allBrackets,
|
|
'tv': True,
|
|
}
|
|
return HttpResponse(template.render(context, request))
|
|
|
|
def brackets(request, club_name, tournament_shortname):
|
|
club = get_object_or_404(Club, name__iexact=club_name.lower())
|
|
tournament = Tournament.objects.filter(club_id=club.id, shortname__iexact=tournament_shortname.lower()).first()
|
|
template = loader.get_template('scores/brackets.html')
|
|
allBrackets = Match.objects.filter(tournament=tournament.id).order_by('court')
|
|
context = {
|
|
'tournament': tournament,
|
|
'brackets': allBrackets,
|
|
}
|
|
return HttpResponse(template.render(context, request))
|
|
|
|
class UserViewSet(viewsets.ModelViewSet):
|
|
"""
|
|
API endpoint that allows users to be viewed or edited.
|
|
"""
|
|
queryset = User.objects.all().order_by('-date_joined')
|
|
serializer_class = UserSerializer
|
|
permission_classes = [permissions.IsAuthenticated]
|
|
|
|
class ClubViewSet(viewsets.ModelViewSet):
|
|
"""
|
|
API endpoint that allows clubs to be viewed or edited.
|
|
"""
|
|
queryset = Club.objects.all().order_by('id')
|
|
serializer_class = ClubSerializer
|
|
permission_classes = [permissions.IsAuthenticated]
|
|
|
|
class TournamentViewSet(viewsets.ModelViewSet):
|
|
"""
|
|
API endpoint that allows clubs to be viewed or edited.
|
|
"""
|
|
queryset = Tournament.objects.all().order_by('id')
|
|
serializer_class = TournamentSerializer
|
|
permission_classes = [permissions.IsAuthenticated]
|
|
|
|
class MatchViewSet(viewsets.ModelViewSet):
|
|
"""
|
|
API endpoint that allows matches to be viewed or edited.
|
|
"""
|
|
queryset = Match.objects.all().order_by('court')
|
|
serializer_class = MatchSerializer
|
|
permission_classes = [permissions.IsAuthenticated]
|
|
|
|
class TeamViewSet(viewsets.ModelViewSet):
|
|
"""
|
|
API endpoint that allows teams to be viewed or edited.
|
|
"""
|
|
queryset = Team.objects.all().order_by('id')
|
|
serializer_class = TeamSerializer
|
|
permission_classes = [permissions.IsAuthenticated]
|
|
|
|
class PlayerViewSet(viewsets.ModelViewSet):
|
|
"""
|
|
API endpoint that allows teams to be viewed or edited.
|
|
"""
|
|
queryset = Player.objects.all().order_by('id')
|
|
serializer_class = PlayerSerializer
|
|
permission_classes = [permissions.IsAuthenticated]
|
|
|