diff options
| author | Magnus Hagander | 2025-12-03 22:07:17 +0000 |
|---|---|---|
| committer | Magnus Hagander | 2025-12-03 23:08:43 +0000 |
| commit | 569a18b87e272fee43553b91e73e3ce8a8a3fbf1 (patch) | |
| tree | 4470794cecc3812bd44629ca353233aa08322be7 | |
| parent | 9a3866ba14fa596ec14c38bf6008c9e118b1864e (diff) | |
Link sponsor name to sponsor details in benefit matrix
Fixes #199
| -rw-r--r-- | postgresqleu/confsponsor/views.py | 14 | ||||
| -rw-r--r-- | template/confsponsor/admin_dashboard.html | 2 |
2 files changed, 8 insertions, 8 deletions
diff --git a/postgresqleu/confsponsor/views.py b/postgresqleu/confsponsor/views.py index a9091d02..e1b6e158 100644 --- a/postgresqleu/confsponsor/views.py +++ b/postgresqleu/confsponsor/views.py @@ -978,7 +978,7 @@ def sponsor_admin_dashboard(request, confurlname): # Maybe we could do this with the ORM based on data we already have, but SQL is easier curs = connection.cursor() curs.execute(""" -SELECT l.levelname, s.name, b.benefitname, b.deadline, array_agg( +SELECT l.levelname, s.id, s.name, b.benefitname, b.deadline, array_agg( CASE WHEN scb.declined='t' THEN 1 WHEN scb.confirmed='f' THEN 2 WHEN scb.confirmed='t' THEN 3 ELSE 0 END ) AS status FROM confsponsor_sponsor s @@ -996,15 +996,15 @@ ORDER BY l.levelcost DESC, l.levelname, s.name, b.sortkey, b.benefitname""", {'c lastsponsor = None currentsponsor = [] firstsponsor = True - for levelname, sponsor, benefitname, deadline, status in curs.fetchall(): - if lastsponsor != sponsor: + for levelname, sponsorid, sponsor, benefitname, deadline, status in curs.fetchall(): + if lastsponsor != sponsorid: # New sponsor... if currentsponsor: # We collected some data, so store it currentmatrix.append(currentsponsor) firstsponsor = False - currentsponsor = [sponsor, ] - lastsponsor = sponsor + currentsponsor = [(sponsorid, sponsor), ] + lastsponsor = sponsorid if levelname != currentlevel: if currentlevel: benefitmatrix[currentlevel] = { @@ -1013,8 +1013,8 @@ ORDER BY l.levelcost DESC, l.levelname, s.name, b.sortkey, b.benefitname""", {'c } benefits = [] currentmatrix = [] - lastsponsor = sponsor - currentsponsor = [sponsor, ] + lastsponsor = sponsorid + currentsponsor = [(sponsorid, sponsor), ] firstsponsor = True currentlevel = levelname if firstsponsor: diff --git a/template/confsponsor/admin_dashboard.html b/template/confsponsor/admin_dashboard.html index 52cac96b..503c17dd 100644 --- a/template/confsponsor/admin_dashboard.html +++ b/template/confsponsor/admin_dashboard.html @@ -172,7 +172,7 @@ This matrix gives a quick overview of the status of the different benefits for e {%for r in level.matrix%} <tr> {%for bb in r%}<td> -{%if forloop.first%}{{bb}}{%else%}{# First in loop holds sponsor name, for the rest we have potentially several labels to show #} +{%if forloop.first%}<a href="{{bb.0}}/">{{bb.1}}</a>{%else%}{# First in loop holds sponsor name, for the rest we have potentially several labels to show #} {%for b in bb%} {%if b == 0%}{%if r.bazinga%}x{%endif%}{% arrayindex level.benefits forloop.parentloop.counter0 -1 as benefit%}{%if benefit.expired%}<span class="label label-default sponsormatrixlabel" title="Expired {{benefit.deadline}}">Expired</span>{%endif%} {%elif b == 1%}<span class="label label-danger sponsormatrixlabel">Declined</span> |
