Changeset - 2d469bb39893
[Not reviewed]
0 1 0
Christopher Neugebauer - 8 years ago 2016-09-20 04:04:38
chrisjrn@gmail.com
One more addition.
1 file changed with 19 insertions and 5 deletions:
0 comments (0 inline, 0 general)
registrasion/reporting/views.py
Show inline comments
...
 
@@ -535,6 +535,7 @@ def attendee_data(request, form, user_id=None):
 
    for profile in profiles:
 
        by_user[profile.attendee.user] = profile
 

	
 
    # Group the responses per-field.
 
    for field in fields:
 
        field_verbose = AttendeeProfile._meta.get_field(field).verbose_name
 

	
...
 
@@ -544,18 +545,31 @@ def attendee_data(request, form, user_id=None):
 
        product_name = product + "__name"
 
        category_name = product + "__category__name"
 

	
 
        status_count = lambda status: Case(When(
 
                attendee__user__cart__status=status,
 
                then=Value(1),
 
            ),
 
            default=Value(0),
 
            output_field=models.fields.IntegerField(),
 
        )
 
        paid_count = status_count(commerce.Cart.STATUS_PAID)
 
        unpaid_count = status_count(commerce.Cart.STATUS_ACTIVE)
 

	
 
        p = profiles.order_by(product, field).values(
 
            cart_status, product, product_name, category_name, field
 
        ).annotate(count=Count("id"))
 
            product, product_name, category_name, field
 
        ).annotate(
 
            paid_count=Sum(paid_count),
 
            unpaid_count=Sum(unpaid_count),
 
        )
 
        output.append(ListReport(
 
            "Grouped by %s" % field_verbose,
 
            ["Product", "Status", field_verbose, "count"],
 
            ["Product", field_verbose, "paid", "unpaid"],
 
            [
 
                (
 
                    "%s - %s" % (i[category_name], i[product_name]),
 
                    status_display[i[cart_status]],
 
                    i[field],
 
                    i["count"] or 0,
 
                    i["paid_count"] or 0,
 
                    i["unpaid_count"] or 0,
 
                )
 
                for i in p
 
            ],
0 comments (0 inline, 0 general)