|
@@ -1,18 +1,34 @@
|
|
|
-from django.shortcuts import render
|
|
|
+from django.db.models import F
|
|
|
from django.views.generic import DetailView, ListView
|
|
|
-from django.views.generic.base import TemplateView
|
|
|
from django.views.generic.list import MultipleObjectMixin
|
|
|
|
|
|
+from .models import Developer, Game, GameSystem, Genre, Publisher
|
|
|
|
|
|
-from .models import Game, GameSystem, Genre, Developer, Publisher
|
|
|
|
|
|
-
|
|
|
-class GameList(ListView):
|
|
|
+class RecentGameList(ListView):
|
|
|
model = Game
|
|
|
paginate_by = 20
|
|
|
queryset = Game.objects.order_by("-created")[:20]
|
|
|
|
|
|
|
|
|
+class LibraryGameList(ListView):
|
|
|
+ template_name = "games/game_library_list.html"
|
|
|
+ model = Game
|
|
|
+ paginate_by = 200
|
|
|
+
|
|
|
+ def get_context_data(self, **kwargs):
|
|
|
+ game_system_slug = self.request.GET.get("game_system")
|
|
|
+ object_list = Game.objects.order_by(F("rating").desc(nulls_last=True))
|
|
|
+ if game_system_slug:
|
|
|
+ object_list = object_list.filter(
|
|
|
+ game_system__retropie_slug=game_system_slug
|
|
|
+ )
|
|
|
+ context = super(LibraryGameList, self).get_context_data(
|
|
|
+ object_list=object_list, **kwargs
|
|
|
+ )
|
|
|
+ return context
|
|
|
+
|
|
|
+
|
|
|
class GameDetail(DetailView):
|
|
|
model = Game
|
|
|
|