Fix unregistered staff report for NULL attendees
authorMagnus Hagander <magnus@hagander.net>
Wed, 21 Feb 2018 18:07:50 +0000 (19:07 +0100)
committerMagnus Hagander <magnus@hagander.net>
Wed, 21 Feb 2018 18:07:50 +0000 (19:07 +0100)
postgresqleu/confreg/reports.py

index 345248ecba33fd9839106f0745a74199a3e16263..acf4a48bd007e90bb6426a8b719d75f55e375b8c 100644 (file)
@@ -254,7 +254,7 @@ def build_attendee_report(conference, POST):
 #
 simple_reports = {
        'unregspeaker': 'SELECT DISTINCT fullname AS "Name", u.email AS "E-mail" FROM confreg_speaker spk INNER JOIN confreg_conferencesession_speaker css ON spk.id=css.speaker_id INNER JOIN confreg_conferencesession s ON css.conferencesession_id=s.id INNER JOIN auth_user u ON u.id=spk.user_id WHERE s.conference_id=%(confid)s AND s.status=1 AND NOT EXISTS (SELECT * FROM confreg_conferenceregistration r WHERE r.conference_id=%(confid)s AND r.payconfirmedat IS NOT NULL AND r.attendee_id=spk.user_id) ORDER BY fullname',
-       'unregstaff': 'SELECT last_name, first_name, email FROM auth_user u INNER JOIN confreg_conference_staff s ON s.user_id=u.id WHERE s.conference_id=%(confid)s AND u.id NOT IN (SELECT attendee_id FROM confreg_conferenceregistration r WHERE r.conference_id=%(confid)s AND payconfirmedat IS NOT NULL) ORDER BY last_name, first_name',
+       'unregstaff': 'SELECT last_name, first_name, email FROM auth_user u INNER JOIN confreg_conference_staff s ON s.user_id=u.id WHERE s.conference_id=%(confid)s AND u.id NOT IN (SELECT attendee_id FROM confreg_conferenceregistration r WHERE r.conference_id=%(confid)s AND payconfirmedat IS NOT NULL AND attendee_id IS NOT NULL) ORDER BY last_name, first_name',
        'unconfirmspeaker': 'SELECT fullname AS "Name", u.email AS "E-mail", title AS "Title" FROM confreg_speaker spk INNER JOIN confreg_conferencesession_speaker css ON spk.id=css.speaker_id INNER JOIN confreg_conferencesession s ON css.conferencesession_id=s.id INNER JOIN auth_user u ON u.id=spk.user_id WHERE s.conference_id=%(confid)s AND s.status=3 ORDER BY fullname',
        'sessionstatus': 'SELECT ss.id AS _id, statustext AS "Status",count(*) AS "Count", NULL as "Sum" FROM confreg_conferencesession s INNER JOIN confreg_status_strings ss ON ss.id=s.status WHERE conference_id=%(confid)s GROUP BY ss.id UNION ALL SELECT 10000, statusgroup, NULL, count(*) FROM confreg_conferencesession s INNER JOIN confreg_status_strings ss ON ss.id=s.status WHERE conference_id=%(confid)s AND statusgroup IS NOT NULL GROUP BY statusgroup ORDER BY 1',
        'tshirtsizes': 'SELECT shirtsize AS "Size", count(*) AS "Num", round(count(*)*100/sum(count(*)) over ()) AS "Percent" FROM confreg_conferenceregistration r INNER JOIN confreg_shirtsize s ON s.id=r.shirtsize_id WHERE r.conference_id=%(confid)s AND payconfirmedat IS NOT NULL GROUP BY shirtsize_id, shirtsize ORDER BY shirtsize_id',