summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMagnus Hagander2025-12-03 22:07:17 +0000
committerMagnus Hagander2025-12-03 23:08:43 +0000
commit569a18b87e272fee43553b91e73e3ce8a8a3fbf1 (patch)
tree4470794cecc3812bd44629ca353233aa08322be7
parent9a3866ba14fa596ec14c38bf6008c9e118b1864e (diff)
Link sponsor name to sponsor details in benefit matrix
Fixes #199
-rw-r--r--postgresqleu/confsponsor/views.py14
-rw-r--r--template/confsponsor/admin_dashboard.html2
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>