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

Added virtual tables and tables API endpoint #25

Closed
wants to merge 1 commit into from
Closed
Show file tree
Hide file tree
Changes from all 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
1 change: 1 addition & 0 deletions api/urls.py
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@
router.register("characters", profiles_views.PlayerCharacterViewSet)
router.register("profiles", profiles_views.ProfileViewSet)
router.register("adventures", games_views.AdventuresViewSet)
router.register("tables", games_views.TablesViewSet)
router.register("games/list", games_views.GameSessionViewSet)
router.register("games/future", games_views.FutureGameSessionViewSet)
router.register("games/past", games_views.PastGameSessionViewSet)
Expand Down
9 changes: 8 additions & 1 deletion games/api/serializers.py
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
from rest_framework import serializers

from profiles.api.serializers import PublicProfileSerializer, PublicPlayerCharacterSerializer
from ..models import Adventure, GameSession, GameSessionPlayerSignUp
from ..models import Adventure, GameSession, GameSessionPlayerSignUp, Table


class AdventureSerializer(serializers.ModelSerializer):
Expand All @@ -19,6 +19,13 @@ def get_tier(self, adventure):
return adventure.get_tier_display()


class TableSerializer(serializers.ModelSerializer):

class Meta:
model = Table
fields = ("id", "name", "virtual")


class GameSessionPlayerSignUpSerializer(serializers.ModelSerializer):
profile = PublicProfileSerializer(source="player", read_only=True)
character = PublicPlayerCharacterSerializer()
Expand Down
10 changes: 8 additions & 2 deletions games/api/views.py
Original file line number Diff line number Diff line change
Expand Up @@ -7,8 +7,8 @@

from profiles.models import PlayerCharacter
from .filters import AdventureFilter, GameSessionFilter
from .serializers import AdventureSerializer, GameSessionSerializer, GameSessionBookSerializer
from ..models import Adventure, GameSession, GameSessionPlayerSignUp
from .serializers import AdventureSerializer, GameSessionSerializer, GameSessionBookSerializer, TableSerializer
from ..models import Adventure, GameSession, GameSessionPlayerSignUp, Table


class AdventuresViewSet(mixins.ListModelMixin, mixins.RetrieveModelMixin, viewsets.GenericViewSet):
Expand All @@ -22,6 +22,12 @@ class AdventuresViewSet(mixins.ListModelMixin, mixins.RetrieveModelMixin, viewse
ordering = ("season", "number", "title")


class TablesViewSet(mixins.ListModelMixin, viewsets.GenericViewSet):
serializer_class = TableSerializer
queryset = Table.objects.all()
permission_classes = [IsAuthenticated]


class GameSessionViewSet(
mixins.ListModelMixin, mixins.RetrieveModelMixin, mixins.UpdateModelMixin, viewsets.GenericViewSet
):
Expand Down
18 changes: 18 additions & 0 deletions games/migrations/0015_table_virtual.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
# Generated by Django 2.2.9 on 2020-11-14 17:08

from django.db import migrations, models


class Migration(migrations.Migration):

dependencies = [
('games', '0014_table_extra_notes'),
]

operations = [
migrations.AddField(
model_name='table',
name='virtual',
field=models.BooleanField(default=False, verbose_name='Is only virtual'),
),
]
1 change: 1 addition & 0 deletions games/models.py
Original file line number Diff line number Diff line change
Expand Up @@ -31,6 +31,7 @@ class Table(UUIDModel):
name = models.CharField(_("Table name"), max_length=100)
extra_notes = models.TextField("Table extra notes", blank=True)
max_spots = models.PositiveIntegerField(_("Maximum spots"), default=1)
virtual = models.BooleanField(_("Is only virtual"), default=False)

class Meta:
verbose_name = _("Table")
Expand Down