[notifications] Add click to finish
This commit is contained in:
@ -67,6 +67,9 @@ class Beer(ScrobblableMixin):
|
||||
def get_absolute_url(self) -> str:
|
||||
return reverse("beers:beer_detail", kwargs={"slug": self.uuid})
|
||||
|
||||
def __str__(self):
|
||||
return f"{self.title} by {self.producer}"
|
||||
|
||||
@property
|
||||
def subtitle(self):
|
||||
return self.producer.name
|
||||
|
||||
@ -150,9 +150,6 @@ class Book(LongPlayScrobblableMixin):
|
||||
url = self.cover_medium.url
|
||||
return url
|
||||
|
||||
def get_start_url(self):
|
||||
return reverse("scrobbles:start", kwargs={"uuid": self.uuid})
|
||||
|
||||
def get_absolute_url(self):
|
||||
return reverse("books:book_detail", kwargs={"slug": self.uuid})
|
||||
|
||||
|
||||
@ -38,9 +38,6 @@ class Mood(ScrobblableMixin):
|
||||
def get_absolute_url(self):
|
||||
return reverse("moods:mood-detail", kwargs={"slug": self.uuid})
|
||||
|
||||
def get_start_url(self):
|
||||
return reverse("scrobbles:start", kwargs={"uuid": self.uuid})
|
||||
|
||||
@property
|
||||
def subtitle(self) -> str:
|
||||
return ""
|
||||
|
||||
@ -95,9 +95,14 @@ class ScrobblableMixin(TimeStampedModel):
|
||||
)
|
||||
return Scrobble.create_or_update(self, user_id, scrobble_data)
|
||||
|
||||
def get_start_url(self):
|
||||
@property
|
||||
def start_url(self):
|
||||
return reverse("scrobbles:start", kwargs={"uuid": self.uuid})
|
||||
|
||||
@property
|
||||
def finish_url(self) -> str:
|
||||
return reverse("scrobbles:finish", kwargs={"uuid": self.uuid})
|
||||
|
||||
@property
|
||||
def strings(self) -> ScrobblableConstants:
|
||||
return ScrobblableConstants()
|
||||
|
||||
@ -309,5 +309,6 @@ def send_notifications_for_scrobble(scrobble_id):
|
||||
"Title": scrobble.media_obj.strings.verb,
|
||||
"Priority": scrobble.media_obj.strings.priority,
|
||||
"Tags": scrobble.media_obj.strings.tags,
|
||||
"Click": scrobble.finish_url,
|
||||
},
|
||||
)
|
||||
|
||||
@ -169,9 +169,6 @@ class VideoGame(LongPlayScrobblableMixin):
|
||||
slug = self.title.lower().replace(" ", "-")
|
||||
return f"https://igdb.com/games/{slug}"
|
||||
|
||||
def get_start_url(self):
|
||||
return reverse("scrobbles:start", kwargs={"uuid": self.uuid})
|
||||
|
||||
@property
|
||||
def logdata_cls(self):
|
||||
return VideoGameLogData
|
||||
|
||||
@ -23,6 +23,7 @@ from videos.imdb import lookup_video_from_imdb
|
||||
logger = logging.getLogger(__name__)
|
||||
BNULL = {"blank": True, "null": True}
|
||||
|
||||
|
||||
class Channel(TimeStampedModel):
|
||||
uuid = models.UUIDField(default=uuid4, editable=False, **BNULL)
|
||||
name = models.CharField(max_length=255)
|
||||
@ -75,6 +76,7 @@ class Channel(TimeStampedModel):
|
||||
logger.warning("Not implemented yet")
|
||||
return
|
||||
|
||||
|
||||
class Series(TimeStampedModel):
|
||||
uuid = models.UUIDField(default=uuid4, editable=False, **BNULL)
|
||||
name = models.CharField(max_length=255)
|
||||
@ -223,9 +225,9 @@ class Video(ScrobblableMixin):
|
||||
|
||||
def __str__(self):
|
||||
if self.video_type == self.VideoType.TV_EPISODE:
|
||||
return f"{self.title} - {self.tv_series} - Season {self.season_number}, Episode {self.episode_number}"
|
||||
return f"{self.title} / [S{self.season_number}E{self.episode_number}] {self.tv_series}"
|
||||
if self.video_type == self.VideoType.YOUTUBE:
|
||||
return f"{self.title} - {self.channel}"
|
||||
return f"{self.title} / {self.channel}"
|
||||
return self.title
|
||||
|
||||
def get_absolute_url(self):
|
||||
|
||||
@ -14,7 +14,7 @@
|
||||
<td><a href="{{obj.get_absolute_url}}">{{obj}}</a></td>
|
||||
{% if request.user.is_authenticated %}
|
||||
<td>{{obj.scrobble_count}}</td>
|
||||
<td><a type="button" class="btn btn-sm btn-primary" href="{{obj.get_start_url}}">Scrobble</a></td>
|
||||
<td><a type="button" class="btn btn-sm btn-primary" href="{{obj.start_url}}">Scrobble</a></td>
|
||||
{% endif %}
|
||||
</tr>
|
||||
{% endfor %}
|
||||
|
||||
@ -41,7 +41,7 @@
|
||||
<div class="row">
|
||||
<p>{{object.scrobble_set.count}} scrobbles</p>
|
||||
<p>
|
||||
<a href="{{object.get_start_url}}">Drink again</a>
|
||||
<a href="{{object.start_url}}">Drink again</a>
|
||||
</p>
|
||||
</div>
|
||||
<div class="row">
|
||||
|
||||
@ -44,7 +44,7 @@
|
||||
<div class="row">
|
||||
<p>{{object.scrobble_set.count}} scrobbles</p>
|
||||
<p>
|
||||
<a href="{{object.get_start_url}}">Play again</a>
|
||||
<a href="{{object.start_url}}">Play again</a>
|
||||
</p>
|
||||
</div>
|
||||
<div class="row">
|
||||
|
||||
@ -3,7 +3,7 @@
|
||||
<dt><a href="{{media.get_absolute_url}}">{{media.title}}</a></dt>
|
||||
<dd><a href="{{media.get_absolute_url}}"><img src="{{media.primary_image_url}}" style="width: 200px; height: 200px; object-fit:cover; " /></a></dd>
|
||||
<dd>
|
||||
{% if media.is_long_play_in_progress %}Playing{% else %}<a type="button" class="btn btn-sm btn-primary" href="{{media.get_start_url}}">Resume</a>{% endif %}
|
||||
{% if media.is_long_play_in_progress %}Playing{% else %}<a type="button" class="btn btn-sm btn-primary" href="{{media.start_url}}">Resume</a>{% endif %}
|
||||
<a type="button" class="right btn btn-sm " href="{{media.get_longplay_finish_url}}">Finish</a>
|
||||
</dd>
|
||||
</dl>
|
||||
|
||||
@ -28,7 +28,7 @@
|
||||
<dd><a href="{{media.get_absolute_url}}"><img src="{{media.cover_medium.url}}" style="width: 200px; height: 200px; object-fit:cover; " /></a></dd>
|
||||
{% endif %}
|
||||
<dd>
|
||||
{% if media.is_long_play_in_progress %}Playing{% else %}<a type="button" class="btn btn-sm btn-primary" href="{{media.get_start_url}}">Resume</a>{% endif %}
|
||||
{% if media.is_long_play_in_progress %}Playing{% else %}<a type="button" class="btn btn-sm btn-primary" href="{{media.start_url}}">Resume</a>{% endif %}
|
||||
<a type="button" class="right btn btn-sm " href="{{media.get_longplay_finish_url}}">Finish</a>
|
||||
</dd>
|
||||
</dl>
|
||||
@ -55,7 +55,7 @@
|
||||
<td>{{media.scrobble_set.count}}</td>
|
||||
<td><a href="{{media.get_absolute_url}}">{{media}}</a></td>
|
||||
<td>{% if media.author %}{{media.author}}{% else %}{{media.platforms.first}}{% endif %}</td>
|
||||
<td><a type="button" class="btn btn-sm btn-primary" href="{{media.get_start_url}}">Resume</a></td>
|
||||
<td><a type="button" class="btn btn-sm btn-primary" href="{{media.start_url}}">Resume</a></td>
|
||||
<td><a type="button" class="right btn btn-sm " href="{{media.get_longplay_finish_url}}">Finish</a></td>
|
||||
</tr>
|
||||
{% endfor %}
|
||||
|
||||
@ -41,7 +41,7 @@
|
||||
<div class="row">
|
||||
<p>{{object.scrobble_set.count}} scrobbles</p>
|
||||
<p>
|
||||
<a href="{{object.get_start_url}}">Play again</a>
|
||||
<a href="{{object.start_url}}">Play again</a>
|
||||
</p>
|
||||
</div>
|
||||
<div class="row">
|
||||
|
||||
@ -41,7 +41,7 @@
|
||||
<div class="row">
|
||||
<p>{{object.scrobble_set.count}} scrobbles</p>
|
||||
<p>
|
||||
<a href="{{object.get_start_url}}">Play again</a>
|
||||
<a href="{{object.start_url}}">Play again</a>
|
||||
</p>
|
||||
</div>
|
||||
<div class="row">
|
||||
|
||||
@ -67,7 +67,7 @@
|
||||
{% if object.scrobble_set.last.long_play_complete == True %}
|
||||
<a href="">Play again</a>
|
||||
{% else %}
|
||||
<a href="{{object.get_start_url}}">Resume playing</a>
|
||||
<a href="{{object.start_url}}">Resume playing</a>
|
||||
{% endif %}
|
||||
</p>
|
||||
</div>
|
||||
|
||||
Reference in New Issue
Block a user