diff --git a/maloja/database/__init__.py b/maloja/database/__init__.py
index 847e5f1..4bb4834 100644
--- a/maloja/database/__init__.py
+++ b/maloja/database/__init__.py
@@ -425,6 +425,8 @@ def get_pulse(dbconn=None,**keys):
@waitfordb
def get_performance(dbconn=None,**keys):
+ separate = keys.get('separate')
+
rngs = ranges(**{k:keys[k] for k in keys if k in ["since","to","within","timerange","step","stepn","trail"]})
results = []
@@ -443,7 +445,7 @@ def get_performance(dbconn=None,**keys):
#artist = sqldb.get_artist(artist_id,dbconn=dbconn)
# ^this is the most useless line in programming history
# but I like consistency
- charts = get_charts_artists(timerange=rng,resolve_ids=False,dbconn=dbconn)
+ charts = get_charts_artists(timerange=rng,resolve_ids=False,separate=separate,dbconn=dbconn)
rank = None
for c in charts:
if c["artist_id"] == artist_id:
diff --git a/maloja/web/jinja/partials/performance.jinja b/maloja/web/jinja/partials/performance.jinja
index 558df31..12e07f4 100644
--- a/maloja/web/jinja/partials/performance.jinja
+++ b/maloja/web/jinja/partials/performance.jinja
@@ -1,6 +1,6 @@
{% import 'snippets/links.jinja' as links %}
-{% set ranges = dbc.get_performance(filterkeys,limitkeys,delimitkeys) %}
+{% set ranges = dbc.get_performance(filterkeys,limitkeys,delimitkeys,specialkeys) %}
{% set minrank = ranges|map(attribute="rank")|reject("none")|max|default(60) %}
{% set minrank = minrank + 20 %}
@@ -13,11 +13,11 @@
{{ thisrange.desc() }} |
- {{ links.link_rank(filterkeys,thisrange,rank=t.rank) }}
+ {{ links.link_rank(filterkeys,specialkeys,thisrange,rank=t.rank) }}
|
{% set prct = ((minrank+1-t.rank)*100/minrank if t.rank is not none else 0) %}
- {{ links.link_rank(filterkeys,thisrange,percent=prct,rank=t.rank) }}
+ {{ links.link_rank(filterkeys,specialkeys,thisrange,percent=prct,rank=t.rank) }}
|
diff --git a/maloja/web/jinja/performance.jinja b/maloja/web/jinja/performance.jinja
index 5ab281d..dd6c711 100644
--- a/maloja/web/jinja/performance.jinja
+++ b/maloja/web/jinja/performance.jinja
@@ -25,7 +25,9 @@
{{ filterdesc.desc(filterkeys,limitkeys,prefix='of') }}
+ {% with artistchart = True %}
{% include 'snippets/timeselection.jinja' %}
+ {% endwith %}
diff --git a/maloja/web/jinja/snippets/links.jinja b/maloja/web/jinja/snippets/links.jinja
index f90a535..67b940c 100644
--- a/maloja/web/jinja/snippets/links.jinja
+++ b/maloja/web/jinja/snippets/links.jinja
@@ -45,14 +45,14 @@
{%- endmacro %}
-{% macro link_rank(filterkeys,timerange,rank=None,percent=None) %}
+{% macro link_rank(filterkeys,specialkeys,timerange,rank=None,percent=None) %}
{% if 'track' in filterkeys %}
{% set url = mlj_uri.create_uri("/charts_tracks",{'timerange':timerange}) %}
{% elif 'album' in filterkeys %}
{% set url = mlj_uri.create_uri("/charts_albums",{'timerange':timerange}) %}
{% elif 'artist' in filterkeys %}
- {% set url = mlj_uri.create_uri("/charts_artists",{'timerange':timerange}) %}
+ {% set url = mlj_uri.create_uri("/charts_artists",{'timerange':timerange},specialkeys) %}
{% endif %}
{% set rankclass = {1:'gold',2:'silver',3:'bronze'}[rank] or "" %}
diff --git a/maloja/web/jinja/snippets/timeselection.jinja b/maloja/web/jinja/snippets/timeselection.jinja
index efd4e60..e17510f 100644
--- a/maloja/web/jinja/snippets/timeselection.jinja
+++ b/maloja/web/jinja/snippets/timeselection.jinja
@@ -62,7 +62,9 @@
{% endif %}
- {% if 'artist' in filterkeys %}
+
+ {% if ('artist' in filterkeys) and (not artistchart) %}
{% for o in xassociated %}
{% if o.replacekeys | map('compare_key_in_dicts',o.replacekeys,allkeys) | alltrue %}