from django import template

register = template.Library()


@register.filter
def attr(obj, attr_name):
    """Dynamically get attribute from object: {{ obj|attr:'field_name' }}"""
    return getattr(obj, attr_name, False)


@register.filter
def get_perm(matrix, role):
    """Get permission dict for a role: {{ matrix|get_perm:'manager' }}"""
    return matrix.get(role, {})


@register.filter
def split(value, delimiter=','):
    """Split a string: {{ 'a,b,c'|split:',' }}"""
    if not value:
        return []
    return [v.strip() for v in str(value).split(delimiter) if v.strip()]


@register.filter
def get_item(dictionary, key):
    """Dict lookup: {{ mydict|get_item:'key' }}"""
    return dictionary.get(key, False)
