import random
from pathlib import Path

from django import template
from django.db.models.fields.files import FieldFile
from django.template.defaultfilters import stringfilter

from CMSBlueprintStation.settings import STATIC_URL

register = template.Library()


@register.filter(name='in_group')
def in_group(user, group_name):
    return user.groups.filter(name=group_name).exists()


@register.filter
def to_k(value):
    """return n/1000 remove 0
    """
    return "{:.1f}".format(value / 1000).rstrip('0').rstrip('.')


@register.filter
@stringfilter
def split(string, sep):
    """Return the string split by sep.
    Example usage: {{ value|split:"/" }}
    """
    return string.split(sep)


@register.simple_tag
def bgs():
    return f"/{STATIC_URL}backgrounds/{random.randint(1, 31)}.webp"


@register.simple_tag
def loadings():
    return f"/{STATIC_URL}loading/{random.randint(1, 10)}.webp"


@register.filter
def filename(value: FieldFile):
    return Path(value.name).name
