@@ -39,6 +39,13 @@ def kids3_2_title(request):
39
39
return "-" .join ([request .path , self .kids3_2_desired_title ])
40
40
return 'kids3-2'
41
41
42
+ self .kids3_2_desired_url = None
43
+ def kids3_2_url (request ):
44
+ "Allow the url of kids3-2 to be changed"
45
+ if self .kids3_2_desired_url is not None :
46
+ return '/' .join ([request .path , self .kids3_2_desired_url ])
47
+ return '/parent3/kids3-2'
48
+
42
49
def kids2_2_check (request ):
43
50
"Hide kids2-2 whenever the request path ends with /hidden"
44
51
if request .path .endswith ('/hidden' ):
@@ -66,7 +73,7 @@ def kids3_1(request):
66
73
67
74
kids3 = (
68
75
CustomMenuItem ("kids3-1" , "/parent3/kids3-1" , children = kids3_1 , slug = "salty" ),
69
- CustomMenuItem (kids3_2_title , "/parent3/kids3-2" )
76
+ CustomMenuItem (kids3_2_title , kids3_2_url )
70
77
)
71
78
72
79
Menu .items = {}
@@ -161,6 +168,15 @@ def test_callable_title(self):
161
168
items = Menu .process (request , 'test' )
162
169
self .assertEqual (items [1 ].children [1 ].title , "/parent3-fun" )
163
170
171
+ def test_callable_url (self ):
172
+ """
173
+ Ensure callable urls work
174
+ """
175
+ self .kids3_2_desired_url = "custom"
176
+ request = self .factory .get ('/parent3' )
177
+ items = Menu .process (request , 'test' )
178
+ self .assertEqual (items [1 ].children [1 ].url , "/parent3/custom" )
179
+
164
180
def test_select_parents (self ):
165
181
"""
166
182
Ensure the MENU_SELECT_PARENTS setting works
0 commit comments