Start top menu refactor, added elementtree to requirements
This commit is contained in:
@@ -8,7 +8,7 @@ from django.contrib.auth.management import create_superuser
|
|||||||
from django.dispatch import receiver
|
from django.dispatch import receiver
|
||||||
from django.db.models.signals import post_syncdb
|
from django.db.models.signals import post_syncdb
|
||||||
|
|
||||||
from navigation.api import bind_links, register_top_menu
|
from navigation.api import bind_links, register_top_menu, Link
|
||||||
|
|
||||||
from .conf import settings as common_settings
|
from .conf import settings as common_settings
|
||||||
from .utils import validate_path
|
from .utils import validate_path
|
||||||
@@ -17,18 +17,16 @@ from .utils import validate_path
|
|||||||
def has_usable_password(context):
|
def has_usable_password(context):
|
||||||
return context['request'].user.has_usable_password
|
return context['request'].user.has_usable_password
|
||||||
|
|
||||||
password_change_view = {'text': _(u'change password'), 'view': 'password_change_view', 'famfam': 'computer_key', 'condition': has_usable_password}
|
password_change_view = Link(text=_(u'change password'), view='password_change_view', sprite='computer_key', condition=has_usable_password)
|
||||||
current_user_details = {'text': _(u'user details'), 'view': 'current_user_details', 'famfam': 'vcard'}
|
current_user_details = Link(text=_(u'user details'), view='current_user_details', sprite='vcard')
|
||||||
current_user_edit = {'text': _(u'edit details'), 'view': 'current_user_edit', 'famfam': 'vcard_edit'}
|
current_user_edit = Link(text=_(u'edit details'), view='current_user_edit', sprite='vcard_edit')
|
||||||
|
about_view = Link(text=_('about'), view='about_view', sprite='information')
|
||||||
bind_links(['current_user_details', 'current_user_edit', 'password_change_view'], [current_user_details, current_user_edit, password_change_view], menu_name='secondary_menu')
|
license_view = Link(text=_('license'), view='license_view', sprite='script')
|
||||||
|
|
||||||
about_view = {'text': _('about'), 'view': 'about_view', 'famfam': 'information'}
|
|
||||||
license_view = {'text': _('license'), 'view': 'license_view', 'famfam': 'script'}
|
|
||||||
|
|
||||||
bind_links(['about_view', 'license_view'], [about_view, license_view], menu_name='secondary_menu')
|
bind_links(['about_view', 'license_view'], [about_view, license_view], menu_name='secondary_menu')
|
||||||
|
bind_links(['current_user_details', 'current_user_edit', 'password_change_view'], [current_user_details, current_user_edit, password_change_view], menu_name='secondary_menu')
|
||||||
|
|
||||||
register_top_menu('about', link={'text': _(u'about'), 'view': 'about_view', 'famfam': 'information'}, position=-1)
|
register_top_menu('about', link=Link(text=_(u'about'), view='about_view', sprite='information'), position=-1)
|
||||||
|
|
||||||
|
|
||||||
@receiver(post_syncdb, dispatch_uid='create_superuser', sender=auth_models)
|
@receiver(post_syncdb, dispatch_uid='create_superuser', sender=auth_models)
|
||||||
|
|||||||
@@ -52,7 +52,7 @@ document_index_list = Link(text= _(u'indexes'), view='document_index_list', args
|
|||||||
|
|
||||||
rebuild_index_instances = Link(text=_('rebuild indexes'), view='rebuild_index_instances', sprite='folder_page', permissions=[PERMISSION_DOCUMENT_INDEXING_REBUILD_INDEXES], description=_(u'Deletes and creates from scratch all the document indexes.'))
|
rebuild_index_instances = Link(text=_('rebuild indexes'), view='rebuild_index_instances', sprite='folder_page', permissions=[PERMISSION_DOCUMENT_INDEXING_REBUILD_INDEXES], description=_(u'Deletes and creates from scratch all the document indexes.'))
|
||||||
|
|
||||||
register_top_menu('indexes', link={'text': _('indexes'), 'sprite': 'tab', 'view': 'index_list', 'children_view_regex': [r'^index_[i,l]']})
|
register_top_menu('indexes', link=Link(text=_('indexes'), sprite='tab', view='index_list', children_view_regex=[r'^index_[i,l]']))
|
||||||
register_maintenance_links([rebuild_index_instances], namespace='document_indexing', title=_(u'Indexes'))
|
register_maintenance_links([rebuild_index_instances], namespace='document_indexing', title=_(u'Indexes'))
|
||||||
register_sidebar_template(['index_instance_list'], 'indexing_help.html')
|
register_sidebar_template(['index_instance_list'], 'indexing_help.html')
|
||||||
|
|
||||||
|
|||||||
@@ -177,7 +177,7 @@ register_model_list_columns(Document, [
|
|||||||
|
|
||||||
register_top_menu(
|
register_top_menu(
|
||||||
'documents',
|
'documents',
|
||||||
link={'famfam': 'page', 'text': _(u'documents'), 'view': 'document_list_recent'},
|
link=Link(sprite='page', text=_(u'documents'), view='document_list_recent'),
|
||||||
children_path_regex=[
|
children_path_regex=[
|
||||||
r'^documents/[^t]', r'^metadata/[^s]', r'comments', r'tags/document', r'grouping/[^s]', r'history/list/for_object/documents',
|
r'^documents/[^t]', r'^metadata/[^s]', r'comments', r'tags/document', r'grouping/[^s]', r'history/list/for_object/documents',
|
||||||
],
|
],
|
||||||
|
|||||||
@@ -32,7 +32,7 @@ bind_links([Folder], [folder_view, folder_edit, folder_delete, folder_acl_list])
|
|||||||
|
|
||||||
bind_links([Folder, 'folder_list', 'folder_create'], [folder_list, folder_create], menu_name='secondary_menu')
|
bind_links([Folder, 'folder_list', 'folder_create'], [folder_list, folder_create], menu_name='secondary_menu')
|
||||||
|
|
||||||
register_top_menu(name='folders', link={'text': _('folders'), 'famfam': 'folder_user', 'view': 'folder_list'}, children_views=['folder_list', 'folder_create', 'folder_edit', 'folder_delete', 'folder_view', 'folder_document_multiple_remove'])
|
register_top_menu(name='folders', link=Link(text=_('folders'), sprite='folder_user', view='folder_list'), children_views=['folder_list', 'folder_create', 'folder_edit', 'folder_delete', 'folder_view', 'folder_document_multiple_remove'])
|
||||||
|
|
||||||
bind_links([Document], [document_folder_list], menu_name='form_header')
|
bind_links([Document], [document_folder_list], menu_name='form_header')
|
||||||
|
|
||||||
|
|||||||
@@ -3,8 +3,7 @@ from __future__ import absolute_import
|
|||||||
from django.utils.translation import ugettext_lazy as _
|
from django.utils.translation import ugettext_lazy as _
|
||||||
from django.conf import settings
|
from django.conf import settings
|
||||||
|
|
||||||
from navigation.api import register_top_menu
|
from navigation.api import bind_links, Link, register_top_menu
|
||||||
from navigation.api import bind_links
|
|
||||||
from project_setup.api import register_setup
|
from project_setup.api import register_setup
|
||||||
from project_tools.api import register_tool
|
from project_tools.api import register_tool
|
||||||
|
|
||||||
@@ -30,16 +29,16 @@ __version_info__ = {
|
|||||||
def is_superuser(context):
|
def is_superuser(context):
|
||||||
return context['request'].user.is_staff or context['request'].user.is_superuser
|
return context['request'].user.is_staff or context['request'].user.is_superuser
|
||||||
|
|
||||||
maintenance_menu = {'text': _(u'maintenance'), 'view': 'maintenance_menu', 'famfam': 'wrench', 'icon': 'wrench.png'}
|
maintenance_menu = Link(text=_(u'maintenance'), view='maintenance_menu', sprite='wrench', icon='wrench.png')
|
||||||
statistics = {'text': _(u'statistics'), 'view': 'statistics', 'famfam': 'table', 'icon': 'blackboard_sum.png', 'condition': is_superuser, 'children_view_regex': [r'statistics']}
|
statistics = Link(text=_(u'statistics'), view='statistics', sprite='table', icon='blackboard_sum.png', condition=is_superuser, children_view_regex=[r'statistics'])
|
||||||
diagnostics = {'text': _(u'diagnostics'), 'view': 'diagnostics', 'famfam': 'pill', 'icon': 'pill.png'}
|
diagnostics = Link(text=_(u'diagnostics'), view='diagnostics', sprite='pill', icon='pill.png')
|
||||||
sentry = {'text': _(u'sentry'), 'view': 'sentry', 'famfam': 'bug', 'icon': 'bug.png', 'condition': is_superuser}
|
sentry = Link(text=_(u'sentry'), view='sentry', sprite='bug', icon='bug.png', condition=is_superuser)
|
||||||
admin_site = {'text': _(u'admin site'), 'view': 'admin:index', 'famfam': 'keyboard', 'icon': 'keyboard.png', 'condition': is_superuser}
|
admin_site = Link(text=_(u'admin site'), view='admin:index', sprite='keyboard', icon='keyboard.png', condition=is_superuser)
|
||||||
|
|
||||||
if not DISABLE_HOME_VIEW:
|
if not DISABLE_HOME_VIEW:
|
||||||
register_top_menu('home', link={'text': _(u'home'), 'view': 'home', 'famfam': 'house'}, position=0)
|
register_top_menu('home', link=Link(text=_(u'home'), view='home', sprite='house'), position=0)
|
||||||
if not SIDE_BAR_SEARCH:
|
if not SIDE_BAR_SEARCH:
|
||||||
register_top_menu('search', link={'text': _(u'search'), 'view': 'search', 'famfam': 'zoom'}, children_path_regex=[r'^search/'])
|
register_top_menu('search', link=Link(text=_(u'search'), view='search', sprite='zoom'), children_path_regex=[r'^search/'])
|
||||||
|
|
||||||
|
|
||||||
def get_version():
|
def get_version():
|
||||||
|
|||||||
@@ -0,0 +1,5 @@
|
|||||||
|
from __future__ import absolute_import
|
||||||
|
|
||||||
|
from elementtree.ElementTree import Element
|
||||||
|
|
||||||
|
main_menu = Element('root')
|
||||||
|
|||||||
@@ -7,11 +7,15 @@ import logging
|
|||||||
from django.template import (TemplateSyntaxError, Library,
|
from django.template import (TemplateSyntaxError, Library,
|
||||||
VariableDoesNotExist, Node, Variable)
|
VariableDoesNotExist, Node, Variable)
|
||||||
from django.utils.encoding import smart_str, force_unicode, smart_unicode
|
from django.utils.encoding import smart_str, force_unicode, smart_unicode
|
||||||
|
from django.core.urlresolvers import reverse, NoReverseMatch
|
||||||
|
|
||||||
|
from elementtree.ElementTree import Element, SubElement
|
||||||
|
|
||||||
#from common.utils import urlquote
|
#from common.utils import urlquote
|
||||||
|
|
||||||
from .utils import (resolve_to_name, resolve_arguments,
|
from .utils import (resolve_to_name, resolve_arguments,
|
||||||
resolve_template_variable, get_navigation_objects)
|
resolve_template_variable, get_navigation_objects)
|
||||||
|
from . import main_menu
|
||||||
|
|
||||||
object_navigation = {}
|
object_navigation = {}
|
||||||
multi_object_navigation = {}
|
multi_object_navigation = {}
|
||||||
@@ -26,6 +30,7 @@ logger = logging.getLogger(__name__)
|
|||||||
|
|
||||||
class ResolvedLink(object):
|
class ResolvedLink(object):
|
||||||
active = False
|
active = False
|
||||||
|
|
||||||
|
|
||||||
class Link(object):
|
class Link(object):
|
||||||
def __init__(self, text, view, klass=None, args=None, sprite=None, icon=None, permissions=None, condition=None, conditional_disable=None, description=None, dont_mark_active=False, children_view_regex=None, keep_query=False):
|
def __init__(self, text, view, klass=None, args=None, sprite=None, icon=None, permissions=None, condition=None, conditional_disable=None, description=None, dont_mark_active=False, children_view_regex=None, keep_query=False):
|
||||||
@@ -43,6 +48,11 @@ class Link(object):
|
|||||||
self.children_view_regex = children_view_regex
|
self.children_view_regex = children_view_regex
|
||||||
self.klass = klass
|
self.klass = klass
|
||||||
self.keep_query = keep_query
|
self.keep_query = keep_query
|
||||||
|
|
||||||
|
#
|
||||||
|
self.conditional_highlight = None
|
||||||
|
self.children_views = []
|
||||||
|
self.children_classes = []
|
||||||
|
|
||||||
def resolve(self, context):
|
def resolve(self, context):
|
||||||
request = Variable('request').resolve(context)
|
request = Variable('request').resolve(context)
|
||||||
@@ -63,6 +73,8 @@ class Link(object):
|
|||||||
if condition_result:
|
if condition_result:
|
||||||
#new_link = {}#copy.copy(link)
|
#new_link = {}#copy.copy(link)
|
||||||
resolved_link = ResolvedLink()
|
resolved_link = ResolvedLink()
|
||||||
|
resolved_link.text = self.text
|
||||||
|
resolved_link.sprite = self.sprite
|
||||||
try:
|
try:
|
||||||
#args, kwargs = resolve_arguments(context, self.get('args', {}))
|
#args, kwargs = resolve_arguments(context, self.get('args', {}))
|
||||||
args, kwargs = resolve_arguments(context, self.args)
|
args, kwargs = resolve_arguments(context, self.args)
|
||||||
@@ -171,37 +183,36 @@ def register_multi_item_links(src, links, menu_name=None):
|
|||||||
multi_object_navigation[menu_name][src]['links'].extend(links)
|
multi_object_navigation[menu_name][src]['links'].extend(links)
|
||||||
|
|
||||||
|
|
||||||
def register_top_menu(name, link, children_views=None,
|
def register_top_menu(name, link, children_views=None, children_path_regex=None, children_view_regex=None, position=None):
|
||||||
children_path_regex=None, children_view_regex=None,
|
|
||||||
position=None):
|
|
||||||
"""
|
"""
|
||||||
Register a new menu entry for the main menu displayed at the top
|
Register a new menu entry for the main menu displayed at the top
|
||||||
of the page
|
of the page
|
||||||
"""
|
"""
|
||||||
|
menu = SubElement(main_menu, name, link=link)
|
||||||
|
#entry = {'link': link, 'name': name}
|
||||||
|
#if children_views:
|
||||||
|
# entry['children_views'] = children_views
|
||||||
|
#if children_path_regex:
|
||||||
|
# entry['children_path_regex'] = children_path_regex
|
||||||
|
#if children_view_regex:
|
||||||
|
# entry['children_view_regex'] = children_view_regex
|
||||||
|
#if position is not None:
|
||||||
|
# entry['position'] = position
|
||||||
|
# top_menu_entries.insert(position, entry)
|
||||||
|
#else:
|
||||||
|
# length = len(top_menu_entries)
|
||||||
|
# entry['position'] = length
|
||||||
|
# top_menu_entries.append(entry)
|
||||||
|
|
||||||
entry = {'link': link, 'name': name}
|
#sort_menu_entries()
|
||||||
if children_views:
|
#
|
||||||
entry['children_views'] = children_views
|
#return entry
|
||||||
if children_path_regex:
|
return menu
|
||||||
entry['children_path_regex'] = children_path_regex
|
|
||||||
if children_view_regex:
|
|
||||||
entry['children_view_regex'] = children_view_regex
|
|
||||||
if position is not None:
|
|
||||||
entry['position'] = position
|
|
||||||
top_menu_entries.insert(position, entry)
|
|
||||||
else:
|
|
||||||
length = len(top_menu_entries)
|
|
||||||
entry['position'] = length
|
|
||||||
top_menu_entries.append(entry)
|
|
||||||
|
|
||||||
sort_menu_entries()
|
|
||||||
|
|
||||||
return entry
|
|
||||||
|
|
||||||
|
|
||||||
def sort_menu_entries():
|
#def sort_menu_entries():
|
||||||
global top_menu_entries
|
# global top_menu_entries
|
||||||
top_menu_entries = sorted(top_menu_entries, key=lambda k: (k['position'] < 0, k['position']))
|
# top_menu_entries = sorted(top_menu_entries, key=lambda k: (k['position'] < 0, k['position']))
|
||||||
|
|
||||||
|
|
||||||
def register_model_list_columns(model, columns):
|
def register_model_list_columns(model, columns):
|
||||||
|
|||||||
@@ -3,7 +3,7 @@
|
|||||||
{% get_main_setting "DISABLE_ICONS" as disable_icons %}
|
{% get_main_setting "DISABLE_ICONS" as disable_icons %}
|
||||||
|
|
||||||
{% if link.disabled %}
|
{% if link.disabled %}
|
||||||
<a class="{{ link.class }}" style="cursor: default;" href="#">{% if link.famfam and not disable_icons %}<span class="famfam inactive famfam-{{ link.famfam|default:'link' }}"></span>{% endif %}{{ link.text|capfirst }}{% if link.error %} - {{ link.error }}{% endif %}{% if link.active and not hide_active_anchor %}<span class="famfam active famfam-resultset_previous"></span>{% endif %}</a>{% if horizontal %}{% if not forloop.last %} | {% endif %}{% endif %}
|
<a class="{{ link.class }}" style="cursor: default;" href="#">{% if link.sprite and not disable_icons %}<span class="famfam inactive famfam-{{ link.sprite|default:'link' }}"></span>{% endif %}{{ link.text|capfirst }}{% if link.error %} - {{ link.error }}{% endif %}{% if link.active and not hide_active_anchor %}<span class="famfam active famfam-resultset_previous"></span>{% endif %}</a>{% if horizontal %}{% if not forloop.last %} | {% endif %}{% endif %}
|
||||||
{% else %}
|
{% else %}
|
||||||
<a class="{{ link.class }}" href="{{ link.url }}">{% if link.famfam and not disable_icons %}<span class="famfam active famfam-{{ link.famfam|default:'link' }}"></span>{% endif %}{{ link.text|capfirst }}{% if link.error %} - {{ link.error }}{% endif %}{% if link.active and not hide_active_anchor %}<span class="famfam active famfam-resultset_previous"></span>{% endif %}</a>{% if horizontal %}{% if not forloop.last %} | {% endif %}{% endif %}
|
<a class="{{ link.class }}" href="{{ link.url }}">{% if link.sprite and not disable_icons %}<span class="famfam active famfam-{{ link.sprite|default:'link' }}"></span>{% endif %}{{ link.text|capfirst }}{% if link.error %} - {{ link.error }}{% endif %}{% if link.active and not hide_active_anchor %}<span class="famfam active famfam-resultset_previous"></span>{% endif %}</a>{% if horizontal %}{% if not forloop.last %} | {% endif %}{% endif %}
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
|||||||
@@ -19,6 +19,7 @@ from ..api import (object_navigation, multi_object_navigation,
|
|||||||
from ..forms import MultiItemForm
|
from ..forms import MultiItemForm
|
||||||
from ..utils import (resolve_to_name, resolve_arguments, resolve_template_variable,
|
from ..utils import (resolve_to_name, resolve_arguments, resolve_template_variable,
|
||||||
get_navigation_objects)
|
get_navigation_objects)
|
||||||
|
from .. import main_menu
|
||||||
|
|
||||||
register = Library()
|
register = Library()
|
||||||
logger = logging.getLogger(__name__)
|
logger = logging.getLogger(__name__)
|
||||||
@@ -26,27 +27,25 @@ logger = logging.getLogger(__name__)
|
|||||||
|
|
||||||
class TopMenuNavigationNode(Node):
|
class TopMenuNavigationNode(Node):
|
||||||
def render(self, context):
|
def render(self, context):
|
||||||
request = Variable('request').resolve(context)
|
#request = Variable('request').resolve(context)
|
||||||
current_path = request.META['PATH_INFO']
|
#current_path = request.META['PATH_INFO']
|
||||||
current_view = resolve_to_name(current_path)
|
#current_view = resolve_to_name(current_path)
|
||||||
|
|
||||||
#all_menu_links = []#[entry.get('link', {}) for entry in top_menu_entries]
|
#all_menu_links = []#[entry.get('link', {}) for entry in top_menu_entries]
|
||||||
#menu_links = resolve_links(context, all_menu_links, current_view, current_path)
|
#menu_links = resolve_links(context, all_menu_links, current_view, current_path)
|
||||||
|
|
||||||
for index, link in enumerate(top_menu_entries):
|
#for index, link in enumerate(top_menu_entries):
|
||||||
#if current_view in link.get('children_views', []):
|
# #if current_view in link.get('children_views', []):
|
||||||
# menu_links[index]['active'] = True
|
# # menu_links[index]['active'] = True
|
||||||
|
# #for child_path_regex in link.get('children_path_regex', []):
|
||||||
#for child_path_regex in link.get('children_path_regex', []):
|
# # if re.compile(child_path_regex).match(current_path.lstrip('/')):
|
||||||
# if re.compile(child_path_regex).match(current_path.lstrip('/')):
|
# # menu_links[index]['active'] = True
|
||||||
# menu_links[index]['active'] = True
|
# #for children_view_regex in link.get('children_view_regex', []):
|
||||||
|
# # if re.compile(children_view_regex).match(current_view):
|
||||||
#for children_view_regex in link.get('children_view_regex', []):
|
# # menu_links[index]['active'] = True
|
||||||
# if re.compile(children_view_regex).match(current_view):
|
# pass
|
||||||
# menu_links[index]['active'] = True
|
#context['menu_links'] = []#menu_links
|
||||||
pass
|
context['menu_links'] = [menu.get('link').resolve(context) for menu in main_menu.getchildren()]
|
||||||
|
|
||||||
context['menu_links'] = []#menu_links
|
|
||||||
return ''
|
return ''
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -1,5 +1,7 @@
|
|||||||
from __future__ import absolute_import
|
from __future__ import absolute_import
|
||||||
|
|
||||||
|
import logging
|
||||||
|
|
||||||
from django.core.urlresolvers import RegexURLResolver, RegexURLPattern, Resolver404, get_resolver
|
from django.core.urlresolvers import RegexURLResolver, RegexURLPattern, Resolver404, get_resolver
|
||||||
|
|
||||||
from django.template import (TemplateSyntaxError, Library,
|
from django.template import (TemplateSyntaxError, Library,
|
||||||
@@ -7,6 +9,8 @@ from django.template import (TemplateSyntaxError, Library,
|
|||||||
from django.utils.text import unescape_string_literal
|
from django.utils.text import unescape_string_literal
|
||||||
|
|
||||||
#__all__ = ('resolve_to_name',)
|
#__all__ = ('resolve_to_name',)
|
||||||
|
logger = logging.getLogger(__name__)
|
||||||
|
|
||||||
|
|
||||||
def get_navigation_objects(context):
|
def get_navigation_objects(context):
|
||||||
object_list = []
|
object_list = []
|
||||||
|
|||||||
@@ -17,9 +17,9 @@ from .utils import resolve_to_name
|
|||||||
|
|
||||||
|
|
||||||
def button_navigation_widget(request, link):
|
def button_navigation_widget(request, link):
|
||||||
if 'permissions' in link:
|
if link.permissions:
|
||||||
try:
|
try:
|
||||||
Permission.objects.check_permissions(request.user, link['permissions'])
|
Permission.objects.check_permissions(request.user, link.permissions)
|
||||||
return render_widget(request, link)
|
return render_widget(request, link)
|
||||||
except PermissionDenied:
|
except PermissionDenied:
|
||||||
return u''
|
return u''
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
from django.utils.translation import ugettext_lazy as _
|
from django.utils.translation import ugettext_lazy as _
|
||||||
|
|
||||||
from navigation.api import register_top_menu
|
from navigation.api import register_top_menu, Link
|
||||||
|
|
||||||
setup_link = register_top_menu('setup_menu', link={'text': _(u'setup'), 'view': 'setup_list', 'famfam': 'cog'}, position=-2)
|
setup_menu = register_top_menu('setup_menu', link=Link(text=_(u'setup'), view='setup_list', sprite='cog'), position=-2)
|
||||||
|
|||||||
@@ -1,12 +1,15 @@
|
|||||||
from __future__ import absolute_import
|
from __future__ import absolute_import
|
||||||
|
|
||||||
from . import setup_link
|
from elementtree.ElementTree import Element, SubElement
|
||||||
|
|
||||||
setup_items = []
|
from . import setup_menu
|
||||||
|
|
||||||
|
#setup_items = []
|
||||||
|
|
||||||
|
|
||||||
def register_setup(link):
|
def register_setup(link):
|
||||||
setup_items.append(link)
|
#setup_items.append(link)
|
||||||
|
SubElement(setup_menu, 'a', link=link)
|
||||||
|
|
||||||
# Append the link's children_view_regex to the setup main menu children view regex
|
# Append the link's children_view_regex to the setup main menu children view regex
|
||||||
#setup_link.setdefault('children_view_regex', [])
|
#setup_link.setdefault('children_view_regex', [])
|
||||||
|
|||||||
@@ -6,12 +6,14 @@ from django.utils.translation import ugettext_lazy as _
|
|||||||
|
|
||||||
from navigation.widgets import button_navigation_widget
|
from navigation.widgets import button_navigation_widget
|
||||||
|
|
||||||
from .api import setup_items
|
#from .api import setup_items
|
||||||
|
from . import setup_menu
|
||||||
|
|
||||||
|
|
||||||
def setup_list(request):
|
def setup_list(request):
|
||||||
context = {
|
context = {
|
||||||
'object_list': [button_navigation_widget(request, item) for item in setup_items],
|
#'object_list': [button_navigation_widget(request, item) for item in setup_items],
|
||||||
|
'object_list': [button_navigation_widget(request, item.get('link')) for item in setup_menu.getchildren()],
|
||||||
'title': _(u'setup items'),
|
'title': _(u'setup items'),
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
from django.utils.translation import ugettext_lazy as _
|
from django.utils.translation import ugettext_lazy as _
|
||||||
|
|
||||||
from navigation.api import register_top_menu
|
from navigation.api import register_top_menu, Link
|
||||||
|
|
||||||
tool_link = register_top_menu('tools', link={'text': _(u'tools'), 'view': 'tools_list', 'famfam': 'wrench'}, position=-3)
|
tool_menu = register_top_menu('tools', link=Link(text=_(u'tools'), view='tools_list', sprite='wrench'), position=-3)
|
||||||
|
|||||||
@@ -1,12 +1,15 @@
|
|||||||
from __future__ import absolute_import
|
from __future__ import absolute_import
|
||||||
|
|
||||||
from . import tool_link
|
from elementtree.ElementTree import Element, SubElement
|
||||||
|
|
||||||
tool_items = []
|
from . import tool_menu
|
||||||
|
|
||||||
|
#tool_items = []
|
||||||
|
|
||||||
def register_tool(link):
|
def register_tool(link):
|
||||||
tool_items.append(link)
|
#tool_items.append(link)
|
||||||
|
SubElement(tool_menu, 'a', link=link)
|
||||||
|
|
||||||
# Append the link's children_view_regex to the tool main menu children view regex
|
# Append the link's children_view_regex to the tool main menu children view regex
|
||||||
#tool_link.setdefault('children_view_regex', [])
|
#tool_link.setdefault('children_view_regex', [])
|
||||||
#tool_link['children_view_regex'].extend(link.get('children_view_regex', []))
|
#tool_link['children_view_regex'].extend(link.get('children_view_regex', []))
|
||||||
|
|||||||
@@ -6,12 +6,14 @@ from django.utils.translation import ugettext_lazy as _
|
|||||||
|
|
||||||
from navigation.widgets import button_navigation_widget
|
from navigation.widgets import button_navigation_widget
|
||||||
|
|
||||||
from .api import tool_items
|
#from .api import tool_items
|
||||||
|
from . import tool_menu
|
||||||
|
|
||||||
|
|
||||||
def tools_list(request):
|
def tools_list(request):
|
||||||
context = {
|
context = {
|
||||||
'object_list': [button_navigation_widget(request, item) for item in tool_items],
|
#'object_list': [button_navigation_widget(request, item) for item in tool_items],
|
||||||
|
'object_list': [button_navigation_widget(request, item) for item in tool_menu.getchildren()],
|
||||||
'title': _(u'tools'),
|
'title': _(u'tools'),
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -1,11 +1,12 @@
|
|||||||
from django.utils.translation import ugettext_lazy as _
|
from django.utils.translation import ugettext_lazy as _
|
||||||
|
|
||||||
from project_setup.api import register_setup
|
from project_setup.api import register_setup
|
||||||
|
from navigation.api import Link
|
||||||
|
|
||||||
|
|
||||||
def is_superuser(context):
|
def is_superuser(context):
|
||||||
return context['request'].user.is_staff or context['request'].user.is_superuser
|
return context['request'].user.is_staff or context['request'].user.is_superuser
|
||||||
|
|
||||||
check_settings = {'text': _(u'settings'), 'view': 'setting_list', 'famfam': 'cog', 'icon': 'cog.png', 'condition': is_superuser, 'children_view_regex': [r'^setting_']}
|
check_settings = Link(text=_(u'settings'), view='setting_list', sprite='cog', icon='cog.png', condition=is_superuser, children_view_regex=[r'^setting_'])
|
||||||
|
|
||||||
register_setup(check_settings)
|
register_setup(check_settings)
|
||||||
|
|||||||
@@ -49,7 +49,7 @@ register_model_list_columns(Document, [
|
|||||||
bind_links([Tag], [tag_tagged_item_list, tag_edit, tag_delete, tag_acl_list])
|
bind_links([Tag], [tag_tagged_item_list, tag_edit, tag_delete, tag_acl_list])
|
||||||
register_multi_item_links(['tag_list'], [tag_multiple_delete])
|
register_multi_item_links(['tag_list'], [tag_multiple_delete])
|
||||||
bind_links([Tag, 'tag_list', 'tag_create'], [tag_list, tag_create], menu_name='secondary_menu')
|
bind_links([Tag, 'tag_list', 'tag_create'], [tag_list, tag_create], menu_name='secondary_menu')
|
||||||
register_top_menu('tags', link={'text': _(u'tags'), 'view': 'tag_list', 'famfam': 'tag_blue'}, children_view_regex=[r'^tag_(list|create|delete|edit|tagged|acl)'])
|
register_top_menu('tags', link=Link(text=_(u'tags'), view='tag_list', sprite='tag_blue'), children_view_regex=[r'^tag_(list|create|delete|edit|tagged|acl)'])
|
||||||
|
|
||||||
bind_links([Document], [tag_document_list], menu_name='form_header')
|
bind_links([Document], [tag_document_list], menu_name='form_header')
|
||||||
bind_links(['document_tags', 'tag_remove', 'tag_multiple_remove', 'tag_attach'], [tag_attach], menu_name='sidebar')
|
bind_links(['document_tags', 'tag_remove', 'tag_multiple_remove', 'tag_attach'], [tag_attach], menu_name='sidebar')
|
||||||
|
|||||||
@@ -17,3 +17,4 @@ South==0.7.3
|
|||||||
python-gnupg==0.2.8
|
python-gnupg==0.2.8
|
||||||
python-hkp==0.1.3
|
python-hkp==0.1.3
|
||||||
requests==0.10.1
|
requests==0.10.1
|
||||||
|
elementtree==1.2.7-20070827-preview
|
||||||
|
|||||||
Reference in New Issue
Block a user