Skip to content

Commit

Permalink
Merge pull request #277 from uchicago-cs/matches/lobby-create
Browse files Browse the repository at this point in the history
Implemented create button for lobbies
  • Loading branch information
elizabethli31 authored Nov 29, 2023
2 parents 491838b + e04c38f commit 7b4d4ae
Show file tree
Hide file tree
Showing 4 changed files with 22 additions and 2 deletions.
3 changes: 2 additions & 1 deletion src/chigame/games/urls.py
Original file line number Diff line number Diff line change
@@ -1,11 +1,12 @@
from django.urls import path

from . import views
from .views import LobbyListView
from .views import LobbyCreateView, LobbyListView

urlpatterns = [
# lobbies
path("lobby/", LobbyListView.as_view(), name="lobby-list"),
path("lobby/create/", LobbyCreateView.as_view(), name="lobby-create"),
path("lobby/<int:pk>/", views.ViewLobbyDetails.as_view(), name="lobby-details"),
path("lobby/<int:pk>/join", views.lobby_join, name="lobby-join"),
path("lobby/<int:pk>/leave", views.lobby_leave, name="lobby-leave"),
Expand Down
15 changes: 14 additions & 1 deletion src/chigame/games/views.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,12 +2,13 @@

from django.contrib import messages
from django.contrib.auth.decorators import login_required
from django.contrib.auth.mixins import UserPassesTestMixin
from django.contrib.auth.mixins import LoginRequiredMixin, UserPassesTestMixin
from django.core.exceptions import PermissionDenied
from django.db.models import Q
from django.http import HttpResponseForbidden
from django.shortcuts import get_object_or_404, redirect, render, reverse
from django.urls import reverse_lazy
from django.utils import timezone
from django.utils.decorators import method_decorator
from django.views.generic import CreateView, DeleteView, DetailView, ListView, UpdateView
from django_tables2 import SingleTableView
Expand Down Expand Up @@ -54,6 +55,18 @@ def lobby_leave(request, pk):
return redirect(reverse("lobby-details", kwargs={"pk": lobby.id}))


class LobbyCreateView(LoginRequiredMixin, CreateView):
model = Lobby
form_class = LobbyForm
template_name = "games/lobby_form.html"
success_url = reverse_lazy("lobby-list")

def form_valid(self, form):
form.instance.created_by = self.request.user
form.instance.lobby_created = timezone.now()
return super().form_valid(form)


class ViewLobbyDetails(DetailView):
model = Lobby
template_name = "games/lobby_details.html"
Expand Down
3 changes: 3 additions & 0 deletions src/templates/base.html
Original file line number Diff line number Diff line change
Expand Up @@ -66,6 +66,9 @@
<li class="nav-item">
<a class="nav-link" href="{% url 'about' %}">About</a>
</li>
<li class="nav-item">
<a class="nav-link" href="{% url 'lobby-list' %}">Lobbies</a>
</li>
{% if request.user.is_authenticated %}
<li class="nav-item">
<a class="nav-link" href="{% url 'game-list' %}">Games</a>
Expand Down
3 changes: 3 additions & 0 deletions src/templates/games/lobby_list.html
Original file line number Diff line number Diff line change
Expand Up @@ -9,4 +9,7 @@
{% block content %}
<h1>List of Lobbies</h1>
{% render_table table %}
{% if user.is_authenticated %}
<a href="{% url 'lobby-create' %}">Create Lobby</a>
{% endif %}
{% endblock content %}

0 comments on commit 7b4d4ae

Please sign in to comment.