Coverage for /var/srv/projects/api.amasfac.comuna18.com/tmp/venv/lib/python3.9/site-packages/django/contrib/admin/templatetags/base.py: 41%

15 statements  

« prev     ^ index     » next       coverage.py v6.4.4, created at 2023-07-17 14:22 -0600

1from inspect import getfullargspec 

2 

3from django.template.library import InclusionNode, parse_bits 

4 

5 

6class InclusionAdminNode(InclusionNode): 

7 """ 

8 Template tag that allows its template to be overridden per model, per app, 

9 or globally. 

10 """ 

11 

12 def __init__(self, parser, token, func, template_name, takes_context=True): 

13 self.template_name = template_name 

14 params, varargs, varkw, defaults, kwonly, kwonly_defaults, _ = getfullargspec( 

15 func 

16 ) 

17 bits = token.split_contents() 

18 args, kwargs = parse_bits( 

19 parser, 

20 bits[1:], 

21 params, 

22 varargs, 

23 varkw, 

24 defaults, 

25 kwonly, 

26 kwonly_defaults, 

27 takes_context, 

28 bits[0], 

29 ) 

30 super().__init__(func, takes_context, args, kwargs, filename=None) 

31 

32 def render(self, context): 

33 opts = context["opts"] 

34 app_label = opts.app_label.lower() 

35 object_name = opts.object_name.lower() 

36 # Load template for this render call. (Setting self.filename isn't 

37 # thread-safe.) 

38 context.render_context[self] = context.template.engine.select_template( 

39 [ 

40 "admin/%s/%s/%s" % (app_label, object_name, self.template_name), 

41 "admin/%s/%s" % (app_label, self.template_name), 

42 "admin/%s" % self.template_name, 

43 ] 

44 ) 

45 return super().render(context)