Pārlūkot izejas kodu

Clean up templates a bunch

Colin Powell 3 gadi atpakaļ
vecāks
revīzija
3042cc2125

+ 3 - 0
games/models.py

@@ -64,6 +64,9 @@ class GameSystem(BaseModel):
         max_length=50,
     )
 
+    def get_absolute_url(self):
+        return reverse("games:game_system_detail", args=[self.slug])
+
 
 class Game(BaseModel):
     class Region(ChoiceEnum):

+ 2 - 1
games/urls.py

@@ -3,11 +3,12 @@ from games.api.views import GameViewSet
 from rest_framework import routers
 
 # importing views from views..py
-from .views import GameList, GameDetail
+from .views import GameList, GameDetail, GameSystemDetail
 
 app_name = "games"
 
 urlpatterns = [
     path("", GameList.as_view(), name="game_list"),
     path("<str:slug>/", GameDetail.as_view(), name="game_detail"),
+    path("system/<str:slug>/", GameSystemDetail.as_view(), name="game_system_detail"),
 ]

+ 5 - 1
games/views.py

@@ -2,7 +2,7 @@ from django.shortcuts import render
 from django.views.generic import DetailView, ListView
 from django.views.generic.base import TemplateView
 
-from .models import Game
+from .models import Game, GameSystem
 
 
 class GameList(ListView):
@@ -11,3 +11,7 @@ class GameList(ListView):
 
 class GameDetail(DetailView):
     model = Game
+
+
+class GameSystemDetail(DetailView):
+    model = GameSystem

+ 1 - 0
templates/base.html

@@ -6,6 +6,7 @@
         <title>Emus - EmulationStation Web Interface</title>
         <meta name="description" content="">
         <meta name="viewport" content="width=device-width, initial-scale=1">
+        {% block head_extra %}{% endblock %}
 
         <link rel="apple-touch-icon" href="/apple-touch-icon.png">
         <!-- Place favicon.ico in the root directory -->

+ 27 - 14
templates/games/game_detail.html

@@ -1,23 +1,36 @@
 {% extends "base.html" %}
 {% load static %}
 
+{% block head_extra %}
+    <script type="text/javascript" src="{% static 'js/webretro/embed/embed.js' %}"></script>
+{% endblock %}
+
 {% block title %}{{object.name}}{% endblock %}
 
 {% block content %}
+    <a href="{% url "games:game_list" %}">Back to list</a>
+    <p>
     <img src={{object.marquee.url}} />
-    <img src={{object.screenshot.url}} />
-    <ul>
-        <li>{{object.game_system}}</li>
-        <li>{{object.publisher}}</li>
-        <li>{{object.developer}}</li>
-        <li>{{object.players}}</li>
-        <li><a href="{{object.rom_file.url}}">Download ROM</a></li>
-    </ul>
-    <div id="webretro-container" style="width:800px; height:600px">
-    </div>
-    <script type="text/javascript" src="{% static 'js/webretro/embed/embed.js' %}"></script>
-    <script>
-     webretroEmbed(document.getElementById("webretro-container"), "{% static 'js/webretro/index.html' %}", {system: "{{object.game_system.retropie_slug}}", rom:"{{request.scheme}}://{{request.META.HTTP_HOST}}{{object.rom_file.url}}"});
-    </script>
+    </p>
+
+    <dl>
+        <dt>Name</dt>
+        <dd>{{object.name}}</dt>
+
+        <dt>Publisher</dt>
+        <dd>{{object.publisher}}</dd>
+
+        <dt>Dveloper</dt>
+        <dd>{{object.developer}}</dd>
+
+        <dt>Players</dt>
+        <dd>{{object.players}}</dd>
+
+        <dt>ROM File</dt>
+        <dd><a href="{{object.rom_file.url}}">Download</a></dd>
+    </dl>
+
+    <div id="webretro-container" style="width:800px; height:600px"></div>
+    <script>webretroEmbed(document.getElementById("webretro-container"), "{% static 'js/webretro/index.html' %}", {system: "{{object.game_system.retropie_slug}}", rom:"{{request.scheme}}://{{request.META.HTTP_HOST}}{{object.rom_file.url}}"});</script>
 
 {% endblock %}

+ 9 - 6
templates/games/game_list.html

@@ -1,12 +1,15 @@
 {% extends "base.html" %}
 
-{% block title %}Games{% endblock %}
+{% block title %}Games Library{% endblock %}
 
 {% block content %}
-
-    <ul>
-    {% for game in object_list %}
-        <li><a href="{{game.get_absolute_url}}">{{game}}</a></li>
+{% regroup object_list by game_system as game_system_list %}
+    {% for system in game_system_list %}
+        <h2><a href="{{system.grouper.get_absolute_url}}">{{system.grouper.name}}</a></h2>
+        <ul>
+            {% for  game in system.list %}
+            <li><a href="{{game.get_absolute_url}}">{{game.name}}</a></li>
+            {% endfor %}
+        </ul>
     {% endfor %}
-    </ul>
 {% endblock %}

+ 11 - 0
templates/games/gamesystem_detail.html

@@ -0,0 +1,11 @@
+{% extends "base.html" %}
+
+{% block title %}{{object.name}}{% endblock %}
+
+{% block content %}
+    <ul>
+        {% for  game in object.game_set.all %}
+        <li><a href="{{game.get_absolute_url}}">{{game.name}}</a></li>
+        {% endfor %}
+    </ul>
+{% endblock %}