浏览代码

[templates] Cleaning up templates and datalog forms

Colin Powell 1 月之前
父节点
当前提交
a1ff82bfec

+ 0 - 1
vrobbler/apps/lifeevents/models.py

@@ -1,5 +1,4 @@
 from dataclasses import dataclass
-from typing import Optional
 from django.apps import apps
 from django.db import models
 from django.urls import reverse

+ 11 - 2
vrobbler/apps/locations/models.py

@@ -1,11 +1,13 @@
-from decimal import Decimal, getcontext
 import logging
+from dataclasses import dataclass
+from decimal import Decimal
 from typing import Dict
 
-from django.contrib.auth import get_user_model
 from django.conf import settings
+from django.contrib.auth import get_user_model
 from django.db import models
 from django.urls import reverse
+from scrobbles.dataclasses import BaseLogData, WithPeopleLogData
 from scrobbles.mixins import ScrobblableConstants, ScrobblableMixin
 
 logger = logging.getLogger(__name__)
@@ -15,6 +17,9 @@ User = get_user_model()
 GEOLOC_ACCURACY = int(getattr(settings, "GEOLOC_ACCURACY", 4))
 GEOLOC_PROXIMITY = Decimal(getattr(settings, "GEOLOC_PROXIMITY", "0.0001"))
 
+@dataclass
+class GeoLocationLogData(BaseLogData, WithPeopleLogData):
+    pass
 
 class GeoLocation(ScrobblableMixin):
     COMPLETION_PERCENT = getattr(settings, "LOCATION_COMPLETION_PERCENT", 100)
@@ -39,6 +44,10 @@ class GeoLocation(ScrobblableMixin):
             "locations:geolocation_detail", kwargs={"slug": self.uuid}
         )
 
