Simplify button link widget for the tools and setup views. Remove nowrap span of navigation link.

This commit is contained in:
Roberto Rosario
2015-01-26 17:04:09 -04:00
parent 1e461d020c
commit 0e00ede3c9
24 changed files with 42 additions and 96 deletions

View File

@@ -12,7 +12,7 @@ acl_grant = {'text': _('Grant'), 'view': 'acls:acl_multiple_grant', 'famfam': 'k
acl_revoke = {'text': _('Revoke'), 'view': 'acls:acl_multiple_revoke', 'famfam': 'key_delete', 'permissions': [ACLS_EDIT_ACL]}
acl_holder_new = {'text': _('New holder'), 'view': 'acls:acl_holder_new', 'args': 'access_object.gid', 'famfam': 'user', 'permissions': [ACLS_EDIT_ACL]}
acl_setup_valid_classes = {'text': _('Default ACLs'), 'view': 'acls:acl_setup_valid_classes', 'icon': 'lock.png', 'permissions': [ACLS_CLASS_VIEW_ACL]}
acl_setup_valid_classes = {'text': _('Default ACLs'), 'view': 'acls:acl_setup_valid_classes', 'icon': 'main/icons/lock.png', 'permissions': [ACLS_CLASS_VIEW_ACL]}
acl_class_list = {'text': _('Classes'), 'view': 'acls:acl_setup_valid_classes', 'famfam': 'package', 'permissions': [ACLS_CLASS_VIEW_ACL]}
acl_class_acl_list = {'text': _('ACLs for class'), 'view': 'acls:acl_class_acl_list', 'args': 'object.gid', 'famfam': 'lock_go', 'permissions': [ACLS_CLASS_VIEW_ACL]}
acl_class_acl_detail = {'text': _('Details'), 'view': 'acls:acl_class_acl_detail', 'args': ['access_object_class.gid', 'object.gid'], 'famfam': 'key_go', 'permissions': [ACLS_CLASS_VIEW_ACL]}

View File

@@ -7,9 +7,9 @@ from .permissions import (
PERMISSION_KEYSERVER_QUERY
)
private_keys = {'text': _('Private keys'), 'view': 'django_gpg:key_private_list', 'args': 'object.pk', 'famfam': 'key', 'icon': 'key.png', 'permissions': [PERMISSION_KEY_VIEW]}
public_keys = {'text': _('Public keys'), 'view': 'django_gpg:key_public_list', 'args': 'object.pk', 'famfam': 'key', 'icon': 'key.png', 'permissions': [PERMISSION_KEY_VIEW]}
private_keys = {'text': _('Private keys'), 'view': 'django_gpg:key_private_list', 'args': 'object.pk', 'famfam': 'key', 'icon': 'main/icons/key.png', 'permissions': [PERMISSION_KEY_VIEW]}
public_keys = {'text': _('Public keys'), 'view': 'django_gpg:key_public_list', 'args': 'object.pk', 'famfam': 'key', 'icon': 'main/icons/key.png', 'permissions': [PERMISSION_KEY_VIEW]}
key_delete = {'text': _('Delete'), 'view': 'django_gpg:key_delete', 'args': ['object.fingerprint', 'object.type'], 'famfam': 'key_delete', 'permissions': [PERMISSION_KEY_DELETE]}
key_query = {'text': _('Query keyservers'), 'view': 'django_gpg:key_query', 'famfam': 'zoom', 'permissions': [PERMISSION_KEYSERVER_QUERY]}
key_receive = {'text': _('Import'), 'view': 'django_gpg:key_receive', 'args': 'object.keyid', 'famfam': 'key_add', 'keep_query': True, 'permissions': [PERMISSION_KEY_RECEIVE]}
key_setup = {'text': _('Key management'), 'view': 'django_gpg:key_public_list', 'args': 'object.pk', 'famfam': 'key', 'icon': 'key.png', 'permissions': [PERMISSION_KEY_VIEW]}
key_setup = {'text': _('Key management'), 'view': 'django_gpg:key_public_list', 'args': 'object.pk', 'famfam': 'key', 'icon': 'main/icons/key.png', 'permissions': [PERMISSION_KEY_VIEW]}

View File

@@ -20,7 +20,7 @@ def is_not_root_node(context):
return not context['node'].is_root_node()
index_setup = {'text': _('Indexes'), 'view': 'indexing:index_setup_list', 'icon': 'tab.png', 'permissions': [PERMISSION_DOCUMENT_INDEXING_SETUP]}
index_setup = {'text': _('Indexes'), 'view': 'indexing:index_setup_list', 'icon': 'main/icons/tab.png', 'permissions': [PERMISSION_DOCUMENT_INDEXING_SETUP]}
index_setup_list = {'text': _('Indexes'), 'view': 'indexing:index_setup_list', 'famfam': 'tab', 'permissions': [PERMISSION_DOCUMENT_INDEXING_SETUP]}
index_setup_create = {'text': _('Create index'), 'view': 'indexing:index_setup_create', 'famfam': 'tab_add', 'permissions': [PERMISSION_DOCUMENT_INDEXING_CREATE]}
index_setup_edit = {'text': _('Edit'), 'view': 'indexing:index_setup_edit', 'args': 'index.pk', 'famfam': 'tab_edit', 'permissions': [PERMISSION_DOCUMENT_INDEXING_EDIT]}

View File

@@ -2,7 +2,7 @@ from __future__ import unicode_literals
from django.utils.translation import ugettext_lazy as _
link_setup_workflow_list = {'text': _('Workflows'), 'view': 'document_states:setup_workflow_list', 'famfam': 'table', 'icon': 'table.png'}
link_setup_workflow_list = {'text': _('Workflows'), 'view': 'document_states:setup_workflow_list', 'famfam': 'table', 'icon': 'main/icons/table.png'}
link_setup_workflow_create = {'text': _('Create'), 'view': 'document_states:setup_workflow_create', 'famfam': 'table_add'}
link_setup_workflow_delete = {'text': _('Delete'), 'view': 'document_states:setup_workflow_delete', 'args': 'object.pk', 'famfam': 'table_delete'}
link_setup_workflow_edit = {'text': _('Edit'), 'view': 'document_states:setup_workflow_edit', 'args': 'object.pk', 'famfam': 'table_edit'}

View File

@@ -85,7 +85,7 @@ document_version_revert = {'text': _('Revert'), 'view': 'documents:document_vers
# Document type related links
document_type_list = {'text': _('Document types'), 'view': 'documents:document_type_list', 'famfam': 'layout', 'permissions': [PERMISSION_DOCUMENT_TYPE_VIEW]}
document_type_setup = {'text': _('Document types'), 'view': 'documents:document_type_list', 'famfam': 'layout', 'icon': 'layout.png', 'permissions': [PERMISSION_DOCUMENT_TYPE_VIEW]}
document_type_setup = {'text': _('Document types'), 'view': 'documents:document_type_list', 'famfam': 'layout', 'icon': 'main/icons/layout.png', 'permissions': [PERMISSION_DOCUMENT_TYPE_VIEW]}
document_type_edit = {'text': _('Edit'), 'view': 'documents:document_type_edit', 'args': 'document_type.id', 'famfam': 'layout_edit', 'permissions': [PERMISSION_DOCUMENT_TYPE_EDIT]}
document_type_delete = {'text': _('Delete'), 'view': 'documents:document_type_delete', 'args': 'document_type.id', 'famfam': 'layout_delete', 'permissions': [PERMISSION_DOCUMENT_TYPE_DELETE]}
document_type_create = {'text': _('Create document type'), 'view': 'documents:document_type_create', 'famfam': 'layout_add', 'permissions': [PERMISSION_DOCUMENT_TYPE_CREATE]}

View File

@@ -2,4 +2,4 @@ from __future__ import unicode_literals
from django.utils.translation import ugettext_lazy as _
events_list = {'text': _('Events'), 'view': 'events:events_list', 'famfam': 'book', 'icon': 'book.png'}
events_list = {'text': _('Events'), 'view': 'events:events_list', 'famfam': 'book', 'icon': 'main/icons/book.png'}

View File

@@ -4,6 +4,6 @@ from django.utils.translation import ugettext_lazy as _
from .permissions import PERMISSION_INSTALLATION_DETAILS
link_menu_link = {'text': _('Installation details'), 'view': 'installation:namespace_list', 'icon': 'interface_preferences.png', 'permissions': [PERMISSION_INSTALLATION_DETAILS]}
link_menu_link = {'text': _('Installation details'), 'view': 'installation:namespace_list', 'icon': 'main/icons/interface_preferences.png', 'permissions': [PERMISSION_INSTALLATION_DETAILS]}
link_namespace_list = {'text': _('Installation property namespaces'), 'view': 'installation:namespace_list', 'famfam': 'layout', 'permissions': [PERMISSION_INSTALLATION_DETAILS]}
link_namespace_details = {'text': _('Details'), 'view': 'installation:namespace_details', 'args': 'object.id', 'famfam': 'layout_link', 'permissions': [PERMISSION_INSTALLATION_DETAILS]}

View File

@@ -10,7 +10,7 @@ from .permissions import (
PERMISSION_SMART_LINK_EDIT, PERMISSION_SMART_LINK_VIEW
)
smart_link_setup = {'text': _('Smart links'), 'view': 'linking:smart_link_list', 'icon': 'link.png', 'permissions': [PERMISSION_SMART_LINK_CREATE]}
smart_link_setup = {'text': _('Smart links'), 'view': 'linking:smart_link_list', 'icon': 'main/icons/link.png', 'permissions': [PERMISSION_SMART_LINK_CREATE]}
smart_link_list = {'text': _('Smart links'), 'view': 'linking:smart_link_list', 'famfam': 'link', 'permissions': [PERMISSION_SMART_LINK_CREATE]}
smart_link_create = {'text': _('Create new smart link'), 'view': 'linking:smart_link_create', 'famfam': 'link_add', 'permissions': [PERMISSION_SMART_LINK_CREATE]}
smart_link_edit = {'text': _('Edit'), 'view': 'linking:smart_link_edit', 'args': 'object.pk', 'famfam': 'link_edit', 'permissions': [PERMISSION_SMART_LINK_EDIT]}

View File

@@ -7,5 +7,5 @@ def is_superuser(context):
return context['request'].user.is_staff or context['request'].user.is_superuser
maintenance_menu = {'text': _('Maintenance'), 'view': 'main:maintenance_menu', 'famfam': 'wrench', 'icon': 'wrench.png'}
admin_site = {'text': _('Admin site'), 'view': 'admin:index', 'famfam': 'keyboard', 'icon': 'keyboard.png', 'condition': is_superuser}
maintenance_menu = {'text': _('Maintenance'), 'view': 'main:maintenance_menu', 'famfam': 'wrench', 'icon': 'main/icons/wrench.png'}
admin_site = {'text': _('Admin site'), 'view': 'admin:index', 'famfam': 'keyboard', 'icon': 'main/icons/keyboard.png', 'condition': is_superuser}

View File

@@ -5,9 +5,7 @@
</div>
<div class="pure-g tc">
{% for object in object_list %}
<div class="pure-u-4-24">
{{ object }}
</div>
{% endfor %}
{% with 'navigation/large_button_link.html' as link_template %}
{% include 'generic_navigation.html' %}
{% endwith %}
</div>

View File

@@ -0,0 +1,10 @@
{% load static %}
<div class="pure-u-4-24">
<a class="pure-button mayan-button-big" href="{% url link.view %}">
<p>
<img src="{% static link.icon %}"><br>
{{ link.text }}
</p>
</a>
</div>

View File

@@ -23,9 +23,9 @@ metadata_multiple_remove = {'text': _('Remove metadata'), 'view': 'metadata:meta
setup_document_type_metadata = {'text': _('Optional metadata'), 'view': 'metadata:setup_document_type_metadata', 'args': 'document_type.pk', 'famfam': 'xhtml', 'permissions': [PERMISSION_DOCUMENT_TYPE_EDIT]}
setup_document_type_metadata_required = {'text': _('Required metadata'), 'view': 'metadata:setup_document_type_metadata_required', 'args': 'document_type.pk', 'famfam': 'xhtml', 'permissions': [PERMISSION_DOCUMENT_TYPE_EDIT]}
setup_metadata_type_list = {'text': _('Metadata types'), 'view': 'metadata:setup_metadata_type_list', 'famfam': 'xhtml_go', 'icon': 'xhtml.png', 'permissions': [PERMISSION_METADATA_TYPE_VIEW]}
setup_metadata_type_list = {'text': _('Metadata types'), 'view': 'metadata:setup_metadata_type_list', 'famfam': 'xhtml_go', 'icon': 'main/icons/xhtml.png', 'permissions': [PERMISSION_METADATA_TYPE_VIEW]}
setup_metadata_type_edit = {'text': _('Edit'), 'view': 'metadata:setup_metadata_type_edit', 'args': 'object.pk', 'famfam': 'xhtml', 'permissions': [PERMISSION_METADATA_TYPE_EDIT]}
setup_metadata_type_delete = {'text': _('Delete'), 'view': 'metadata:setup_metadata_type_delete', 'args': 'object.pk', 'famfam': 'xhtml_delete', 'permissions': [PERMISSION_METADATA_TYPE_DELETE]}
setup_metadata_type_create = {'text': _('Create new'), 'view': 'metadata:setup_metadata_type_create', 'famfam': 'xhtml_add', 'permissions': [PERMISSION_METADATA_TYPE_CREATE]}
link_documents_missing_required_metadata = {'text': _('Missing required metadata'), 'view': 'metadata:documents_missing_required_metadata', 'icon': 'to_do_list.png'}
link_documents_missing_required_metadata = {'text': _('Missing required metadata'), 'view': 'metadata:documents_missing_required_metadata', 'icon': 'main/icons/to_do_list.png'}

View File

@@ -1,5 +1,3 @@
<span class="nowrap">
{% for link in object_navigation_links %}
{% for link in object_navigation_links %}
{% include 'generic_subnavigation.html' %}
{% endfor %}
</span>
{% endfor %}

View File

@@ -11,7 +11,7 @@
<li class="{% if forloop.first and li_class_first %}{{ li_class_first }} {% endif %}{% if link.active and li_class_active %}{{ li_class_active }}{% endif %}">
{% endif %}
{% include 'generic_link_instance.html' %}
{% include link_template|default:'generic_link_instance.html' %}
{% if as_li %}
</li>

View File

@@ -1,56 +0,0 @@
from __future__ import absolute_import, unicode_literals
import urlparse
from django.conf import settings
from django.contrib.staticfiles.templatetags.staticfiles import static
from django.core.exceptions import PermissionDenied
from django.core.urlresolvers import reverse
from django.template import RequestContext, Variable
from django.utils.safestring import mark_safe
from django.utils.translation import ugettext_lazy as _
from permissions.models import Permission
from .templatetags.navigation_tags import resolve_links
from .utils import resolve_to_name
def button_navigation_widget(request, link):
if 'permissions' in link:
try:
Permission.objects.check_permissions(request.user, link['permissions'])
return render_widget(request, link)
except PermissionDenied:
return ''
else:
return render_widget(request, link)
def render_widget(request, link):
context = RequestContext(request)
request = Variable('request').resolve(context)
current_path = request.META['PATH_INFO']
current_view = resolve_to_name(current_path)
query_string = urlparse.urlparse(request.get_full_path()).query or urlparse.urlparse(request.META.get('HTTP_REFERER', reverse('main:home'))).query
parsed_query_string = urlparse.parse_qs(query_string)
links = resolve_links(context, [link], current_view, current_path, parsed_query_string)
if links:
link = links[0]
return mark_safe('\
<a class="pure-button mayan-button-big" href="%(url)s">\
<p>\
<img src="%(static_url)s"><br>\
%(string)s\
</p>\
</a>' % {
'url': reverse(link['view']) if 'view' in link else link['url'],
'static_url': static('main/icons/{0}'.format(link.get('icon', 'link_button.png'))),
'string': link['text'],
'image_alt': _('Icon'),
})
else:
return ''

View File

@@ -16,4 +16,4 @@ link_entry_delete_multiple = {'text': _('Delete'), 'view': 'ocr:entry_delete_mul
link_document_all_ocr_cleanup = {'text': _('Clean up pages content'), 'view': 'ocr:document_all_ocr_cleanup', 'famfam': 'text_strikethrough', 'permissions': [PERMISSION_OCR_CLEAN_ALL_PAGES], 'description': _('Runs a language filter to remove common OCR mistakes from document pages content.')}
link_entry_list = {'text': _('OCR Errors'), 'view': 'ocr:entry_list', 'famfam': 'hourglass', 'icon': 'text.png', 'permissions': [PERMISSION_OCR_DOCUMENT]}
link_entry_list = {'text': _('OCR Errors'), 'view': 'ocr:entry_list', 'famfam': 'hourglass', 'icon': 'main/icons/text.png', 'permissions': [PERMISSION_OCR_DOCUMENT]}

View File

@@ -14,6 +14,6 @@ permission_revoke = {'text': _('Revoke'), 'view': 'permissions:permission_multip
role_create = {'text': _('Create new role'), 'view': 'permissions:role_create', 'famfam': 'medal_gold_add', 'permissions': [PERMISSION_ROLE_CREATE]}
role_delete = {'text': _('Delete'), 'view': 'permissions:role_delete', 'args': 'object.id', 'famfam': 'medal_gold_delete', 'permissions': [PERMISSION_ROLE_DELETE]}
role_edit = {'text': _('Edit'), 'view': 'permissions:role_edit', 'args': 'object.id', 'famfam': 'medal_gold_1', 'permissions': [PERMISSION_ROLE_EDIT]}
role_list = {'text': _('Roles'), 'view': 'permissions:role_list', 'famfam': 'medal_gold_1', 'icon': 'medal_gold_red.png', 'permissions': [PERMISSION_ROLE_VIEW]}
role_list = {'text': _('Roles'), 'view': 'permissions:role_list', 'famfam': 'medal_gold_1', 'icon': 'main/icons/medal_gold_red.png', 'permissions': [PERMISSION_ROLE_VIEW]}
role_members = {'text': _('Members'), 'view': 'permissions:role_members', 'args': 'object.id', 'famfam': 'group_key', 'permissions': [PERMISSION_ROLE_EDIT]}
role_permissions = {'text': _('Role permissions'), 'view': 'permissions:role_permissions', 'args': 'object.id', 'famfam': 'key_go', 'permissions': [PERMISSION_PERMISSION_GRANT, PERMISSION_PERMISSION_REVOKE]}

View File

@@ -4,14 +4,12 @@ from django.shortcuts import render_to_response
from django.template import RequestContext
from django.utils.translation import ugettext_lazy as _
from navigation.widgets import button_navigation_widget
from .api import setup_items
def setup_list(request):
context = {
'object_list': [button_navigation_widget(request, item) for item in setup_items],
'object_navigation_links': setup_items,
'title': _('Setup items'),
}

View File

@@ -4,14 +4,12 @@ from django.shortcuts import render_to_response
from django.template import RequestContext
from django.utils.translation import ugettext_lazy as _
from navigation.widgets import button_navigation_widget
from .api import tool_items
def tools_list(request):
context = {
'object_list': [button_navigation_widget(request, item) for item in tool_items],
'object_navigation_links': tool_items,
'title': _('Tools'),
}

View File

@@ -2,5 +2,5 @@ from __future__ import unicode_literals
from django.utils.translation import ugettext_lazy as _
link_api = {'text': _('REST API'), 'view': 'api-root', 'famfam': 'disconnect', 'icon': 'disconnect.png'}
link_api_documentation = {'text': _('REST API Documentation'), 'view': 'django.swagger.base.view', 'famfam': 'book', 'icon': 'book.png'}
link_api = {'text': _('REST API'), 'view': 'api-root', 'famfam': 'disconnect', 'icon': 'main/icons/disconnect.png'}
link_api_documentation = {'text': _('REST API Documentation'), 'view': 'django.swagger.base.view', 'famfam': 'book', 'icon': 'main/icons/book.png'}

View File

@@ -7,4 +7,4 @@ def is_superuser(context):
return context['request'].user.is_staff or context['request'].user.is_superuser
check_settings = {'text': _('Settings'), 'view': 'settings:setting_list', 'famfam': 'cog', 'icon': 'cog.png', 'condition': is_superuser}
check_settings = {'text': _('Settings'), 'view': 'settings:setting_list', 'famfam': 'cog', 'icon': 'main/icons/cog.png', 'condition': is_superuser}

View File

@@ -20,7 +20,7 @@ document_create_siblings = {'text': _('Clone'), 'view': 'sources:document_create
staging_file_delete = {'text': _('Delete'), 'view': 'sources:staging_file_delete', 'args': ['source.pk', 'object.encoded_filename'], 'famfam': 'delete', 'keep_query': True, 'permissions': [PERMISSION_DOCUMENT_NEW_VERSION, PERMISSION_DOCUMENT_CREATE]}
setup_sources = {'text': _('Sources'), 'view': 'sources:setup_source_list', 'famfam': 'application_form', 'icon': 'application_form.png', 'permissions': [PERMISSION_SOURCES_SETUP_VIEW]}
setup_sources = {'text': _('Sources'), 'view': 'sources:setup_source_list', 'famfam': 'application_form', 'icon': 'main/icons/application_form.png', 'permissions': [PERMISSION_SOURCES_SETUP_VIEW]}
setup_source_create_webform = {'text': _('Add new webform source'), 'view': 'sources:setup_source_create', 'args': '"%s"' % SOURCE_CHOICE_WEB_FORM, 'famfam': 'application_form_add', 'permissions': [PERMISSION_SOURCES_SETUP_CREATE], 'conditional_highlight': lambda context: context.get('source_type') == SOURCE_CHOICE_WEB_FORM and 'source' not in context}
setup_source_create_staging_folder = {'text': _('Add new staging folder'), 'view': 'sources:setup_source_create', 'args': '"%s"' % SOURCE_CHOICE_STAGING, 'famfam': 'folder_camera', 'permissions': [PERMISSION_SOURCES_SETUP_CREATE], 'conditional_highlight': lambda context: context.get('source_type') == SOURCE_CHOICE_STAGING and 'source' not in context}
setup_source_create_watch_folder = {'text': _('Add new watch folder'), 'view': 'sources:setup_source_create', 'args': '"%s"' % SOURCE_CHOICE_WATCH, 'famfam': 'folder_magnify', 'permissions': [PERMISSION_SOURCES_SETUP_CREATE], 'conditional_highlight': lambda context: context.get('source_type') == SOURCE_CHOICE_WATCH and 'source' not in context}

View File

@@ -10,4 +10,4 @@ def is_superuser(context):
link_execute = {'text': _('Execute'), 'view': 'statistics:execute', 'args': 'object.id', 'famfam': 'lightning', 'condition': is_superuser}
link_namespace_details = {'text': _('Details'), 'view': 'statistics:namespace_details', 'args': 'namespace.id', 'famfam': 'chart_curve_go', 'condition': is_superuser}
link_namespace_list = {'text': _('Namespace list'), 'view': 'statistics:namespace_list', 'famfam': 'chart_curve', 'condition': is_superuser}
link_statistics = {'text': _('Statistics'), 'view': 'statistics:namespace_list', 'famfam': 'table', 'icon': 'blackboard_sum.png', 'condition': is_superuser}
link_statistics = {'text': _('Statistics'), 'view': 'statistics:namespace_list', 'famfam': 'table', 'icon': 'main/icons/blackboard_sum.png', 'condition': is_superuser}

View File

@@ -9,7 +9,7 @@ from .permissions import (
)
user_list = {'text': _('Users'), 'view': 'user_management:user_list', 'famfam': 'user', 'permissions': [PERMISSION_USER_VIEW]}
user_setup = {'text': _('Users'), 'view': 'user_management:user_list', 'famfam': 'user', 'icon': 'user.png', 'permissions': [PERMISSION_USER_VIEW]}
user_setup = {'text': _('Users'), 'view': 'user_management:user_list', 'famfam': 'user', 'icon': 'main/icons/user.png', 'permissions': [PERMISSION_USER_VIEW]}
user_edit = {'text': _('Edit'), 'view': 'user_management:user_edit', 'args': 'object.id', 'famfam': 'user_edit', 'permissions': [PERMISSION_USER_EDIT]}
user_add = {'text': _('Create new user'), 'view': 'user_management:user_add', 'famfam': 'user_add', 'permissions': [PERMISSION_USER_CREATE]}
user_delete = {'text': _('Delete'), 'view': 'user_management:user_delete', 'args': 'object.id', 'famfam': 'user_delete', 'permissions': [PERMISSION_USER_DELETE]}
@@ -19,7 +19,7 @@ user_multiple_set_password = {'text': _('Reset password'), 'view': 'user_managem
user_groups = {'text': _('Groups'), 'view': 'user_management:user_groups', 'args': 'object.id', 'famfam': 'group_link', 'permissions': [PERMISSION_USER_EDIT]}
group_list = {'text': _('Groups'), 'view': 'user_management:group_list', 'famfam': 'group', 'permissions': [PERMISSION_GROUP_VIEW]}
group_setup = {'text': _('Groups'), 'view': 'user_management:group_list', 'famfam': 'group', 'icon': 'group.png', 'permissions': [PERMISSION_GROUP_VIEW]}
group_setup = {'text': _('Groups'), 'view': 'user_management:group_list', 'famfam': 'group', 'icon': 'main/icons/group.png', 'permissions': [PERMISSION_GROUP_VIEW]}
group_edit = {'text': _('Edit'), 'view': 'user_management:group_edit', 'args': 'object.id', 'famfam': 'group_edit', 'permissions': [PERMISSION_GROUP_EDIT]}
group_add = {'text': _('Create new group'), 'view': 'user_management:group_add', 'famfam': 'group_add', 'permissions': [PERMISSION_GROUP_CREATE]}
group_delete = {'text': _('Delete'), 'view': 'user_management:group_delete', 'args': 'object.id', 'famfam': 'group_delete', 'permissions': [PERMISSION_GROUP_DELETE]}