from django import template
register = template.Library()

@register.filter
def sum_price(items):
    return sum(item.product.price * item.quantity for item in items)

@register.filter
def cart_total(cart):
    return sum(item['quantity'] for item in cart.values())

@register.filter
def multiply(value, arg):
    """Multiply value by arg (for cart subtotal: price * quantity)"""
    try:
        return float(value) * float(arg)
    except (ValueError, TypeError):
        return 0

@register.filter
def div(value, arg):
    """Divide value by arg"""
    try:
        return float(value) / float(arg)
    except (ValueError, TypeError, ZeroDivisionError):
        return 0