scrobble_archive_year.html 6.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153
  1. {% extends "base_list.html" %}
  2. {% load humanize %}
  3. {% block title %}{{name}}{% endblock %}
  4. {% block lists %}
  5. <div class="row">
  6. <div class="col-md">
  7. <div class="tab-content" id="artistTabContent">
  8. <div class="table-responsive">
  9. <table class="table table-striped table-sm">
  10. <thead>
  11. <tr>
  12. <th scope="col">Rank</th>
  13. <th scope="col">Artist</th>
  14. <th scope="col">Scrobbles</th>
  15. </tr>
  16. </thead>
  17. <tbody>
  18. {% for scrobble in object_list %}
  19. <tr>
  20. <td>{{scrobble.timestamp|naturaltime}}</td>
  21. <td><a href="{{scrobble.media_obj.get_absolute_url}}">{{scrobble.media_obj}}</a></td>
  22. <td>{{scrobble.media_type}}</td>
  23. </tr>
  24. {% endfor %}
  25. </tbody>
  26. </table>
  27. </div>
  28. </div>
  29. </div>
  30. {% if track_charts %}
  31. <div class="col-md">
  32. <div class="tab-content" id="artistTabContent">
  33. <div class="table-responsive">
  34. <table class="table table-striped table-sm">
  35. <thead>
  36. <tr>
  37. <th scope="col">Rank</th>
  38. <th scope="col">Track</th>
  39. <th scope="col">Scrobbles</th>
  40. </tr>
  41. </thead>
  42. <tbody>
  43. {% for chart in track_charts %}
  44. <tr>
  45. <td>{{chart.rank}}</td>
  46. <td><a href="{{chart.media_obj.get_absolute_url}}">{{chart.media_obj.title}}</a></td>
  47. <td>{{chart.count}}</td>
  48. </tr>
  49. {% endfor %}
  50. </tbody>
  51. </table>
  52. </div>
  53. </div>
  54. </div>
  55. {% endif %}
  56. {% if current_artist_charts %}
  57. <div class="col-md">
  58. <h2>Top Artists</h2>
  59. <ul class="nav nav-tabs" id="artistTab" role="tablist">
  60. {% for chart_name in current_artist_charts.keys %}
  61. <li class="nav-item" role="presentation">
  62. <button class="nav-link {% if forloop.first %}active{% endif %}" id="artist-{{chart_name}}-tab"
  63. data-bs-toggle="tab" data-bs-target="#artist-{{chart_name}}" type="button" role="tab"
  64. aria-controls="home" aria-selected="true">
  65. {% if chart_name == "all" %}All Time{% else %}{% if chart_name != "today" %}This {% endif %}
  66. %}{{chart_name|capfirst}}{% endif %}
  67. </button>
  68. </li>
  69. {% endfor %}
  70. </ul>
  71. <div class="tab-content" id="artistTabContent">
  72. {% for chart_name, artists in current_artist_charts.items %}
  73. <div class="tab-pane fade {% if forloop.first %}show active{% endif %}" id="artist-{{chart_name}}"
  74. role="tabpanel" aria-labelledby="artist-{[chart}}-tab">
  75. <div class="table-responsive">
  76. <table class="table table-striped table-sm">
  77. <thead>
  78. <tr>
  79. <th scope="col">Artist</th>
  80. <th scope="col">Scrobbles</th>
  81. </tr>
  82. </thead>
  83. <tbody>
  84. {% for artist in artists %}
  85. <tr>
  86. <td><a href="{{artist.get_absolute_url}}">{{artist}}</a></td>
  87. <td>{{artist.num_scrobbles}}</td>
  88. </tr>
  89. {% endfor %}
  90. </tbody>
  91. </table>
  92. </div>
  93. </div>
  94. {% endfor %}
  95. </div>
  96. {% endif %}
  97. </div>
  98. {% if current_track_charts %}
  99. <div class="col-md">
  100. <h2>Top Tracks</h2>
  101. <ul class="nav nav-tabs" id="artistTab" role="tablist">
  102. {% for chart_name in current_track_charts.keys %}
  103. <li class="nav-item" role="presentation">
  104. <button class="nav-link {% if forloop.first %}active{% endif %}" id="track-{{chart_name}}-tab"
  105. data-bs-toggle="tab" data-bs-target="#track-{{chart_name}}" type="button" role="tab"
  106. aria-controls="home" aria-selected="true">
  107. {% if chart_name == "all" %}All Time{% else %}{% if chart_name != "today" %}This {% endif %}
  108. %}{{chart_name|capfirst}}{% endif %}
  109. </button>
  110. </li>
  111. {% endfor %}
  112. </ul>
  113. <div class="tab-content" id="trackTabContent">
  114. {% for chart_name, tracks in current_track_charts.items %}
  115. <div class="tab-pane fade {% if forloop.first %}show active{% endif %}" id="track-{{chart_name}}"
  116. role="tabpanel" aria-labelledby="track-{[chart_name}}-tab">
  117. <div class="table-responsive">
  118. <table class="table table-striped table-sm">
  119. <thead>
  120. <tr>
  121. <th scope="col">Track</th>
  122. <th scope="col">Artist</th>
  123. <th scope="col">Scrobbles</th>
  124. </tr>
  125. </thead>
  126. <tbody>
  127. {% for track in tracks %}
  128. <tr>
  129. <td><a href="{{track.get_absolute_url}}">{{track.title}}</a></td>
  130. <td><a href="{{track.artist.get_absolute_url}}">{{track.artist}}</a></td>
  131. <td>{{track.num_scrobbles}}</td>
  132. </tr>
  133. {% endfor %}
  134. </tbody>
  135. </table>
  136. </div>
  137. </div>
  138. {% endfor %}
  139. </div>
  140. </div>
  141. {% endif %}
  142. </div>
  143. {% endblock %}