diff --git a/docs/releases/2.5.rst b/docs/releases/2.5.rst
index e30aa4e11b..3001746eb4 100644
--- a/docs/releases/2.5.rst
+++ b/docs/releases/2.5.rst
@@ -30,7 +30,10 @@ Other Changes
of documents.
- Make sure lookup selection widgets also trigger the metadata update
checkbox on change.
-
+- Menu reorganization. The "About" menu has been renamed to "System". The
+ "Tools" and "Setup" sub menus, were moved from the "Profile" menu to the
+ "System" menu. The "Profile" menu has been renamed to "User".
+- Usability improvements on small displays.
Removals
diff --git a/mayan/apps/appearance/static/appearance/css/base.css b/mayan/apps/appearance/static/appearance/css/base.css
index 245656396d..cf531c2f35 100644
--- a/mayan/apps/appearance/static/appearance/css/base.css
+++ b/mayan/apps/appearance/static/appearance/css/base.css
@@ -175,3 +175,8 @@ a i {
#toast-container > div {
opacity: 1;
}
+
+.link-text-span {
+ padding-left: 10px;
+ padding-right: 20px;
+}
diff --git a/mayan/apps/appearance/templates/appearance/base.html b/mayan/apps/appearance/templates/appearance/base.html
index d14b29e253..2c20976365 100644
--- a/mayan/apps/appearance/templates/appearance/base.html
+++ b/mayan/apps/appearance/templates/appearance/base.html
@@ -59,7 +59,7 @@
{# TODO: don't use hardcoded main:home use settings.LOGIN_REDIRECT_URL #}
- {% project_name %}{% if debug %} {% endif %}
+ {% project_name %}
@@ -80,39 +80,6 @@
{% endfor %}
{% endfor %}
-
diff --git a/mayan/apps/appearance/templates/navigation/generic_link_instance.html b/mayan/apps/appearance/templates/navigation/generic_link_instance.html
index c0ee430a86..bff488dac0 100644
--- a/mayan/apps/appearance/templates/navigation/generic_link_instance.html
+++ b/mayan/apps/appearance/templates/navigation/generic_link_instance.html
@@ -1,9 +1,11 @@
{% if link.separator %}
+{% elif link.text_span %}
+ {{ link.text }}
{% else %}
{% if link.disabled %}
- {% if link.icon %} {% endif %}{{ link.text }}{% if link.error %} - {{ link.error }}{% endif %}{% if horizontal %}{% if not forloop.last %} {% endif %}{% endif %}
+ {% if link.icon %} {% endif %}{{ link.text }}{% if link.error %} - {{ link.error }}{% endif %}{% if horizontal %}{% if not forloop.last %} {% endif %}{% endif %}
{% else %}
- {% if link.icon %} {% endif %}{{ link.text }}{% if link.error %} - {{ link.error }}{% endif %}{% if horizontal %}{% if not forloop.last %} {% endif %}{% endif %}
+ {% if link.icon %} {% endif %}{{ link.text }}{% if link.error %} - {{ link.error }}{% endif %}{% if horizontal %}{% if not forloop.last %} {% endif %}{% endif %}
{% endif %}
{% endif %}
diff --git a/mayan/apps/appearance/templates/navigation/generic_subnavigation.html b/mayan/apps/appearance/templates/navigation/generic_subnavigation.html
index 321d0a2956..dfbfb97740 100644
--- a/mayan/apps/appearance/templates/navigation/generic_subnavigation.html
+++ b/mayan/apps/appearance/templates/navigation/generic_subnavigation.html
@@ -5,7 +5,7 @@
{% if link.icon %}
-
+
{% endif %}
{{ link.label }}
diff --git a/mayan/apps/common/apps.py b/mayan/apps/common/apps.py
index a9e9a0ab50..298c6707fe 100644
--- a/mayan/apps/common/apps.py
+++ b/mayan/apps/common/apps.py
@@ -14,7 +14,7 @@ from django.utils.encoding import force_text
from django.utils.translation import ugettext_lazy as _
from mayan.celery import app
-from navigation.classes import Separator
+from navigation.classes import Separator, Text
from rest_api.classes import APIEndPoint
from .handlers import (
@@ -73,6 +73,13 @@ class CommonApp(MayanAppConfig):
name = 'common'
verbose_name = _('Common')
+ @staticmethod
+ def get_user_label_text(context):
+ if not context['request'].user.is_authenticated:
+ return _('Anonymous')
+ else:
+ return context['request'].user.get_full_name() or context['request'].user
+
def ready(self):
super(CommonApp, self).ready()
@@ -111,21 +118,22 @@ class CommonApp(MayanAppConfig):
)
menu_user.bind_links(
links=(
+ Text(text=CommonApp.get_user_label_text), Separator(),
link_current_user_details, link_current_user_edit,
- link_current_user_locale_profile_edit, link_tools, link_setup,
+ link_current_user_locale_profile_edit,
Separator()
)
)
menu_about.bind_links(
links=(
- link_about, link_support, link_documentation, link_forum,
- link_code, link_license, link_packages_licenses,
- link_check_version
+ link_tools, link_setup, link_about, link_support,
+ link_documentation, link_forum, link_code, link_license,
+ link_packages_licenses, link_check_version
)
)
- menu_main.bind_links(links=(menu_about,), position=99)
+ menu_main.bind_links(links=(menu_about, menu_user,), position=99)
menu_tools.bind_links(
links=(link_filters,)
diff --git a/mayan/apps/common/menus.py b/mayan/apps/common/menus.py
index 1b725d26ac..9df936f2d1 100644
--- a/mayan/apps/common/menus.py
+++ b/mayan/apps/common/menus.py
@@ -9,7 +9,7 @@ __all__ = (
'menu_secondary', 'menu_setup', 'menu_sidebar', 'menu_tools', 'menu_user'
)
-menu_about = Menu(icon='fa fa-info', label=_('About'), name='about menu')
+menu_about = Menu(icon='fa fa-info', label=_('System'), name='about menu')
menu_facet = Menu(name='object facet')
menu_object = Menu(name='object menu')
menu_main = Menu(name='main menu')
@@ -18,4 +18,6 @@ menu_secondary = Menu(name='secondary menu')
menu_setup = Menu(name='setup menu')
menu_sidebar = Menu(name='sidebar menu')
menu_tools = Menu(name='tools menu')
-menu_user = Menu(name='user menu')
+menu_user = Menu(
+ icon='fa fa-user-circle-o', name='user menu', label=_('User')
+)
diff --git a/mayan/apps/navigation/classes.py b/mayan/apps/navigation/classes.py
index 534854ca5d..e1a153d040 100644
--- a/mayan/apps/navigation/classes.py
+++ b/mayan/apps/navigation/classes.py
@@ -26,6 +26,8 @@ class ResolvedLink(object):
self.disabled = False
self.link = link
self.url = '#'
+ self.context = None
+ self.request = None
@property
def active(self):
@@ -45,7 +47,10 @@ class ResolvedLink(object):
@property
def text(self):
- return self.link.text
+ try:
+ return self.link.text(context=self.context)
+ except TypeError:
+ return self.link.text
class Menu(object):
@@ -174,7 +179,7 @@ class Menu(object):
resolved_links = []
# View links
for link in self.bound_links.get(current_view, []):
- resolved_link = link.resolve(context)
+ resolved_link = link.resolve(context=context)
if resolved_link:
resolved_links.append(resolved_link)
@@ -188,7 +193,7 @@ class Menu(object):
if isinstance(link, Menu):
resolved_link = link
else:
- resolved_link = link.resolve(context)
+ resolved_link = link.resolve(context=context)
if resolved_link:
resolved_links.append(resolved_link)
@@ -372,10 +377,14 @@ class Link(object):
urlencode(parsed_query_string, doseq=True)
)
+ resolved_link.context = context
return resolved_link
class Separator(Link):
+ """
+ Menu separator. Renders to an
tag
+ """
def __init__(self, *args, **kwargs):
self.icon = None
self.text = None
@@ -428,3 +437,19 @@ class SourceColumn(object):
result = self.func(context=context)
return result
+
+
+class Text(Link):
+ """
+ Menu text. Renders to a plain tag
+ """
+ def __init__(self, *args, **kwargs):
+ self.icon = None
+ self.text = kwargs.get('text')
+ self.view = None
+
+ def resolve(self, *args, **kwargs):
+ result = ResolvedLink(current_view=None, link=self)
+ result.context = kwargs.get('context')
+ result.text_span = True
+ return result
diff --git a/mayan/apps/navigation/templatetags/navigation_tags.py b/mayan/apps/navigation/templatetags/navigation_tags.py
index 6d0a2a60f7..97a48ca462 100644
--- a/mayan/apps/navigation/templatetags/navigation_tags.py
+++ b/mayan/apps/navigation/templatetags/navigation_tags.py
@@ -18,7 +18,7 @@ def get_menus_links(context, names, source=None):
result = []
for name in names.split(','):
- for links in Menu.get(name=name).resolve(context):
+ for links in Menu.get(name=name).resolve(context=context):
if links:
result.append(links)