Files @ 539fa2dfdd2b
Branch filter:

Location: symposion_app/pinaxcon/templatetags/lca2019_tags.py

Joel Addison
Finalise registration

Add shirt types and sizes. Improve messaging about discounts.
Restyle ticket wizard and product category screens. Enable page titles
and messages. Update dashboard to hide raffle.
Enable inventory population for dev container.
from django import template
from django.forms import Form
import re


register = template.Library()


@register.filter
def has_required_fields(form):
    for field in form:
        if isinstance(field, Form):
            if has_required_fields(field):
                return True
        if field.field.required:
            return True
    return False


@register.filter
def has_price_fields(form):
    for field in form:
        if isinstance(field, Form):
            return has_price_fields(field)

        if '$' in field.field.help_text:
            return True

        if '$' in field.field.label:
            return True

        choices = getattr(field.field, 'choices', [])
        if choices:
            for choice_id, choice_text in choices:
                if '$' in choice_text:
                    return True

    return False


@register.filter
def any_is_void(invoices):
    for invoice in invoices:
        if invoice.is_void:
            return True
    return False


@register.simple_tag
def listlookup(lookup, target):
    try:
        return lookup[target]
    except IndexError:
        return ''


@register.filter
def clean_text(txt):
    # Remove double/triple/+ spaces from `txt` and replace with single space
    return re.sub(r' {2,}' , ' ', txt)

@register.filter
def twitter_handle(txt):
    # Add @ to twitter handle if not present
    return txt if txt.startswith('@') else '@{}'.format(txt)