Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Tournaments/implement frontend tournament design #349

Open
wants to merge 18 commits into
base: dev
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from 2 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions src/chigame/games/models.py
Original file line number Diff line number Diff line change
Expand Up @@ -268,7 +268,7 @@ def __str__(self): # may be changed later
+ self.end_date.strftime("%m/%d/%Y")
)

def create_tournaments_brackets(self) -> list[Match]:
def create_tournaments_brackets(self):
"""
Creates a list of brackets for the tournaments.

Expand Down Expand Up @@ -303,7 +303,7 @@ def create_tournaments_brackets(self) -> list[Match]:

return brackets

def next_round_tournaments_brackets(self) -> list[Match]:
def next_round_tournaments_brackets(self):
"""
Creates a list of brackets for the next round of the tournaments.

Expand Down
2 changes: 2 additions & 0 deletions src/chigame/games/urls.py
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,8 @@
path("tournaments/create/", views.TournamentCreateView.as_view(), name="tournament-create"),
path("tournaments/<int:pk>/update/", views.TournamentUpdateView.as_view(), name="tournament-update"),
path("tournaments/<int:pk>/delete/", views.TournamentDeleteView.as_view(), name="tournament-delete"),
# tournament bracket display
path('tournament-bracket/<int:tournament_id>/', views.TournamentBracketView.as_view(), name='tournament-bracket'),
# chat in tournaments
path("tournaments/<int:pk>/chat/", views.TournamentChatDetailView, name="tournament-chat"),
]
35 changes: 32 additions & 3 deletions src/chigame/games/views.py
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@
from django.shortcuts import get_object_or_404, redirect, render, reverse
from django.urls import reverse_lazy
from django.utils.decorators import method_decorator
from django.views.generic import CreateView, DeleteView, DetailView, ListView, UpdateView
from django.views.generic import CreateView, DeleteView, DetailView, ListView, UpdateView, TemplateView
from django_tables2 import SingleTableView

from .forms import GameForm
Expand Down Expand Up @@ -151,7 +151,11 @@ def post(self, request, *args, **kwargs):
success = tournament.tournament_sign_up(request.user)
if success == 0:
messages.success(request, "You have successfully joined this tournament")
return redirect(reverse_lazy("tournament-list"))

# Redirect to the tournament bracket page
bracket_url = reverse("tournament-bracket", args=[tournament.id])
return redirect(bracket_url)

elif success == 1:
messages.error(request, "You have already joined this tournament")
return redirect(reverse_lazy("tournament-list"))
Expand Down Expand Up @@ -192,7 +196,10 @@ def post(self, request, *args, **kwargs):
success = tournament.tournament_sign_up(request.user)
if success == 0:
messages.success(request, "You have successfully joined this tournament")
return redirect(reverse_lazy("tournament-detail", kwargs={"pk": tournament.pk}))

# Redirect to the tournament bracket page
bracket_url = reverse("tournament-bracket", args=[tournament.id])
return redirect(bracket_url)
elif success == 1:
messages.error(request, "You have already joined this tournament")
return redirect(reverse_lazy("tournament-detail", kwargs={"pk": tournament.pk}))
Expand Down Expand Up @@ -316,7 +323,29 @@ class TournamentDeleteView(DeleteView):
context_object_name = "tournament"
success_url = reverse_lazy("tournament-list")

class TournamentBracketView(TemplateView):
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Would like to see the bracket view as a button somewhere on the detail view, so users can access it

template_name = "tournaments/tournament_bracket.html"

def get_context_data(self, **kwargs):
tournament_id = self.kwargs['tournament_id']
tournament = Tournament.objects.get(id=tournament_id)

# Fetching required information
tournament_name = tournament.name
game_name = tournament.game.name
players = tournament.players.all()
winner = tournament.get_all_winners().first() # Assuming one winner for simplicity

context = {
'tournament_name': tournament_name,
'game_name': game_name,
'players': players,
'winner': winner,
# Add more context data if needed
}

return context

def TournamentChatDetailView(request, pk):
tournament = Tournament.objects.get(pk=pk)
context = {"tournament": tournament}
Expand Down
6 changes: 3 additions & 3 deletions src/chigame/users/managers.py
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
class UserManager(DjangoUserManager):
"""Custom manager for the User model."""

def _create_user(self, email: str, password: str | None, **extra_fields):
def _create_user(self, email: str, password: str or None, **extra_fields):
"""
Create and save a user with the given email and password.
"""
Expand All @@ -17,12 +17,12 @@ def _create_user(self, email: str, password: str | None, **extra_fields):
user.save(using=self._db)
return user

def create_user(self, email: str, password: str | None = None, **extra_fields):
def create_user(self, email: str, password: str or None = None, **extra_fields):
extra_fields.setdefault("is_staff", False)
extra_fields.setdefault("is_superuser", False)
return self._create_user(email, password, **extra_fields)

def create_superuser(self, email: str, password: str | None = None, **extra_fields):
def create_superuser(self, email: str, password: str or None = None, **extra_fields):
extra_fields.setdefault("is_staff", True)
extra_fields.setdefault("is_superuser", True)

Expand Down
Loading