Add support for drop down menu in the navigation bar. Simplify the home screen.
This commit is contained in:
@@ -22,7 +22,7 @@
|
|||||||
{% if widget.link %}
|
{% if widget.link %}
|
||||||
<a href="{{ widget.link }}">
|
<a href="{{ widget.link }}">
|
||||||
<div class="panel-footer">
|
<div class="panel-footer">
|
||||||
<span class="pull-left">{% trans 'View Details' %}</span>
|
<span class="pull-left">{% trans 'View details' %}</span>
|
||||||
<span class="pull-right"><i class="fa fa-external-link"></i></span>
|
<span class="pull-right"><i class="fa fa-external-link"></i></span>
|
||||||
<div class="clearfix"></div>
|
<div class="clearfix"></div>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@@ -6,11 +6,11 @@
|
|||||||
{% load common_tags %}
|
{% load common_tags %}
|
||||||
{% load navigation_tags %}
|
{% load navigation_tags %}
|
||||||
|
|
||||||
{% block title %}{% trans 'Home' %}{% endblock %}
|
{% block title %}{% trans 'Dashboard' %}{% endblock %}
|
||||||
|
|
||||||
{% block content %}
|
{% block content %}
|
||||||
<h3>
|
<h3>
|
||||||
{% trans 'Home' %}
|
{% trans 'Dashboard' %}
|
||||||
</h3>
|
</h3>
|
||||||
<hr>
|
<hr>
|
||||||
|
|
||||||
@@ -35,47 +35,31 @@
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
|
||||||
<div class="well center-block">
|
|
||||||
<div class="row">
|
|
||||||
{% get_menu_links 'front page menu' as resolved_links %}
|
|
||||||
{% with 'navigation/large_button_link.html' as link_template %}
|
|
||||||
{% with 'col-xs-12 col-sm-6 col-md-4 col-lg-3' as div_class %}
|
|
||||||
{% for object_navigation_links in resolved_links %}
|
|
||||||
{% include 'navigation/generic_navigation.html' %}
|
|
||||||
{% endfor %}
|
|
||||||
{% endwith %}
|
|
||||||
{% endwith %}
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="row">
|
<div class="well center-block">
|
||||||
<div class="col-xs-12">
|
<div class="row">
|
||||||
<div class="panel panel-default center-block">
|
<div class="col-xs-12">
|
||||||
<div class="panel-heading">{% trans 'Search' %}</div>
|
<form action="{% url 'search:results' search_model='documents.DocumentPageResult' %}" method="get" role="search">
|
||||||
<div class="panel-body">
|
<div class="input-group">
|
||||||
<form action="{% url 'search:results' search_model='documents.DocumentPageResult' %}" method="get" role="search">
|
<input class="form-control" name="q" placeholder="{% trans 'Search pages' %}" type="text" value="{{ search_terms|default:'' }}">
|
||||||
<div class="input-group">
|
<span class="input-group-btn">
|
||||||
<input class="form-control" name="q" placeholder="{% trans 'Search pages' %}" type="text" value="{{ search_terms|default:'' }}">
|
<button class="btn btn-default" type="submit">{% trans 'Search' %}</button>
|
||||||
<span class="input-group-btn">
|
<a class="btn btn-primary" href="{% url 'search:search_advanced' search_model='documents.DocumentPageResult' %}">{% trans 'Advanced' %}</a>
|
||||||
<button class="btn btn-default" type="submit">{% trans 'Search' %}</button>
|
</span>
|
||||||
<a class="btn btn-primary" href="{% url 'search:search_advanced' search_model='documents.DocumentPageResult' %}">{% trans 'Advanced' %}</a>
|
</div>
|
||||||
</span>
|
</form>
|
||||||
</div>
|
<br/>
|
||||||
</form>
|
<form action="{% url 'search:results' search_model='documents.Document' %}" method="get" role="search">
|
||||||
<br/>
|
<div class="input-group">
|
||||||
<form action="{% url 'search:results' search_model='documents.Document' %}" method="get" role="search">
|
<input class="form-control" name="q" placeholder="{% trans 'Search documents' %}" type="text" value="{{ search_terms|default:'' }}">
|
||||||
<div class="input-group">
|
<span class="input-group-btn">
|
||||||
<input class="form-control" name="q" placeholder="{% trans 'Search documents' %}" type="text" value="{{ search_terms|default:'' }}">
|
<button class="btn btn-default" type="submit">{% trans 'Search' %}</button>
|
||||||
<span class="input-group-btn">
|
<a class="btn btn-primary" href="{% url 'search:search_advanced' search_model='documents.Document' %}">{% trans 'Advanced' %}</a>
|
||||||
<button class="btn btn-default" type="submit">{% trans 'Search' %}</button>
|
</span>
|
||||||
<a class="btn btn-primary" href="{% url 'search:search_advanced' search_model='documents.Document' %}">{% trans 'Advanced' %}</a>
|
</div>
|
||||||
</span>
|
</form>
|
||||||
</div>
|
|
||||||
</form>
|
|
||||||
</div>
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@@ -1,5 +1,29 @@
|
|||||||
|
{% load common_tags %}
|
||||||
{% load navigation_tags %}
|
{% load navigation_tags %}
|
||||||
|
|
||||||
|
{% if link|get_type == "<class 'navigation.classes.Menu'>" %}
|
||||||
|
<li class="dropdown">
|
||||||
|
<a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-haspopup="true" aria-expanded="true">
|
||||||
|
{% if link.icon %}
|
||||||
|
<i class="{{ link.icon }}"></i>
|
||||||
|
{% endif %}
|
||||||
|
|
||||||
|
{{ link.label }}
|
||||||
|
<span class="caret"></span>
|
||||||
|
</a>
|
||||||
|
<ul class="dropdown-menu">
|
||||||
|
{% get_menu_links link.name as menu_links %}
|
||||||
|
{% for linkset in menu_links %}
|
||||||
|
{% with '' as li_class_active %}
|
||||||
|
{% with linkset as object_navigation_links %}
|
||||||
|
{% include 'navigation/generic_navigation.html' %}
|
||||||
|
{% endwith %}
|
||||||
|
{% endwith %}
|
||||||
|
{% endfor %}
|
||||||
|
</ul>
|
||||||
|
</li>
|
||||||
|
{% else %}
|
||||||
|
|
||||||
{% if as_li %}
|
{% if as_li %}
|
||||||
<li class="{% if link.active and li_class_active %}{{ li_class_active }}{% endif %}">
|
<li class="{% if link.active and li_class_active %}{{ li_class_active }}{% endif %}">
|
||||||
{% endif %}
|
{% endif %}
|
||||||
@@ -9,3 +33,5 @@
|
|||||||
{% if as_li %}
|
{% if as_li %}
|
||||||
</li>
|
</li>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
|
||||||
|
{% endif %}
|
||||||
|
|||||||
@@ -100,7 +100,7 @@ class CheckoutsApp(MayanAppConfig):
|
|||||||
)
|
)
|
||||||
|
|
||||||
menu_facet.bind_links(links=(link_checkout_info,), sources=(Document,))
|
menu_facet.bind_links(links=(link_checkout_info,), sources=(Document,))
|
||||||
menu_main.bind_links(links=(link_checkout_list,))
|
menu_main.bind_links(links=(link_checkout_list,), position=98)
|
||||||
menu_sidebar.bind_links(
|
menu_sidebar.bind_links(
|
||||||
links=(link_checkout_document, link_checkin_document),
|
links=(link_checkout_document, link_checkin_document),
|
||||||
sources=(
|
sources=(
|
||||||
|
|||||||
@@ -22,7 +22,6 @@ from .handlers import (
|
|||||||
)
|
)
|
||||||
from .links import (
|
from .links import (
|
||||||
link_about, link_current_user_details, link_current_user_edit,
|
link_about, link_current_user_details, link_current_user_edit,
|
||||||
link_current_user_locale_profile_details,
|
|
||||||
link_current_user_locale_profile_edit, link_filters, link_license,
|
link_current_user_locale_profile_edit, link_filters, link_license,
|
||||||
link_packages_licenses, link_setup, link_tools
|
link_packages_licenses, link_setup, link_tools
|
||||||
)
|
)
|
||||||
|
|||||||
@@ -3,13 +3,11 @@ from __future__ import unicode_literals
|
|||||||
from navigation import Menu
|
from navigation import Menu
|
||||||
|
|
||||||
__all__ = (
|
__all__ = (
|
||||||
'menu_facet', 'menu_front_page', 'menu_object', 'menu_main',
|
'menu_facet', 'menu_object', 'menu_main', 'menu_multi_item',
|
||||||
'menu_multi_item', 'menu_secondary', 'menu_setup', 'menu_sidebar',
|
'menu_secondary', 'menu_setup', 'menu_sidebar', 'menu_tools', 'menu_user'
|
||||||
'menu_tools', 'menu_user'
|
|
||||||
)
|
)
|
||||||
|
|
||||||
menu_facet = Menu(name='object facet')
|
menu_facet = Menu(name='object facet')
|
||||||
menu_front_page = Menu(name='front page menu')
|
|
||||||
menu_object = Menu(name='object menu')
|
menu_object = Menu(name='object menu')
|
||||||
menu_main = Menu(name='main menu')
|
menu_main = Menu(name='main menu')
|
||||||
menu_multi_item = Menu(name='multi item menu')
|
menu_multi_item = Menu(name='multi item menu')
|
||||||
|
|||||||
@@ -82,3 +82,8 @@ def build():
|
|||||||
return ''
|
return ''
|
||||||
else:
|
else:
|
||||||
return ''
|
return ''
|
||||||
|
|
||||||
|
|
||||||
|
@register.filter
|
||||||
|
def get_type(value):
|
||||||
|
return unicode(type(value))
|
||||||
|
|||||||
@@ -213,7 +213,7 @@ OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
|
|||||||
link_template_node_delete
|
link_template_node_delete
|
||||||
), sources=(IndexTemplateNode,)
|
), sources=(IndexTemplateNode,)
|
||||||
)
|
)
|
||||||
menu_main.bind_links(links=(link_index_main_menu,))
|
menu_main.bind_links(links=(link_index_main_menu,), position=98)
|
||||||
menu_secondary.bind_links(
|
menu_secondary.bind_links(
|
||||||
links=(link_index_setup_list, link_index_setup_create),
|
links=(link_index_setup_list, link_index_setup_create),
|
||||||
sources=(
|
sources=(
|
||||||
|
|||||||
@@ -11,7 +11,7 @@ from acls import ModelPermission
|
|||||||
from acls.links import link_acl_list
|
from acls.links import link_acl_list
|
||||||
from acls.permissions import permission_acl_edit, permission_acl_view
|
from acls.permissions import permission_acl_edit, permission_acl_view
|
||||||
from common import (
|
from common import (
|
||||||
MayanAppConfig, MissingItem, menu_facet, menu_front_page, menu_object,
|
MayanAppConfig, MissingItem, menu_facet, menu_main, menu_object,
|
||||||
menu_secondary, menu_setup, menu_sidebar, menu_multi_item, menu_tools
|
menu_secondary, menu_setup, menu_sidebar, menu_multi_item, menu_tools
|
||||||
)
|
)
|
||||||
from common.classes import DashboardWidget, ModelAttribute
|
from common.classes import DashboardWidget, ModelAttribute
|
||||||
@@ -59,6 +59,7 @@ from .literals import (
|
|||||||
CHECK_DELETE_PERIOD_INTERVAL, CHECK_TRASH_PERIOD_INTERVAL,
|
CHECK_DELETE_PERIOD_INTERVAL, CHECK_TRASH_PERIOD_INTERVAL,
|
||||||
DELETE_STALE_STUBS_INTERVAL
|
DELETE_STALE_STUBS_INTERVAL
|
||||||
)
|
)
|
||||||
|
from .menus import menu_documents
|
||||||
from .permissions import (
|
from .permissions import (
|
||||||
permission_document_create, permission_document_delete,
|
permission_document_create, permission_document_delete,
|
||||||
permission_document_download, permission_document_edit,
|
permission_document_download, permission_document_edit,
|
||||||
@@ -343,12 +344,15 @@ class DocumentsApp(MayanAppConfig):
|
|||||||
}
|
}
|
||||||
)
|
)
|
||||||
|
|
||||||
menu_front_page.bind_links(
|
menu_documents.bind_links(
|
||||||
links=(
|
links=(
|
||||||
link_document_list_recent, link_document_list,
|
link_document_list_recent, link_document_list,
|
||||||
link_document_list_deleted
|
link_document_list_deleted
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
|
|
||||||
|
menu_main.bind_links(links=(menu_documents,), position=0)
|
||||||
|
|
||||||
menu_setup.bind_links(links=(link_document_type_setup,))
|
menu_setup.bind_links(links=(link_document_type_setup,))
|
||||||
menu_tools.bind_links(links=(link_clear_image_cache,))
|
menu_tools.bind_links(links=(link_clear_image_cache,))
|
||||||
|
|
||||||
|
|||||||
@@ -141,7 +141,7 @@ link_document_list_recent = Link(
|
|||||||
view='documents:document_list_recent'
|
view='documents:document_list_recent'
|
||||||
)
|
)
|
||||||
link_document_list_deleted = Link(
|
link_document_list_deleted = Link(
|
||||||
icon='fa fa-trash', text=_('Trash'),
|
icon='fa fa-trash', text=_('Trash can'),
|
||||||
view='documents:document_list_deleted'
|
view='documents:document_list_deleted'
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|||||||
9
mayan/apps/documents/menus.py
Normal file
9
mayan/apps/documents/menus.py
Normal file
@@ -0,0 +1,9 @@
|
|||||||
|
from __future__ import absolute_import, unicode_literals
|
||||||
|
|
||||||
|
from django.utils.translation import ugettext_lazy as _
|
||||||
|
|
||||||
|
from navigation import Menu
|
||||||
|
|
||||||
|
menu_documents = Menu(
|
||||||
|
icon='fa fa-file', label=_('Documents'), name='documents menu'
|
||||||
|
)
|
||||||
@@ -1,7 +1,6 @@
|
|||||||
from __future__ import unicode_literals
|
from __future__ import unicode_literals
|
||||||
|
|
||||||
from django import forms
|
from django import forms
|
||||||
from django.contrib.staticfiles.templatetags.staticfiles import static
|
|
||||||
from django.core.urlresolvers import reverse
|
from django.core.urlresolvers import reverse
|
||||||
from django.utils.html import strip_tags
|
from django.utils.html import strip_tags
|
||||||
from django.utils.http import urlencode
|
from django.utils.http import urlencode
|
||||||
|
|||||||
@@ -7,8 +7,8 @@ from acls import ModelPermission
|
|||||||
from acls.links import link_acl_list
|
from acls.links import link_acl_list
|
||||||
from acls.permissions import permission_acl_edit, permission_acl_view
|
from acls.permissions import permission_acl_edit, permission_acl_view
|
||||||
from common import (
|
from common import (
|
||||||
MayanAppConfig, menu_facet, menu_main, menu_object, menu_secondary,
|
MayanAppConfig, menu_facet, menu_main, menu_object, menu_sidebar,
|
||||||
menu_sidebar, menu_multi_item
|
menu_multi_item
|
||||||
)
|
)
|
||||||
from navigation import SourceColumn
|
from navigation import SourceColumn
|
||||||
from rest_api.classes import APIEndPoint
|
from rest_api.classes import APIEndPoint
|
||||||
@@ -20,6 +20,7 @@ from .links import (
|
|||||||
link_folder_delete, link_folder_document_multiple_remove,
|
link_folder_delete, link_folder_document_multiple_remove,
|
||||||
link_folder_edit, link_folder_view
|
link_folder_edit, link_folder_view
|
||||||
)
|
)
|
||||||
|
from .menus import menu_folders
|
||||||
from .permissions import (
|
from .permissions import (
|
||||||
permission_folder_add_document, permission_folder_delete,
|
permission_folder_add_document, permission_folder_delete,
|
||||||
permission_folder_edit, permission_folder_remove_document,
|
permission_folder_edit, permission_folder_remove_document,
|
||||||
@@ -77,7 +78,14 @@ class FoldersApp(MayanAppConfig):
|
|||||||
menu_facet.bind_links(
|
menu_facet.bind_links(
|
||||||
links=(link_document_folder_list,), sources=(Document,)
|
links=(link_document_folder_list,), sources=(Document,)
|
||||||
)
|
)
|
||||||
menu_main.bind_links(links=(link_folder_list,))
|
|
||||||
|
menu_folders.bind_links(
|
||||||
|
links=(
|
||||||
|
link_folder_list, link_folder_create
|
||||||
|
)
|
||||||
|
)
|
||||||
|
|
||||||
|
menu_main.bind_links(links=(menu_folders,), position=98)
|
||||||
menu_multi_item.bind_links(
|
menu_multi_item.bind_links(
|
||||||
links=(link_folder_add_multiple_documents,), sources=(Document,)
|
links=(link_folder_add_multiple_documents,), sources=(Document,)
|
||||||
)
|
)
|
||||||
@@ -96,10 +104,6 @@ class FoldersApp(MayanAppConfig):
|
|||||||
link_folder_delete
|
link_folder_delete
|
||||||
), sources=(Folder,)
|
), sources=(Folder,)
|
||||||
)
|
)
|
||||||
menu_secondary.bind_links(
|
|
||||||
links=(link_folder_list, link_folder_create),
|
|
||||||
sources=(Folder, 'folders:folder_list', 'folders:folder_create')
|
|
||||||
)
|
|
||||||
menu_sidebar.bind_links(
|
menu_sidebar.bind_links(
|
||||||
links=(link_folder_add_document,),
|
links=(link_folder_add_document,),
|
||||||
sources=(
|
sources=(
|
||||||
|
|||||||
@@ -24,8 +24,8 @@ link_folder_add_multiple_documents = Link(
|
|||||||
text=_('Add to folder'), view='folders:folder_add_multiple_documents'
|
text=_('Add to folder'), view='folders:folder_add_multiple_documents'
|
||||||
)
|
)
|
||||||
link_folder_create = Link(
|
link_folder_create = Link(
|
||||||
permissions=(permission_folder_create,), text=_('Create folder'),
|
icon='fa fa-plus', permissions=(permission_folder_create,),
|
||||||
view='folders:folder_create'
|
text=_('Create folder'), view='folders:folder_create'
|
||||||
)
|
)
|
||||||
link_folder_delete = Link(
|
link_folder_delete = Link(
|
||||||
permissions=(permission_folder_delete,), tags='dangerous',
|
permissions=(permission_folder_delete,), tags='dangerous',
|
||||||
@@ -41,7 +41,7 @@ link_folder_edit = Link(
|
|||||||
view='folders:folder_edit', args='object.pk'
|
view='folders:folder_edit', args='object.pk'
|
||||||
)
|
)
|
||||||
link_folder_list = Link(
|
link_folder_list = Link(
|
||||||
icon='fa fa-folder', text=_('Folders'), view='folders:folder_list'
|
icon='fa fa-folder', text=_('All'), view='folders:folder_list'
|
||||||
)
|
)
|
||||||
link_folder_view = Link(
|
link_folder_view = Link(
|
||||||
permissions=(permission_folder_view,), text=_('Documents'),
|
permissions=(permission_folder_view,), text=_('Documents'),
|
||||||
|
|||||||
9
mayan/apps/folders/menus.py
Normal file
9
mayan/apps/folders/menus.py
Normal file
@@ -0,0 +1,9 @@
|
|||||||
|
from __future__ import unicode_literals
|
||||||
|
|
||||||
|
from django.utils.translation import ugettext_lazy as _
|
||||||
|
|
||||||
|
from navigation import Menu
|
||||||
|
|
||||||
|
menu_folders = Menu(
|
||||||
|
icon='fa fa-folder', label=_('Folders'), name='folders menu'
|
||||||
|
)
|
||||||
@@ -55,11 +55,13 @@ class Menu(object):
|
|||||||
def get(cls, name):
|
def get(cls, name):
|
||||||
return cls._registry[name]
|
return cls._registry[name]
|
||||||
|
|
||||||
def __init__(self, name):
|
def __init__(self, name, icon=None, label=None):
|
||||||
if name in self.__class__._registry:
|
if name in self.__class__._registry:
|
||||||
raise Exception('A menu with this name already exists')
|
raise Exception('A menu with this name already exists')
|
||||||
|
|
||||||
|
self.icon = icon
|
||||||
self.name = name
|
self.name = name
|
||||||
|
self.label = label
|
||||||
self.bound_links = {}
|
self.bound_links = {}
|
||||||
self.unbound_links = {}
|
self.unbound_links = {}
|
||||||
self.link_positions = {}
|
self.link_positions = {}
|
||||||
@@ -184,7 +186,11 @@ class Menu(object):
|
|||||||
|
|
||||||
# Main menu links
|
# Main menu links
|
||||||
for link in self.bound_links.get(None, []):
|
for link in self.bound_links.get(None, []):
|
||||||
resolved_link = link.resolve(context)
|
if isinstance(link, Menu):
|
||||||
|
resolved_link = link
|
||||||
|
else:
|
||||||
|
resolved_link = link.resolve(context)
|
||||||
|
|
||||||
if resolved_link:
|
if resolved_link:
|
||||||
resolved_links.append(resolved_link)
|
resolved_links.append(resolved_link)
|
||||||
|
|
||||||
@@ -197,12 +203,16 @@ class Menu(object):
|
|||||||
unbound_links.extend(self.unbound_links.get(current_view, ()))
|
unbound_links.extend(self.unbound_links.get(current_view, ()))
|
||||||
|
|
||||||
for resolved_link in result[0]:
|
for resolved_link in result[0]:
|
||||||
if resolved_link.link in unbound_links:
|
try:
|
||||||
result[0].remove(resolved_link)
|
if resolved_link.link in unbound_links:
|
||||||
|
result[0].remove(resolved_link)
|
||||||
|
except AttributeError:
|
||||||
|
# It's a menu, ignore
|
||||||
|
pass
|
||||||
|
|
||||||
# Sort links by position value passed during bind
|
# Sort links by position value passed during bind
|
||||||
result[0] = sorted(
|
result[0] = sorted(
|
||||||
result[0], key=lambda item: self.link_positions.get(item.link)
|
result[0], key=lambda item: self.link_positions.get(item.link) if isinstance(item, ResolvedLink) else self.link_positions.get(item)
|
||||||
)
|
)
|
||||||
|
|
||||||
return result
|
return result
|
||||||
@@ -363,15 +373,12 @@ class Link(object):
|
|||||||
|
|
||||||
|
|
||||||
class Separator(Link):
|
class Separator(Link):
|
||||||
def __init__(self, text=None, view=None, args=None, condition=None,
|
def __init__(self, *args, **kwargs):
|
||||||
conditional_disable=None, description=None, icon=None,
|
|
||||||
keep_query=False, kwargs=None, permissions=None,
|
|
||||||
permissions_related=None, remove_from_query=None, tags=None):
|
|
||||||
self.icon = None
|
self.icon = None
|
||||||
self.text = None
|
self.text = None
|
||||||
self.view = None
|
self.view = None
|
||||||
|
|
||||||
def resolve(self, context, resolved_object=None):
|
def resolve(self, *args, **kwargs):
|
||||||
result = ResolvedLink(current_view=None, link=self)
|
result = ResolvedLink(current_view=None, link=self)
|
||||||
result.separator = True
|
result.separator = True
|
||||||
return result
|
return result
|
||||||
|
|||||||
@@ -5,11 +5,12 @@ from django.utils.translation import ugettext_lazy as _
|
|||||||
from kombu import Exchange, Queue
|
from kombu import Exchange, Queue
|
||||||
|
|
||||||
from common import (
|
from common import (
|
||||||
MayanAppConfig, MissingItem, menu_front_page, menu_object, menu_secondary,
|
MayanAppConfig, MissingItem, menu_object, menu_secondary, menu_sidebar,
|
||||||
menu_sidebar, menu_setup
|
menu_setup
|
||||||
)
|
)
|
||||||
from common.signals import post_initial_setup, post_upgrade
|
from common.signals import post_initial_setup, post_upgrade
|
||||||
from converter.links import link_transformation_list
|
from converter.links import link_transformation_list
|
||||||
|
from documents.menus import menu_documents
|
||||||
from documents.signals import post_version_upload
|
from documents.signals import post_version_upload
|
||||||
from mayan.celery import app
|
from mayan.celery import app
|
||||||
from navigation import SourceColumn
|
from navigation import SourceColumn
|
||||||
@@ -112,8 +113,8 @@ class SourcesApp(MayanAppConfig):
|
|||||||
},
|
},
|
||||||
}
|
}
|
||||||
)
|
)
|
||||||
|
menu_documents.bind_links(links=(link_document_create_multiple,))
|
||||||
|
|
||||||
menu_front_page.bind_links(links=(link_document_create_multiple,))
|
|
||||||
menu_object.bind_links(
|
menu_object.bind_links(
|
||||||
links=(
|
links=(
|
||||||
link_setup_source_edit, link_setup_source_delete,
|
link_setup_source_edit, link_setup_source_delete,
|
||||||
|
|||||||
@@ -7,8 +7,8 @@ from acls import ModelPermission
|
|||||||
from acls.links import link_acl_list
|
from acls.links import link_acl_list
|
||||||
from acls.permissions import permission_acl_edit, permission_acl_view
|
from acls.permissions import permission_acl_edit, permission_acl_view
|
||||||
from common import (
|
from common import (
|
||||||
MayanAppConfig, menu_facet, menu_secondary, menu_object, menu_main,
|
MayanAppConfig, menu_facet, menu_object, menu_main, menu_multi_item,
|
||||||
menu_multi_item, menu_sidebar
|
menu_sidebar
|
||||||
)
|
)
|
||||||
from documents.search import document_page_search, document_search
|
from documents.search import document_page_search, document_search
|
||||||
from navigation import SourceColumn
|
from navigation import SourceColumn
|
||||||
@@ -20,6 +20,7 @@ from .links import (
|
|||||||
link_tag_delete, link_tag_document_list, link_tag_edit, link_tag_list,
|
link_tag_delete, link_tag_document_list, link_tag_edit, link_tag_list,
|
||||||
link_tag_multiple_delete, link_tag_tagged_item_list
|
link_tag_multiple_delete, link_tag_tagged_item_list
|
||||||
)
|
)
|
||||||
|
from .menus import menu_tags
|
||||||
from .permissions import (
|
from .permissions import (
|
||||||
permission_tag_attach, permission_tag_delete, permission_tag_edit,
|
permission_tag_attach, permission_tag_delete, permission_tag_edit,
|
||||||
permission_tag_remove, permission_tag_view
|
permission_tag_remove, permission_tag_view
|
||||||
@@ -107,7 +108,15 @@ class TagsApp(MayanAppConfig):
|
|||||||
menu_facet.bind_links(
|
menu_facet.bind_links(
|
||||||
links=(link_tag_document_list,), sources=(Document,)
|
links=(link_tag_document_list,), sources=(Document,)
|
||||||
)
|
)
|
||||||
menu_main.bind_links(links=(link_tag_list,))
|
|
||||||
|
menu_tags.bind_links(
|
||||||
|
links=(
|
||||||
|
link_tag_list, link_tag_create
|
||||||
|
)
|
||||||
|
)
|
||||||
|
|
||||||
|
menu_main.bind_links(links=(menu_tags,), position=98)
|
||||||
|
|
||||||
menu_multi_item.bind_links(
|
menu_multi_item.bind_links(
|
||||||
links=(
|
links=(
|
||||||
link_multiple_documents_attach_tag,
|
link_multiple_documents_attach_tag,
|
||||||
@@ -129,10 +138,6 @@ class TagsApp(MayanAppConfig):
|
|||||||
),
|
),
|
||||||
sources=(Tag,)
|
sources=(Tag,)
|
||||||
)
|
)
|
||||||
menu_secondary.bind_links(
|
|
||||||
links=(link_tag_list, link_tag_create),
|
|
||||||
sources=(Tag, 'tags:tag_list', 'tags:tag_create')
|
|
||||||
)
|
|
||||||
menu_sidebar.bind_links(
|
menu_sidebar.bind_links(
|
||||||
links=(link_tag_attach,),
|
links=(link_tag_attach,),
|
||||||
sources=(
|
sources=(
|
||||||
|
|||||||
@@ -25,8 +25,8 @@ link_tag_attach = Link(
|
|||||||
view='tags:tag_attach', args='object.pk'
|
view='tags:tag_attach', args='object.pk'
|
||||||
)
|
)
|
||||||
link_tag_create = Link(
|
link_tag_create = Link(
|
||||||
permissions=(permission_tag_create,), text=_('Create new tag'),
|
icon='fa fa-plus', permissions=(permission_tag_create,),
|
||||||
view='tags:tag_create'
|
text=_('Create new tag'), view='tags:tag_create'
|
||||||
)
|
)
|
||||||
link_tag_delete = Link(
|
link_tag_delete = Link(
|
||||||
permissions=(permission_tag_delete,), tags='dangerous', text=_('Delete'),
|
permissions=(permission_tag_delete,), tags='dangerous', text=_('Delete'),
|
||||||
@@ -40,7 +40,7 @@ link_tag_document_list = Link(
|
|||||||
icon='fa fa-tag', permissions=(permission_tag_view,), text=_('Tags'),
|
icon='fa fa-tag', permissions=(permission_tag_view,), text=_('Tags'),
|
||||||
view='tags:document_tags', args='resolved_object.pk'
|
view='tags:document_tags', args='resolved_object.pk'
|
||||||
)
|
)
|
||||||
link_tag_list = Link(icon='fa fa-tag', text=_('Tags'), view='tags:tag_list')
|
link_tag_list = Link(icon='fa fa-tag', text=_('All'), view='tags:tag_list')
|
||||||
link_tag_multiple_delete = Link(
|
link_tag_multiple_delete = Link(
|
||||||
permissions=(permission_tag_delete,), text=_('Delete'),
|
permissions=(permission_tag_delete,), text=_('Delete'),
|
||||||
view='tags:tag_multiple_delete'
|
view='tags:tag_multiple_delete'
|
||||||
|
|||||||
9
mayan/apps/tags/menus.py
Normal file
9
mayan/apps/tags/menus.py
Normal file
@@ -0,0 +1,9 @@
|
|||||||
|
from __future__ import unicode_literals
|
||||||
|
|
||||||
|
from django.utils.translation import ugettext_lazy as _
|
||||||
|
|
||||||
|
from navigation import Menu
|
||||||
|
|
||||||
|
menu_tags = Menu(
|
||||||
|
icon='fa fa-tag', label=_('Tags'), name='tags menu'
|
||||||
|
)
|
||||||
Reference in New Issue
Block a user