Source code for intranet.apps.templatetags.forms

import logging
import re

from django import template

register = template.Library()
logger = logging.getLogger(__name__)


[docs]@register.filter def is_array_field(field): return re.match(r"^.*_(\d+)$", field.name)
[docs]@register.filter def field_array_index(field): m = re.match(r"^.*_(\d+)$", field.name) if m is not None: return int(m.groups()[0]) return None
[docs]@register.filter def field_array_size(field): m = re.match(r"^(.*)_\d+$", field.name) if m is None: return None prefix = m.groups()[0] count = 0 for field_name in field.form.fields.keys(): if re.match(r"^{}_(\d+)$".format(prefix), field_name): count += 1 return count