+    @property
+    def logdata_cls(self):
+        return GeoLocationLogData
+
     @classmethod
     def find_or_create(cls, data_dict: Dict) -> "GeoLocation":
         """Given a data dict from GPSLogger, does the heavy lifting of looking up

+ 1 - 1
vrobbler/apps/moods/models.py

@@ -42,7 +42,7 @@ class Mood(ScrobblableMixin):
         return str(self.uuid)
 
     def get_absolute_url(self):
-        return reverse("moods:mood-detail", kwargs={"slug": self.uuid})
+        return reverse("moods:mood_detail", kwargs={"slug": self.uuid})
 
     @property
     def subtitle(self) -> str:

+ 2 - 2
vrobbler/apps/moods/urls.py

@@ -5,10 +5,10 @@ app_name = "moods"
 
 
 urlpatterns = [
-    path("moods/", views.MoodListView.as_view(), name="mood-list"),
+    path("moods/", views.MoodListView.as_view(), name="mood_list"),
     path(
         "moods/<slug:slug>/",
         views.MoodDetailView.as_view(),
-        name="mood-detail",
+        name="mood_detail",
     ),
 ]

+ 1 - 0
vrobbler/apps/podcasts/views.py

@@ -1,6 +1,7 @@
 from django.views import generic
 from podcasts.models import Podcast
 
+from scrobbles.views import ScrobbleableListView, ScrobbleableDetailView
 
 class PodcastListView(generic.ListView):
     model = Podcast

+ 1 - 1
vrobbler/apps/scrobbles/notifications.py

@@ -72,7 +72,7 @@ class MoodNtfyNotification(BasicNtfyNotification):
     def __init__(self, profile, **kwargs):
         super().__init__(profile)
         self.ntfy_str: str = "Would you like to check in about your mood?"
-        self.click_url = self.url_tmpl.format(path=reverse("moods:mood-list"))
+        self.click_url = self.url_tmpl.format(path=reverse("moods:mood_list"))
         self.title = "Mood Check-in!"
 
     def send(self):

+ 2 - 2
vrobbler/templates/boardgames/boardgame_detail.html

@@ -55,7 +55,7 @@
                 <thead>
                     <tr>
                         <th scope="col">Date</th>
-                        <th scope="col">Publisher</th>
+                        <th scope="col">Location</th>
                         <th scope="col">Players</th>
                     </tr>
                 </thead>
@@ -63,7 +63,7 @@
                     {% for scrobble in scrobbles.all|dictsortreversed:"timestamp" %}
                     <tr>
                         <td><a href={{scrobble.get_absolute_url}}>{{scrobble.local_timestamp}}</a></td>
-                        <td>{{scrobble.media_obj.publisher}}</td>
+                        <td>{{scrobble.logdata.location }}</td>
                         <td>{% if scrobble.logdata.player_log %}{{scrobble.logdata.player_log}}{% else %}No data{% endif %}</td>
                     </tr>
                     {% endfor %}

+ 4 - 0
vrobbler/templates/foods/food_detail.html

@@ -17,12 +17,16 @@
             <thead>
                 <tr>
                     <th scope="col">Date</th>
+                    <th scope="col">Calories</th>
+                    <th scope="col">Notes</th>
                 </tr>
             </thead>
             <tbody>
                 {% for scrobble in scrobbles.all %}
                 <tr>
                         <td><a href={{scrobble.get_absolute_url}}>{{scrobble.local_timestamp}}</a></td>
+                        <td>{% if scrobble.logdata.calories %}{{scrobble.logdata.calories}}{% else %}{{scrobble.media_obj.calories}}{% endif %}</td>
+                        <td>{% for note in scrobble.logdata.notes %}{{note}}{% if not forloop.last %}; {% endif%}{% endfor %}
                 </tr>
                 {% endfor %}
             </tbody>

+ 5 - 1
vrobbler/templates/locations/geolocation_detail.html

@@ -57,12 +57,16 @@
                 <thead>
                     <tr>
                         <th scope="col">Date</th>
+                        <th scope="col">With</th>
+                        <th scope="col">Notes</th>
                     </tr>
                 </thead>
                 <tbody>
-                    {% for scrobble in scrobbles.all|dictsortreversed:"timestamp" %}
+                    {% for scrobble in object.scrobble_set.all|dictsortreversed:"timestamp" %}
                     <tr>
                         <td><a href={{scrobble.get_absolute_url}}>{{scrobble.local_timestamp}}</a></td>
+                        <td>{% for person in scrobble.logdata.with_people%}{{person}}{% if not forloop.last %}, {% endif%}{% endfor %}</td>
+                        <td>{% for note in scrobble.logdata.notes %}{{note}}{% if not forloop.last %}; {% endif%}{% endfor %}
                     </tr>
                     {% endfor %}
                 </tbody>

+ 5 - 5
vrobbler/templates/podcasts/podcast_list.html

@@ -1,5 +1,6 @@
 {% extends "base_list.html" %}
 
+{% block title %}Podcasts{% endblock %}
 {% block lists %}
 <div class="row">
     <div class="col-md">
@@ -7,20 +8,19 @@
             <table class="table table-striped table-sm">
                 <thead>
                     <tr>
-                        <th scope="col">Series</th>
                         <th scope="col">Episode</th>
+                        <th scope="col">Podcast</th>
                         <th scope="col">Scrobbles</th>
-                        <th scope="col">All time</th>
                     </tr>
                 </thead>
                 <tbody>
-                    {% for obj in object_list %}
-                    {% for episode in obj.episode_set.all %}
+                    {% for obj in object_list.all %}
+                        {{obj.episodes}}
+                    {% for episode in obj.podcastepisode_set.all %}
                     <tr>
                         <td><a href="{{episode.get_absolute_url}}">{{episode}}</a></td>
                         <td><a href="{{obj.get_absolute_url}}">{{obj}}</a></td>
                         <td>{{episode.scrobble_set.count}}</td>
-                        <td></td>
                     </tr>
                     {% endfor %}
                     {% endfor %}

+ 10 - 1
vrobbler/templates/scrobbles/_last_scrobbles.html

@@ -123,7 +123,7 @@
         {% include "scrobbles/_scrobble_table.html" %}
         {% endwith %}
         {% else %}
-        <p>No books today</p>
+        <p>No books read today</p>
         {% endif %}
 
         <h3><a href="{% url 'locations:geolocation_list' %}">Locations</a></h3>
@@ -135,5 +135,14 @@
         <p>No locations visited today</p>
         {% endif %}
 
+        <h3><a href="{% url 'moods:mood_list' %}">Moods</a></h3>
+        {% if Mood %}
+        {% with scrobbles=Mood count=Mood_count time=Mood_time %}
+        {% include "scrobbles/_scrobble_table.html" %}
+        {% endwith %}
+        {% else %}
+        <p>No moods felt today </p>
+        {% endif %}
+
     </div>
 </div>

+ 2 - 0
vrobbler/templates/webpages/webpage_detail.html

@@ -48,12 +48,14 @@
             <thead>
                 <tr>
                     <th scope="col">Date</th>
+                    <th scope="col">Notes</th>
                 </tr>
             </thead>
             <tbody>
                 {% for scrobble in scrobbles.all %}
                 <tr>
                     <td><a href={{scrobble.get_absolute_url}}>{{scrobble.local_timestamp}}</a></td>
+                    <td>{% for note in scrobble.logdata.notes %}{{note}}{% if not forloop.last %}; {% endif%}{% endfor %}
                 </tr>
                 {% endfor %}
             </tbody>