mirror of
https://github.com/freedombox/FreedomBox.git
synced 2026-01-21 07:55:00 +00:00
menu: Lazily reverse menu item URLs
To allow for more flexibility in menu management with respect to Django initialization. Signed-off-by: Sunil Mohan Adapa <sunil@medhas.org>
This commit is contained in:
parent
dd196c504d
commit
184bced823
@ -15,7 +15,7 @@
|
||||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
#
|
||||
|
||||
from django.urls import reverse
|
||||
from django.urls import reverse, reverse_lazy
|
||||
|
||||
|
||||
class Menu(object):
|
||||
@ -51,7 +51,7 @@ class Menu(object):
|
||||
"""Return a menu item with given URL name."""
|
||||
url = reverse(urlname, args=url_args, kwargs=url_kwargs)
|
||||
for item in self.items:
|
||||
if item.url == url:
|
||||
if str(item.url) == url:
|
||||
return item
|
||||
|
||||
raise KeyError('Menu item not found')
|
||||
@ -67,7 +67,7 @@ class Menu(object):
|
||||
url_args and url_kwargs will be passed on to Django reverse().
|
||||
|
||||
"""
|
||||
url = reverse(urlname, args=url_args, kwargs=url_kwargs)
|
||||
url = reverse_lazy(urlname, args=url_args, kwargs=url_kwargs)
|
||||
return self.add_item(label, icon, url, order)
|
||||
|
||||
def add_item(self, label, icon, url, order=50):
|
||||
@ -82,5 +82,5 @@ class Menu(object):
|
||||
def active_item(self, request):
|
||||
"""Return the first active item (e.g. submenu) that is found."""
|
||||
for item in self.items:
|
||||
if request.path.startswith(item.url):
|
||||
if request.path.startswith(str(item.url)):
|
||||
return item
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user