Super hack for chart pages
This commit is contained in:
@ -458,7 +458,7 @@ class ChartRecordView(TemplateView):
|
|||||||
|
|
||||||
if not date:
|
if not date:
|
||||||
artist_params = {'user': user, 'media_type': 'Artist'}
|
artist_params = {'user': user, 'media_type': 'Artist'}
|
||||||
context_data['artist_charts'] = {
|
context_data['current_artist_charts'] = {
|
||||||
"today": live_charts(**artist_params, chart_period="today"),
|
"today": live_charts(**artist_params, chart_period="today"),
|
||||||
"week": live_charts(**artist_params, chart_period="week"),
|
"week": live_charts(**artist_params, chart_period="week"),
|
||||||
"month": live_charts(**artist_params, chart_period="month"),
|
"month": live_charts(**artist_params, chart_period="month"),
|
||||||
@ -466,7 +466,7 @@ class ChartRecordView(TemplateView):
|
|||||||
}
|
}
|
||||||
|
|
||||||
track_params = {'user': user, 'media_type': 'Track'}
|
track_params = {'user': user, 'media_type': 'Track'}
|
||||||
context_data['track_charts'] = {
|
context_data['current_track_charts'] = {
|
||||||
"today": live_charts(**track_params, chart_period="today"),
|
"today": live_charts(**track_params, chart_period="today"),
|
||||||
"week": live_charts(**track_params, chart_period="week"),
|
"week": live_charts(**track_params, chart_period="week"),
|
||||||
"month": live_charts(**track_params, chart_period="month"),
|
"month": live_charts(**track_params, chart_period="month"),
|
||||||
@ -511,21 +511,35 @@ class ChartRecordView(TemplateView):
|
|||||||
now.month == month and now.year == year and now.day == day
|
now.month == month and now.year == year and now.day == day
|
||||||
)
|
)
|
||||||
|
|
||||||
media_filter = self.get_media_filter(media_type)
|
media_filter = self.get_media_filter("Track")
|
||||||
charts = ChartRecord.objects.filter(
|
track_charts = ChartRecord.objects.filter(
|
||||||
|
media_filter, user=self.request.user, **params
|
||||||
|
).order_by("rank")
|
||||||
|
media_filter = self.get_media_filter("Artist")
|
||||||
|
artist_charts = ChartRecord.objects.filter(
|
||||||
media_filter, user=self.request.user, **params
|
media_filter, user=self.request.user, **params
|
||||||
).order_by("rank")
|
).order_by("rank")
|
||||||
|
|
||||||
if charts.count() == 0 and not in_progress:
|
if track_charts.count() == 0 and not in_progress:
|
||||||
ChartRecord.build(
|
ChartRecord.build(
|
||||||
user=self.request.user, model_str=media_type, **params
|
user=self.request.user, model_str="Track", **params
|
||||||
)
|
)
|
||||||
charts = ChartRecord.objects.filter(
|
media_filter = self.get_media_filter("Track")
|
||||||
|
track_charts = ChartRecord.objects.filter(
|
||||||
|
media_filter, user=self.request.user, **params
|
||||||
|
).order_by("rank")
|
||||||
|
if artist_charts.count() == 0 and not in_progress:
|
||||||
|
ChartRecord.build(
|
||||||
|
user=self.request.user, model_str="Artist", **params
|
||||||
|
)
|
||||||
|
media_filter = self.get_media_filter("Artist")
|
||||||
|
artist_charts = ChartRecord.objects.filter(
|
||||||
media_filter, user=self.request.user, **params
|
media_filter, user=self.request.user, **params
|
||||||
).order_by("rank")
|
).order_by("rank")
|
||||||
|
|
||||||
context_data['media_type'] = media_type
|
context_data['media_type'] = media_type
|
||||||
context_data['charts'] = charts
|
context_data['track_charts'] = track_charts
|
||||||
|
context_data['artist_charts'] = artist_charts
|
||||||
context_data['name'] = " ".join(["Top", media_type, "for", name])
|
context_data['name'] = " ".join(["Top", media_type, "for", name])
|
||||||
context_data['in_progress'] = in_progress
|
context_data['in_progress'] = in_progress
|
||||||
return context_data
|
return context_data
|
||||||
|
|||||||
@ -4,8 +4,8 @@
|
|||||||
|
|
||||||
{% block lists %}
|
{% block lists %}
|
||||||
<div class="row">
|
<div class="row">
|
||||||
{% if charts %}
|
{% if artist_charts %}
|
||||||
{% if "Artist" in name %}
|
<div class="col-md">
|
||||||
<div class="tab-content" id="artistTabContent">
|
<div class="tab-content" id="artistTabContent">
|
||||||
<div class="table-responsive">
|
<div class="table-responsive">
|
||||||
<table class="table table-striped table-sm">
|
<table class="table table-striped table-sm">
|
||||||
@ -17,7 +17,7 @@
|
|||||||
</tr>
|
</tr>
|
||||||
</thead>
|
</thead>
|
||||||
<tbody>
|
<tbody>
|
||||||
{% for chart in charts %}
|
{% for chart in artist_charts %}
|
||||||
<tr>
|
<tr>
|
||||||
<td>{{chart.rank}}</td>
|
<td>{{chart.rank}}</td>
|
||||||
<td><a href="{{chart.media_obj.get_absolute_url}}">{{chart.media_obj}}</a></td>
|
<td><a href="{{chart.media_obj.get_absolute_url}}">{{chart.media_obj}}</a></td>
|
||||||
@ -28,23 +28,25 @@
|
|||||||
</table>
|
</table>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
{% elif media_type == "Track" %}
|
</div>
|
||||||
|
{% endif %}
|
||||||
|
|
||||||
|
{% if track_charts %}
|
||||||
|
<div class="col-md">
|
||||||
<div class="tab-content" id="artistTabContent">
|
<div class="tab-content" id="artistTabContent">
|
||||||
<div class="table-responsive">
|
<div class="table-responsive">
|
||||||
<table class="table table-striped table-sm">
|
<table class="table table-striped table-sm">
|
||||||
<thead>
|
<thead>
|
||||||
<tr>
|
<tr>
|
||||||
<th scope="col">Rank</th>
|
<th scope="col">Rank</th>
|
||||||
<th scope="col">Artist</th>
|
|
||||||
<th scope="col">Track</th>
|
<th scope="col">Track</th>
|
||||||
<th scope="col">Scrobbles</th>
|
<th scope="col">Scrobbles</th>
|
||||||
</tr>
|
</tr>
|
||||||
</thead>
|
</thead>
|
||||||
<tbody>
|
<tbody>
|
||||||
{% for chart in charts %}
|
{% for chart in track_charts %}
|
||||||
<tr>
|
<tr>
|
||||||
<td>{{chart.rank}}</td>
|
<td>{{chart.rank}}</td>
|
||||||
<td><a href="{{chart.media_obj.artist.get_absolute_url}}">{{chart.media_obj.artist}}</a></td>
|
|
||||||
<td><a href="{{chart.media_obj.get_absolute_url}}">{{chart.media_obj.title}}</a></td>
|
<td><a href="{{chart.media_obj.get_absolute_url}}">{{chart.media_obj.title}}</a></td>
|
||||||
<td>{{chart.count}}</td>
|
<td>{{chart.count}}</td>
|
||||||
</tr>
|
</tr>
|
||||||
@ -53,17 +55,15 @@
|
|||||||
</table>
|
</table>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
{% elif "Video" in name %}
|
</div>
|
||||||
{% elif "Series" in name %}
|
|
||||||
{% endif %}
|
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
|
||||||
{% if artist_charts %}
|
{% if current_artist_charts %}
|
||||||
<div class="col-md">
|
<div class="col-md">
|
||||||
<h2>Top Artists</h2>
|
<h2>Top Artists</h2>
|
||||||
|
|
||||||
<ul class="nav nav-tabs" id="artistTab" role="tablist">
|
<ul class="nav nav-tabs" id="artistTab" role="tablist">
|
||||||
{% for chart_name in artist_charts.keys %}
|
{% for chart_name in current_artist_charts.keys %}
|
||||||
<li class="nav-item" role="presentation">
|
<li class="nav-item" role="presentation">
|
||||||
<button class="nav-link {% if forloop.first %}active{% endif %}" id="artist-{{chart_name}}-tab" data-bs-toggle="tab" data-bs-target="#artist-{{chart_name}}"
|
<button class="nav-link {% if forloop.first %}active{% endif %}" id="artist-{{chart_name}}-tab" data-bs-toggle="tab" data-bs-target="#artist-{{chart_name}}"
|
||||||
type="button" role="tab" aria-controls="home" aria-selected="true">
|
type="button" role="tab" aria-controls="home" aria-selected="true">
|
||||||
@ -74,7 +74,7 @@
|
|||||||
</ul>
|
</ul>
|
||||||
|
|
||||||
<div class="tab-content" id="artistTabContent">
|
<div class="tab-content" id="artistTabContent">
|
||||||
{% for chart_name, artists in artist_charts.items %}
|
{% for chart_name, artists in current_artist_charts.items %}
|
||||||
<div class="tab-pane fade {% if forloop.first %}show active{% endif %}" id="artist-{{chart_name}}" role="tabpanel"
|
<div class="tab-pane fade {% if forloop.first %}show active{% endif %}" id="artist-{{chart_name}}" role="tabpanel"
|
||||||
aria-labelledby="artist-{[chart}}-tab">
|
aria-labelledby="artist-{[chart}}-tab">
|
||||||
<div class="table-responsive">
|
<div class="table-responsive">
|
||||||
@ -101,12 +101,12 @@
|
|||||||
{% endif %}
|
{% endif %}
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
{% if track_charts %}
|
{% if current_track_charts %}
|
||||||
<div class="col-md">
|
<div class="col-md">
|
||||||
<h2>Top Tracks</h2>
|
<h2>Top Tracks</h2>
|
||||||
|
|
||||||
<ul class="nav nav-tabs" id="artistTab" role="tablist">
|
<ul class="nav nav-tabs" id="artistTab" role="tablist">
|
||||||
{% for chart_name in track_charts.keys %}
|
{% for chart_name in current_track_charts.keys %}
|
||||||
<li class="nav-item" role="presentation">
|
<li class="nav-item" role="presentation">
|
||||||
<button class="nav-link {% if forloop.first %}active{% endif %}" id="track-{{chart_name}}-tab" data-bs-toggle="tab" data-bs-target="#track-{{chart_name}}"
|
<button class="nav-link {% if forloop.first %}active{% endif %}" id="track-{{chart_name}}-tab" data-bs-toggle="tab" data-bs-target="#track-{{chart_name}}"
|
||||||
type="button" role="tab" aria-controls="home" aria-selected="true">
|
type="button" role="tab" aria-controls="home" aria-selected="true">
|
||||||
@ -117,7 +117,7 @@
|
|||||||
</ul>
|
</ul>
|
||||||
|
|
||||||
<div class="tab-content" id="trackTabContent">
|
<div class="tab-content" id="trackTabContent">
|
||||||
{% for chart_name, tracks in track_charts.items %}
|
{% for chart_name, tracks in current_track_charts.items %}
|
||||||
<div class="tab-pane fade {% if forloop.first %}show active{% endif %}" id="track-{{chart_name}}" role="tabpanel"
|
<div class="tab-pane fade {% if forloop.first %}show active{% endif %}" id="track-{{chart_name}}" role="tabpanel"
|
||||||
aria-labelledby="track-{[chart_name}}-tab">
|
aria-labelledby="track-{[chart_name}}-tab">
|
||||||
<div class="table-responsive">
|
<div class="table-responsive">
|
||||||
|
|||||||
@ -84,13 +84,12 @@
|
|||||||
<tr>
|
<tr>
|
||||||
<td>{{scrobble.timestamp|naturaltime}}</td>
|
<td>{{scrobble.timestamp|naturaltime}}</td>
|
||||||
{% if scrobble.track.album.cover_image %}
|
{% if scrobble.track.album.cover_image %}
|
||||||
<td><img src="{{scrobble.track.album.cover_image.url}}" width=25 height=25
|
<td><a href="{{scrobble.track.album.get_absolute_url}}"><img src="{{scrobble.track.album.cover_image.url}}" width=25 height=25 style="border:1px solid black;" /></aa></td>
|
||||||
style="border:1px solid black;" /></td>
|
|
||||||
{% else %}
|
{% else %}
|
||||||
<td>{{scrobble.track.album.name}}</td>
|
<td><a href="{{scrobble.track.album.get_absolute_url}}">{{scrobble.track.album.name}}</a></td>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
<td>{{scrobble.track.title}}</td>
|
<td><a href="{{scrobble.track.get_absolute_url }}">{{scrobble.track.title}}</a></td>
|
||||||
<td>{{scrobble.track.artist.name}}</td>
|
<td><a href="{{scrobble.track.artist.get_absolute_url }}">{{scrobble.track.artist.name}}</aa></td>
|
||||||
</tr>
|
</tr>
|
||||||
{% endfor %}
|
{% endfor %}
|
||||||
</tbody>
|
</tbody>
|
||||||
|
|||||||
Reference in New Issue
Block a user