Bläddra i källkod

[lifeevents] Clean up life event status with details

Colin Powell 9 månader sedan
förälder
incheckning
7fd90f8cf0
2 ändrade filer med 17 tillägg och 2 borttagningar
  1. 13 1
      vrobbler/apps/scrobbles/dataclasses.py
  2. 4 1
      vrobbler/templates/scrobbles/status.html

+ 13 - 1
vrobbler/apps/scrobbles/dataclasses.py

@@ -58,6 +58,7 @@ class BoardGameMetadata(JSONMetadata):
     difficulty: Optional[int] = None
     solo: Optional[bool] = None
     two_handed: Optional[bool] = None
+    location: Optional[str] = None
 
     def geo_location(self):
         return GeoLocation.objects.filter(id=self.geo_location_id).first()
@@ -80,11 +81,22 @@ class BookMetadata(JSONMetadata):
 
 @dataclass
 class LifeEventMetadata(JSONMetadata):
+    details = Optional[str]
     participant_user_ids: Optional[list[int]] = None
+    participant_names: Optional[list[str]] = None
     location: Optional[str] = None
     geo_location_id: Optional[int] = None
 
-    def participants(self) -> list[User]:
+    def participants(self) -> list[str]:
+        participants = []
+        if self.participant_user_ids:
+            participants += [u.full_name for u in self.participant_users]
+        if self.participant_names:
+            participants += self.participant_names
+        return participants
+
+    @property
+    def participant_users(self) -> list[User]:
         participants = []
         if self.participant_user_ids:
             for id in self.participant_user_ids:

+ 4 - 1
vrobbler/templates/scrobbles/status.html

@@ -104,6 +104,7 @@
             </div>
             {% endif %}
         </div>
+        <hr />
         <h3>Sporting</h3>
         <div class="sporting">
             {% if sporting %}
@@ -118,6 +119,7 @@
             </div>
             {% endif %}
         </div>
+        <hr />
         <h3>Browsing</h3>
         <div class="browsing">
             {% if browsing %}
@@ -132,12 +134,13 @@
             </div>
             {% endif %}
         </div>
+        <hr />
         <h3>Participating</h3>
         <div class="participating">
             {% if participating %}
             <div class="titles">
                 <p><a href="{{participating.media_obj.get_absolute_url}}">{{participating.media_obj}}</a></p>
-                {% if participating.media_obj.subtitle %}<p><em><a href="{{participating.media_obj.subtitle.get_absolute_url}}">{{participaing.media_obj.subtitle}}</a></em></p>{% endif %}
+                {% if participating.metadata.details %}<p><em>{{participaing.media_obj.details }}</em></p>{% endif %}
             </div>
             <p><small>{{participating.timestamp|naturaltime}} from {{participating.source}}</small></p>
             {% else %}