from django import template
from places.models import City

register = template.Library()


@register.simple_tag
def get_cities():
    return City.objects.all().order_by('name')


@register.filter
def stars(score):
    """Return a list of 5 'f'(filled)/'e'(empty) markers from a 0..1 score."""
    try:
        s = float(score)
    except (TypeError, ValueError):
        s = 0.0
    if s >= 0.8:
        n = 5
    elif s >= 0.6:
        n = 4
    elif s >= 0.4:
        n = 3
    elif s >= 0.2:
        n = 2
    else:
        n = 1
    return ['f'] * n + ['e'] * (5 - n)
