from django.db.models import Q from django.views.generic import ListView from rest_framework import viewsets from .serializers import PlatformSerializer from .models import Game, Platform, Timeline class PlatformViewSet(viewsets.ModelViewSet): """ API endpoints that allows platforms to be edited or viewed. retrieve: Return the given platform list: Return a list of all existing platforms ordered by name. create: Create a new platform instance. """ queryset = Platform.objects.all().order_by('name') serializer_class = PlatformSerializer class GameList(ListView): model = Game context_object_name = 'non_excluded_games' template_name = 'games/index.html' queryset = Game.objects.filter( ~Q(status=Game.EXCLUDED) & Q(wish=False)).order_by('name') def get_context_data(self, **kwargs): """ Add playing games list. Add 5 last current activities from Timeline """ context = super(GameList, self).get_context_data(**kwargs) context['playing_games'] = Game.objects.filter( playing=True).order_by('name') context['last_timelines'] = Timeline.objects.filter( ~Q(item__status=Game.EXCLUDED) ).order_by( '-date')[:5] return context