Commit 810aeae5 authored by Serge S. Koval's avatar Serge S. Koval

Minor refactoring of add_menu_item and added target to BaseMenu

parent a439e439
import os.path as op
import warnings
from functools import wraps
......@@ -564,7 +565,7 @@ class Admin(object):
Link to add.
"""
if link.category:
self._add_menu_item(link, link.category)
self.add_menu_item(link, link.category)
else:
self._menu_links.append(link)
......@@ -584,7 +585,15 @@ class Admin(object):
for link in args:
self.add_link(link)
def _add_menu_item(self, menu_item, target_category):
def add_menu_item(self, menu_item, target_category=None):
"""
Add menu item to menu tree hierarchy.
:param menu_item:
MenuItem class instance
:param target_category:
Target category name
"""
if target_category:
cat_text = as_unicode(target_category)
......@@ -602,6 +611,10 @@ class Admin(object):
else:
self._menu.append(menu_item)
def _add_menu_item(self, menu_item, target_category):
warnings.warn('Admin._add_menu_item is obsolete - use Admin.add_menu_item instead.')
return self.add_menu_item(menu_item, target_category)
def _add_view_to_menu(self, view):
"""
Add a view to the menu tree
......@@ -609,7 +622,7 @@ class Admin(object):
:param view:
View to add
"""
self._add_menu_item(MenuView(view.name, view), view.category)
self.add_menu_item(MenuView(view.name, view), view.category)
def get_category_menu_item(self, name):
return self._menu_categories.get(name)
......
......@@ -5,11 +5,12 @@ class BaseMenu(object):
"""
Base menu item
"""
def __init__(self, name, class_name=None, icon_type=None, icon_value=None):
def __init__(self, name, class_name=None, icon_type=None, icon_value=None, target=None):
self.name = name
self.class_name = class_name
self.icon_type = icon_type
self.icon_value = icon_value
self.target = target
self.parent = None
self._children = []
......@@ -124,8 +125,9 @@ class MenuLink(BaseMenu):
"""
Link item
"""
def __init__(self, name, url=None, endpoint=None, category=None, class_name=None, icon_type=None, icon_value=None):
super(MenuLink, self).__init__(name, class_name, icon_type, icon_value)
def __init__(self, name, url=None, endpoint=None, category=None, class_name=None,
icon_type=None, icon_value=None, target=None):
super(MenuLink, self).__init__(name, class_name, icon_type, icon_value, target)
self.category = category
......
......@@ -36,7 +36,7 @@
{% else %}
<li{% if class_name %} class="{{class_name}}"{% endif %}>
{%- endif %}
<a href="{{ child.get_url() }}">{{ menu_icon(child) }}{{ child.name }}</a>
<a href="{{ child.get_url() }}"{% if child.target %} target="{{ child.target }}"{% endif %}>{{ menu_icon(child) }}{{ child.name }}</a>
</li>
{%- endfor %}
</ul>
......@@ -50,7 +50,7 @@
{%- else %}
<li{% if class_name %} class="{{class_name}}"{% endif %}>
{%- endif %}
<a href="{{ item.get_url() }}">{{ menu_icon(item) }}{{ item.name }}</a>
<a href="{{ item.get_url() }}"{% if child.target %} target="{{ child.target }}"{% endif %}>{{ menu_icon(item) }}{{ item.name }}</a>
</li>
{%- endif -%}
{% endif -%}
......
......@@ -36,7 +36,7 @@
{% else %}
<li{% if class_name %} class="{{class_name}}"{% endif %}>
{%- endif %}
<a href="{{ child.get_url() }}">{{ menu_icon(child) }}{{ child.name }}</a>
<a href="{{ child.get_url() }}"{% if child.target %} target="{{ child.target }}"{% endif %}>{{ menu_icon(child) }}{{ child.name }}</a>
</li>
{%- endfor %}
</ul>
......@@ -50,7 +50,7 @@
{%- else %}
<li{% if class_name %} class="{{class_name}}"{% endif %}>
{%- endif %}
<a href="{{ item.get_url() }}">{{ menu_icon(item) }}{{ item.name }}</a>
<a href="{{ item.get_url() }}"{% if child.target %} target="{{ child.target }}"{% endif %}>{{ menu_icon(item) }}{{ item.name }}</a>
</li>
{%- endif -%}
{% endif -%}
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment