Coverage for apis_core/apis_entities/templatetags/apis_entities.py: 57%
21 statements
« prev ^ index » next coverage.py v7.6.4, created at 2024-11-22 07:51 +0000
« prev ^ index » next coverage.py v7.6.4, created at 2024-11-22 07:51 +0000
1from django import template
2from django.contrib.contenttypes.models import ContentType
4from apis_core.apis_entities.models import AbstractEntity
5from apis_core.apis_entities.utils import get_entity_classes
7register = template.Library()
10@register.simple_tag
11def url_replace(request, field, value):
12 dict_ = request.GET.copy()
13 dict_[field] = value
15 return dict_.urlencode()
18def is_entity(content_type: ContentType):
19 model_class = content_type.model_class()
20 return model_class is not None and issubclass(model_class, AbstractEntity)
23@register.simple_tag
24def entities_content_types():
25 """
26 Retrieve all models which inherit from AbstractEntity class
27 and return their ContentType.
28 """
29 entities = list(
30 filter(
31 lambda content_type: is_entity(content_type),
32 ContentType.objects.all(),
33 )
34 )
35 return entities
38@register.simple_tag
39def entities_verbose_name_plural_listview_url():
40 """
41 Return all entities verbose names together with their list uri, sorted in alphabetical order
42 USED BY:
43 * `core/base.html`
44 """
45 ret = {
46 entity._meta.verbose_name_plural: entity.get_listview_url()
47 for entity in get_entity_classes()
48 }
49 return sorted(ret.items())