Skip to content

Commit 32f17fa

Browse files
committed
Add decorator to silence templatetags if 'PROJECT_HOME_NAMESPACE' is not defined in settings
1 parent 2007abe commit 32f17fa

File tree

1 file changed

+31
-22
lines changed

1 file changed

+31
-22
lines changed
Lines changed: 31 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,5 @@
1+
from functools import wraps
2+
13
from django import template
24
from django.conf import settings
35
from django.urls import reverse
@@ -14,39 +16,46 @@ def home_url():
1416
return None
1517

1618

19+
def silence_without_namespace(f):
20+
@wraps(f)
21+
def wrapped(label=None):
22+
if not home_namespace:
23+
return ''
24+
if label:
25+
return f(label)
26+
else:
27+
return f()
28+
return wrapped
29+
30+
1731
@register.simple_tag
18-
def project_home_url():
32+
@silence_without_namespace
33+
def project_home_url(*args):
1934
url = home_url()
2035
if url:
2136
return url
22-
else:
23-
return ''
2437

2538

2639
@register.simple_tag
40+
@silence_without_namespace
2741
def project_home_breadcrumb_bs3(label):
28-
if home_namespace:
29-
url = home_url()
30-
if url:
31-
return format_html(
32-
'<li><a href="{}">{}</a></li>', url, label)
33-
else:
34-
return format_html('<li>{}</li>', label)
42+
url = home_url()
43+
if url:
44+
return format_html(
45+
'<li><a href="{}">{}</a></li>', url, label)
3546
else:
36-
return ''
47+
return format_html('<li>{}</li>', label)
3748

3849

3950
@register.simple_tag
51+
@silence_without_namespace
4052
def project_home_breadcrumb_bs4(label):
41-
if home_namespace:
42-
url = home_url()
43-
if url:
44-
return format_html(
45-
'<li class="breadcrumb-item" aria-label="breadcrumb"><a href="{}">{}</a></li>',
46-
url, label)
47-
else:
48-
return format_html(
49-
'<li class="breadcrumb-item" aria-label="breadcrumb">{}</li>',
50-
label)
53+
url = home_url()
54+
if url:
55+
return format_html(
56+
'<li class="breadcrumb-item" aria-label="breadcrumb"><a href="{}">{}</a></li>',
57+
url, label)
5158
else:
52-
return ''
59+
return format_html(
60+
'<li class="breadcrumb-item" aria-label="breadcrumb">{}</li>',
61+
label)

0 commit comments

Comments
 (0)