Files
@ a65b7935a9fd
Branch filter:
Location: symposion_app/registrasion/templatetags/registrasion_tags.py - annotation
a65b7935a9fd
1.6 KiB
text/x-python
Merge branch 'pluggable_profile'
c192fef491c4 c192fef491c4 36ecf7fd5489 c192fef491c4 36ecf7fd5489 c192fef491c4 c192fef491c4 c192fef491c4 36ecf7fd5489 8d66ed57150d db332da9584d c192fef491c4 c192fef491c4 c192fef491c4 c192fef491c4 36ecf7fd5489 db332da9584d 36ecf7fd5489 36ecf7fd5489 36ecf7fd5489 36ecf7fd5489 36ecf7fd5489 db332da9584d 36ecf7fd5489 36ecf7fd5489 36ecf7fd5489 36ecf7fd5489 36ecf7fd5489 36ecf7fd5489 36ecf7fd5489 36ecf7fd5489 36ecf7fd5489 36ecf7fd5489 36ecf7fd5489 db332da9584d 36ecf7fd5489 36ecf7fd5489 36ecf7fd5489 36ecf7fd5489 36ecf7fd5489 36ecf7fd5489 36ecf7fd5489 36ecf7fd5489 36ecf7fd5489 36ecf7fd5489 36ecf7fd5489 36ecf7fd5489 36ecf7fd5489 36ecf7fd5489 36ecf7fd5489 36ecf7fd5489 aa6377f4ce88 aa6377f4ce88 aa6377f4ce88 aa6377f4ce88 aa6377f4ce88 | from registrasion import models as rego
from collections import namedtuple
from django import template
from django.db.models import Sum
register = template.Library()
ProductAndQuantity = namedtuple("ProductAndQuantity", ["product", "quantity"])
@register.assignment_tag(takes_context=True)
def available_categories(context):
''' Returns all of the available product categories '''
return rego.Category.objects.all()
@register.assignment_tag(takes_context=True)
def invoices(context):
''' Returns all of the invoices that this user has. '''
return rego.Invoice.objects.filter(cart__user=context.request.user)
@register.assignment_tag(takes_context=True)
def items_pending(context):
''' Returns all of the items that this user has in their current cart,
and is awaiting payment. '''
all_items = rego.ProductItem.objects.filter(
cart__user=context.request.user,
cart__active=True,
)
return all_items
@register.assignment_tag(takes_context=True)
def items_purchased(context):
''' Returns all of the items that this user has purchased '''
all_items = rego.ProductItem.objects.filter(
cart__user=context.request.user,
cart__active=False,
)
products = set(item.product for item in all_items)
out = []
for product in products:
pp = all_items.filter(product=product)
quantity = pp.aggregate(Sum("quantity"))["quantity__sum"]
out.append(ProductAndQuantity(product, quantity))
return out
@register.filter
def multiply(value, arg):
''' Multiplies value by arg '''
return value * arg
|