diff --git a/registrasion/reporting/views.py b/registrasion/reporting/views.py index 19dd4449..3e2fa514 100644 --- a/registrasion/reporting/views.py +++ b/registrasion/reporting/views.py @@ -3,6 +3,7 @@ import forms import collections import datetime +from django.conf import settings from django.contrib.auth.decorators import user_passes_test from django.core.urlresolvers import reverse from django.db import models @@ -14,6 +15,7 @@ from django.shortcuts import render from registrasion.controllers.item import ItemController from registrasion.models import commerce from registrasion.models import people +from registrasion import util from registrasion import views from reports import get_all_reports @@ -27,6 +29,9 @@ def CURRENCY(): return models.DecimalField(decimal_places=2) +AttendeeProfile = util.get_object_from_name(settings.ATTENDEE_PROFILE_MODEL) + + @user_passes_test(views._staff_only) def reports_list(request): ''' Lists all of the reports currently available. ''' @@ -375,6 +380,22 @@ def attendee(request, form, user_id=None): reports = [] + profile_data = [] + profile = people.AttendeeProfileBase.objects.get_subclass( + attendee=attendee + ) + exclude = set(["attendeeprofilebase_ptr", "id"]) + for field in profile._meta.get_fields(): + if field.name in exclude: + # Not actually important + continue + if not hasattr(field, "verbose_name"): + continue # Not a publicly visible field + value = getattr(profile, field.name) + profile_data.append((field.verbose_name, value)) + + reports.append(ListReport("Profile", ["", ""], profile_data)) + links = [] links.append(( reverse(views.amend_registration, args=[user_id]),