Coverage for apis_core/entities/templatetags/entities.py: 73%
15 statements
« prev ^ index » next coverage.py v7.15.2, created at 2026-09-14 10:55 +0000
« prev ^ index » next coverage.py v7.15.2, created at 2026-09-14 10:55 +0000
1from django import template
2from django.apps import apps
3from django.contrib.contenttypes.models import ContentType
5from apis_core.entities.abc import Entity
7register = template.Library()
10def is_entity(content_type: ContentType):
11 model_class = content_type.model_class()
12 return model_class is not None and issubclass(model_class, Entity)
15@register.simple_tag
16def entities_content_types():
17 """
18 Retrieve all models which inherit from Entity class
19 and return their ContentType.
20 """
21 entities = list(
22 filter(
23 lambda content_type: is_entity(content_type),
24 ContentType.objects.all(),
25 )
26 )
27 return entities
30@register.simple_tag
31def get_entitymodels() -> list[Entity]:
32 """
33 Return a list of `Entity` models
34 """
35 return list(filter(lambda x: issubclass(x, Entity), apps.get_models()))