Olivier DOSSMANN
9b0def75b7
Avec * API sur les consoles en utilisant Django Rest Framework * Tri par nom de console * Nouveaux tests sur l'API * Documentation pour l'API * Ajout d'une description au champ "name" pour Console et sa traduction * Nouvelles dépendances à coreapi et djangorestframework
46 lines
1.3 KiB
Python
46 lines
1.3 KiB
Python
from django.db.models import Q
|
|
from django.views.generic import ListView
|
|
from rest_framework import viewsets
|
|
from .serializers import ConsoleSerializer
|
|
|
|
from .models import Console, Game, Timeline
|
|
|
|
class ConsoleViewSet(viewsets.ModelViewSet):
|
|
"""
|
|
API endpoints that allows consoles to be edited or viewed.
|
|
|
|
retrieve:
|
|
Return the given console
|
|
|
|
list:
|
|
Return a list of all existing consoles ordered by name.
|
|
|
|
create:
|
|
Create a new console instance.
|
|
"""
|
|
queryset = Console.objects.all().order_by('name')
|
|
serializer_class = ConsoleSerializer
|
|
|
|
|
|
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
|