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 os.path as op
import warnings
from functools import wraps from functools import wraps
...@@ -564,7 +565,7 @@ class Admin(object): ...@@ -564,7 +565,7 @@ class Admin(object):
Link to add. Link to add.
""" """
if link.category: if link.category:
self._add_menu_item(link, link.category) self.add_menu_item(link, link.category)
else: else:
self._menu_links.append(link) self._menu_links.append(link)
...@@ -584,7 +585,15 @@ class Admin(object): ...@@ -584,7 +585,15 @@ class Admin(object):
for link in args: for link in args:
self.add_link(link) 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: if target_category:
cat_text = as_unicode(target_category) cat_text = as_unicode(target_category)
...@@ -602,6 +611,10 @@ class Admin(object): ...@@ -602,6 +611,10 @@ class Admin(object):
else: else:
self._menu.append(menu_item) 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): def _add_view_to_menu(self, view):
""" """
Add a view to the menu tree Add a view to the menu tree
...@@ -609,7 +622,7 @@ class Admin(object): ...@@ -609,7 +622,7 @@ class Admin(object):
:param view: :param view:
View to add 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): def get_category_menu_item(self, name):
return self._menu_categories.get(name) return self._menu_categories.get(name)
......
...@@ -5,11 +5,12 @@ class BaseMenu(object): ...@@ -5,11 +5,12 @@ class BaseMenu(object):
""" """
Base menu item 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.name = name
self.class_name = class_name self.class_name = class_name
self.icon_type = icon_type self.icon_type = icon_type
self.icon_value = icon_value self.icon_value = icon_value
self.target = target
self.parent = None self.parent = None
self._children = [] self._children = []
...@@ -124,8 +125,9 @@ class MenuLink(BaseMenu): ...@@ -124,8 +125,9 @@ class MenuLink(BaseMenu):
""" """
Link item Link item
""" """
def __init__(self, name, url=None, endpoint=None, category=None, class_name=None, icon_type=None, icon_value=None): def __init__(self, name, url=None, endpoint=None, category=None, class_name=None,
super(MenuLink, self).__init__(name, class_name, icon_type, icon_value) icon_type=None, icon_value=None, target=None):
super(MenuLink, self).__init__(name, class_name, icon_type, icon_value, target)
self.category = category self.category = category
......
...@@ -36,7 +36,7 @@ ...@@ -36,7 +36,7 @@
{% else %} {% else %}
<li{% if class_name %} class="{{class_name}}"{% endif %}> <li{% if class_name %} class="{{class_name}}"{% endif %}>
{%- 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> </li>
{%- endfor %} {%- endfor %}
</ul> </ul>
...@@ -50,7 +50,7 @@ ...@@ -50,7 +50,7 @@
{%- else %} {%- else %}
<li{% if class_name %} class="{{class_name}}"{% endif %}> <li{% if class_name %} class="{{class_name}}"{% endif %}>
{%- 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> </li>
{%- endif -%} {%- endif -%}
{% endif -%} {% endif -%}
......
...@@ -36,7 +36,7 @@ ...@@ -36,7 +36,7 @@
{% else %} {% else %}
<li{% if class_name %} class="{{class_name}}"{% endif %}> <li{% if class_name %} class="{{class_name}}"{% endif %}>
{%- 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> </li>
{%- endfor %} {%- endfor %}
</ul> </ul>
...@@ -50,7 +50,7 @@ ...@@ -50,7 +50,7 @@
{%- else %} {%- else %}
<li{% if class_name %} class="{{class_name}}"{% endif %}> <li{% if class_name %} class="{{class_name}}"{% endif %}>
{%- 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> </li>
{%- endif -%} {%- endif -%}
{% 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