Coverage for apis_core/core/templatetags/core.py: 85%

26 statements  

« prev     ^ index     » next       coverage.py v7.5.3, created at 2026-03-06 11:42 +0000

1from django import template 

2from django.conf import settings 

3 

4from apis_core import __version__ 

5 

6register = template.Library() 

7 

8 

9@register.simple_tag 

10def page_range(paginator, number): 

11 return paginator.get_elided_page_range(number=number) 

12 

13 

14@register.filter 

15def opts(obj): 

16 return obj._meta 

17 

18 

19@register.filter 

20def model_meta(content_type, field): 

21 return getattr(content_type.model_class()._meta, field) 

22 

23 

24@register.simple_tag 

25def apis_version(): 

26 return __version__ 

27 

28 

29@register.simple_tag 

30def git_repository_url(): 

31 return getattr( 

32 settings, "GIT_REPOSITORY_URL", "https://github.com/acdh-oeaw/apis-core-rdf/" 

33 ) 

34 

35 

36@register.simple_tag 

37def get_model_fields( 

38 model, include_parents=True, include_hidden=False, exclude_parent_links=True 

39): 

40 """ 

41 Return all fields from a model. 

42 This uses the Django built in `get_fields` method but also allows to exlude parent links. 

43 Parent links are the `_ptr` fields that point to a parent class. 

44 """ 

45 fields = model._meta.get_fields(include_parents, include_hidden) 

46 if exclude_parent_links: 

47 parent_links = model._meta.parents.values() 

48 fields = [field for field in fields if field not in parent_links] 

49 return fields