from django import template

register = template.Library()

@register.filter
def get_item(dictionary, key):
    """
    Get an item from a dictionary by key
    Usage: {{ my_dict|get_item:my_key }}
    """
    if dictionary is None:
        return None
    return dictionary.get(key)

@register.filter
def multiply(value, arg):
    """Multiply the value by the argument"""
    try:
        return int(value) * int(arg)
    except (ValueError, TypeError):
        return 0
        
@register.filter
def get_attribute(obj, attr):
    """
    Get an attribute from an object by name
    Usage: {{ my_obj|get_attribute:'attr_name' }}
    """
    if obj is None:
        return None
    return getattr(obj, attr, None)

    
def grade_from_gpa(gpa):
    if gpa <= 2.5:
        return "A"
    elif gpa <= 3.5:
        return "B"
    elif gpa <= 4.0:
        return "C"
    elif gpa <= 4.5:
        return "D"
    else:
        return "F"



register = template.Library()






@register.filter
def dictsortreversed(dict_items, key):
    """Sort dictionary items by a key in reverse order"""
    if not dict_items:
        return []
    return sorted(dict_items, key=lambda x: x[1].get(key, 0), reverse=True)

# @register.filter
# def get_item(dictionary, key):
#     if dictionary is None:
#         return ""
#     return dictionary.get(key, 0)

