diff --git a/mayan/apps/acls/icons.py b/mayan/apps/acls/icons.py index 1a1c73ef30..e812a0024d 100644 --- a/mayan/apps/acls/icons.py +++ b/mayan/apps/acls/icons.py @@ -3,4 +3,7 @@ from __future__ import absolute_import, unicode_literals from mayan.apps.appearance.classes import Icon icon_acl_list = Icon(driver_name='fontawesome', symbol='lock') -icon_acl_new = Icon(driver_name='fontawesome', symbol='plus') +icon_acl_new = Icon( + driver_name='fontawesome-dual', primary_symbol='lock', + secondary_symbol='plus' +) diff --git a/mayan/apps/documents/icons.py b/mayan/apps/documents/icons.py index 2d272d9cd2..8b359d40a0 100644 --- a/mayan/apps/documents/icons.py +++ b/mayan/apps/documents/icons.py @@ -7,7 +7,7 @@ icon_dashboard_document_types = Icon( driver_name='fontawesome', symbol='book' ) icon_dashboard_documents_in_trash = Icon( - driver_name='fontawesome', symbol='trash' + driver_name='fontawesome', symbol='trash-alt' ) icon_dashboard_pages_per_month = Icon( driver_name='fontawesome', symbol='copy' @@ -18,14 +18,29 @@ icon_dashboard_new_documents_this_month = Icon( icon_dashboard_total_document = Icon( driver_name='fontawesome', symbol='file' ) +icon_document_delete = Icon( + driver_name='fontawesome', symbol='times' +) +icon_document_download = Icon( + driver_name='fontawesome', symbol='download' +) icon_document_duplicates_list = Icon( driver_name='fontawesome', symbol='clone' ) +icon_document_edit = Icon( + driver_name='fontawesome', symbol='pencil-alt' +) +icon_document_favorites_add = Icon( + driver_name='fontawesome-dual', primary_symbol='star', + secondary_symbol='plus' +) icon_document_image_loading = Icon( driver_name='fontawesomecss', css_classes='far fa-clock fa-2x' ) -icon_document_list = Icon(driver_name='fontawesome', symbol='file') -icon_document_list_deleted = Icon(driver_name='fontawesome', symbol='trash') +icon_document_list = Icon(driver_name='fontawesome', symbol='book') +icon_document_list_deleted = Icon( + driver_name='fontawesome', symbol='trash-alt' +) icon_document_list_favorites = Icon(driver_name='fontawesome', symbol='star') icon_document_list_recent_access = Icon( driver_name='fontawesome', symbol='clock' @@ -33,6 +48,12 @@ icon_document_list_recent_access = Icon( icon_document_list_recent_added = Icon( driver_name='fontawesome', symbol='asterisk' ) +icon_document_multiple_delete = Icon( + driver_name='fontawesome', symbol='trash-alt' +) +icon_document_multiepl_restore = Icon( + driver_name='fontawesome', symbol='recycle' +) icon_document_page_navigation_first = Icon( driver_name='fontawesome', symbol='step-backward' ) @@ -66,18 +87,31 @@ icon_document_page_zoom_out = Icon( ) icon_document_pages = Icon(driver_name='fontawesome', symbol='copy') icon_document_preview = Icon(driver_name='fontawesome', symbol='eye') +icon_document_print = Icon( + driver_name='fontawesome', symbol='print' +) icon_document_properties = Icon(driver_name='fontawesome', symbol='info') -icon_document_type = Icon(driver_name='fontawesome', symbol='file') +icon_document_restore = Icon(driver_name='fontawesome', symbol='recycle') +icon_document_trash = Icon( + driver_name='fontawesome', symbol='trash-alt' +) +icon_document_type = Icon( + driver_name='fontawesome-layers', data=[ + {'class': 'fas fa-circle', 'transform': 'shrink-12 up-2'}, + {'class': 'fas fa-cog', 'transform': 'shrink-6 up-2', 'mask': 'fas fa-torah'} + ] +) icon_document_type_create = Icon(driver_name='fontawesome', symbol='plus') icon_document_type_delete = Icon(driver_name='fontawesome', symbol='times') icon_document_type_edit = Icon(driver_name='fontawesome', symbol='pencil-alt') -icon_document_type_setup = Icon(driver_name='fontawesome', symbol='file') +icon_document_type_setup = icon_document_type icon_document_type_filename = Icon( driver_name='fontawesome', symbol='keyboard' ) icon_document_type_filename_create = Icon( driver_name='fontawesome', symbol='plus' ) +icon_document_type_list = icon_document_type icon_document_version_list = Icon( driver_name='fontawesome', symbol='code-branch' ) @@ -99,4 +133,7 @@ icon_document_version_download = Icon( icon_document_version_view = Icon( driver_name='fontawesome', symbol='eye' ) -icon_menu_documents = Icon(driver_name='fontawesome', symbol='file') +icon_menu_documents = Icon(driver_name='fontawesome', symbol='book') +icon_trash_can_empty = Icon( + driver_name='fontawesome', symbol='trash-alt' +) diff --git a/mayan/apps/documents/links.py b/mayan/apps/documents/links.py index 2821690bb5..3b292b6074 100644 --- a/mayan/apps/documents/links.py +++ b/mayan/apps/documents/links.py @@ -11,19 +11,25 @@ from .icons import ( icon_clear_image_cache, icon_document_duplicates_list, icon_document_list, icon_document_list_deleted, icon_document_list_favorites, icon_document_list_recent_access, icon_document_list_recent_added, - icon_document_page_navigation_first, icon_document_page_navigation_last, + icon_document_delete, icon_document_download, icon_document_edit, + icon_document_favorites_add, icon_document_multiple_delete, + icon_document_multiepl_restore, icon_document_page_navigation_first, + icon_document_page_navigation_last, icon_document_page_navigation_next, icon_document_page_navigation_previous, icon_document_page_return, icon_document_page_rotate_left, icon_document_page_rotate_right, icon_document_page_view, icon_document_page_view_reset, icon_document_page_zoom_in, icon_document_page_zoom_out, icon_document_pages, icon_document_preview, - icon_document_properties, icon_document_type_create, + icon_document_print, icon_document_properties, icon_document_restore, + icon_document_trash, icon_document_type_create, icon_document_type_delete, icon_document_type_edit, icon_document_type_filename, icon_document_type_filename_create, - icon_document_type_setup, icon_document_version_download, + icon_document_type_list, icon_document_type_setup, + icon_document_version_download, icon_document_version_list, icon_document_version_return_document, icon_document_version_return_list, icon_document_version_view, - icon_duplicated_document_list, icon_duplicated_document_scan + icon_duplicated_document_list, icon_duplicated_document_scan, + icon_trash_can_empty ) from .permissions import ( permission_document_delete, permission_document_download, @@ -100,11 +106,12 @@ link_document_clone_transformations = Link( view='documents:document_clone_transformations', ) link_document_delete = Link( - args='resolved_object.id', permissions=(permission_document_delete,), - tags='dangerous', text=_('Delete'), view='documents:document_delete', + args='resolved_object.id', icon_class=icon_document_delete, + permissions=(permission_document_delete,), tags='dangerous', + text=_('Delete'), view='documents:document_delete', ) link_document_favorites_add = Link( - args='resolved_object.id', + args='resolved_object.id', icon_class=icon_document_favorites_add, permissions=(permission_document_view,), text=_('Add to favorites'), view='documents:document_add_to_favorites', ) @@ -114,12 +121,12 @@ link_document_favorites_remove = Link( view='documents:document_remove_from_favorites', ) link_document_trash = Link( - args='resolved_object.id', permissions=(permission_document_trash,), - tags='dangerous', text=_('Move to trash'), - view='documents:document_trash', + args='resolved_object.id', icon_class=icon_document_trash, + permissions=(permission_document_trash,), tags='dangerous', + text=_('Move to trash'), view='documents:document_trash', ) link_document_edit = Link( - args='resolved_object.id', + args='resolved_object.id', icon_class=icon_document_edit, permissions=(permission_document_properties_edit,), text=_('Edit properties'), view='documents:document_edit', ) @@ -129,11 +136,13 @@ link_document_document_type_edit = Link( view='documents:document_document_type_edit', ) link_document_download = Link( - args='resolved_object.id', permissions=(permission_document_download,), - text=_('Advanced download'), view='documents:document_download_form', + args='resolved_object.id', icon_class=icon_document_download, + permissions=(permission_document_download,), text=_('Advanced download'), + view='documents:document_download_form', ) link_document_print = Link( - args='resolved_object.id', permissions=(permission_document_print,), + args='resolved_object.id', icon_class=icon_document_print, + permissions=(permission_document_print,), text=_('Print'), view='documents:document_print', ) link_document_quick_download = Link( @@ -146,6 +155,7 @@ link_document_update_page_count = Link( view='documents:document_update_page_count' ) link_document_restore = Link( + icon_class=icon_document_restore, permissions=(permission_document_restore,), text=_('Restore'), view='documents:document_restore', args='object.pk' ) @@ -159,8 +169,8 @@ link_document_multiple_trash = Link( view='documents:document_multiple_trash' ) link_document_multiple_delete = Link( - tags='dangerous', text=_('Delete'), - view='documents:document_multiple_delete' + icon_class=icon_document_multiple_delete, tags='dangerous', + text=_('Delete'), view='documents:document_multiple_delete' ) link_document_multiple_favorites_add = Link( text=_('Add to favorites'), @@ -182,7 +192,8 @@ link_document_multiple_update_page_count = Link( view='documents:document_multiple_update_page_count' ) link_document_multiple_restore = Link( - text=_('Restore'), view='documents:document_multiple_restore' + icon_class=icon_document_multiepl_restore, text=_('Restore'), + view='documents:document_multiple_restore' ) # Versions @@ -242,8 +253,8 @@ link_clear_image_cache = Link( view='documents:document_clear_image_cache' ) link_trash_can_empty = Link( - permissions=(permission_empty_trash,), text=_('Empty trash'), - view='documents:trash_can_empty' + icon_class=icon_trash_can_empty, permissions=(permission_empty_trash,), + text=_('Empty trash'), view='documents:trash_can_empty' ) # Document pages @@ -356,6 +367,7 @@ link_document_type_filename_list = Link( view='documents:document_type_filename_list', ) link_document_type_list = Link( + icon_class=icon_document_type_list, permissions=(permission_document_type_view,), text=_('Document types'), view='documents:document_type_list' ) diff --git a/mayan/apps/mailer/apps.py b/mayan/apps/mailer/apps.py index 20e63974a3..f3c696eb68 100644 --- a/mayan/apps/mailer/apps.py +++ b/mayan/apps/mailer/apps.py @@ -20,8 +20,8 @@ from mayan.celery import app from .classes import MailerBackend from .links import ( - link_send_document, link_send_document_link, link_send_multiple_document, - link_send_multiple_document_link, link_system_mailer_error_log, + link_document_send, link_document_send_link, link_document_multiple_send, + link_document_multiple_send_link, link_system_mailer_error_log, link_user_mailer_create, link_user_mailer_delete, link_user_mailer_edit, link_user_mailer_list, link_user_mailer_log_list, link_user_mailer_setup, link_user_mailer_test @@ -98,13 +98,13 @@ class MailerApp(MayanAppConfig): menu_multi_item.bind_links( links=( - link_send_multiple_document, link_send_multiple_document_link + link_document_multiple_send, link_document_multiple_send_link ), sources=(Document,) ) menu_object.bind_links( links=( - link_send_document_link, link_send_document + link_document_send_link, link_document_send ), sources=(Document,) ) diff --git a/mayan/apps/mailer/icons.py b/mayan/apps/mailer/icons.py index 86f56ea419..7cdedd1532 100644 --- a/mayan/apps/mailer/icons.py +++ b/mayan/apps/mailer/icons.py @@ -2,6 +2,18 @@ from __future__ import absolute_import, unicode_literals from mayan.apps.appearance.classes import Icon +icon_document_send = Icon( + driver_name='fontawesome', symbol='envelope' +) +icon_document_send_link = Icon( + driver_name='fontawesome', symbol='envelope' +) +icon_document_multiple_send = Icon( + driver_name='fontawesome', symbol='envelope' +) +icon_document_multiple_send_link = Icon( + driver_name='fontawesome', symbol='envelope' +) icon_mail_document_submit = Icon( driver_name='fontawesome', symbol='envelope' ) @@ -9,5 +21,8 @@ icon_system_mailer_error_log = Icon( driver_name='fontawesome', symbol='envelope' ) icon_user_mailer_create = Icon(driver_name='fontawesome', symbol='plus') +icon_user_mailer_delete = Icon(driver_name='fontawesome', symbol='times') +icon_user_mailer_edit = Icon(driver_name='fontawesome', symbol='pencil-alt') icon_user_mailer_list = Icon(driver_name='fontawesome', symbol='envelope') icon_user_mailer_setup = Icon(driver_name='fontawesome', symbol='envelope') +icon_user_mailer_test = Icon(driver_name='fontawesome', symbol='play') diff --git a/mayan/apps/mailer/links.py b/mayan/apps/mailer/links.py index 0db072ef4d..e700537f6f 100644 --- a/mayan/apps/mailer/links.py +++ b/mayan/apps/mailer/links.py @@ -5,8 +5,16 @@ from django.utils.translation import ugettext_lazy as _ from mayan.apps.navigation import Link from .icons import ( + icon_document_send, + icon_document_send_link, + icon_document_multiple_send, + icon_document_multiple_send_link, + icon_system_mailer_error_log, icon_user_mailer_create, - icon_user_mailer_list, icon_user_mailer_setup + icon_user_mailer_delete,icon_user_mailer_edit, + + icon_user_mailer_list, icon_user_mailer_setup, + icon_user_mailer_test ) from .permissions import ( permission_mailing_link, permission_mailing_send_document, @@ -15,19 +23,23 @@ from .permissions import ( permission_user_mailer_view, permission_view_error_log ) -link_send_document = Link( - args='resolved_object.pk', permissions=(permission_mailing_send_document,), - text=_('Email document'), view='mailer:send_document' +link_document_send = Link( + args='resolved_object.pk', icon_class=icon_document_send, + permissions=(permission_mailing_send_document,), text=_('Email document'), + view='mailer:document_send' ) -link_send_document_link = Link( - args='resolved_object.pk', permissions=(permission_mailing_link,), - text=_('Email link'), view='mailer:send_document_link' +link_document_send_link = Link( + args='resolved_object.pk', icon_class=icon_document_send_link, + permissions=(permission_mailing_link,), text=_('Email link'), + view='mailer:document_send_link' ) -link_send_multiple_document = Link( - text=_('Email document'), view='mailer:send_multiple_document' +link_document_multiple_send = Link( + icon_class=icon_document_multiple_send, text=_('Email document'), + view='mailer:document_multiple_send' ) -link_send_multiple_document_link = Link( - text=_('Email link'), view='mailer:send_multiple_document_link' +link_document_multiple_send_link = Link( + icon_class=icon_document_multiple_send_link, text=_('Email link'), + view='mailer:document_multiple_send_link' ) link_system_mailer_error_log = Link( icon_class=icon_system_mailer_error_log, @@ -40,12 +52,14 @@ link_user_mailer_create = Link( text=_('User mailer create'), view='mailer:user_mailer_backend_selection', ) link_user_mailer_delete = Link( - args='resolved_object.pk', permissions=(permission_user_mailer_delete,), - tags='dangerous', text=_('Delete'), view='mailer:user_mailer_delete', + args='resolved_object.pk', icon_class=icon_user_mailer_delete, + permissions=(permission_user_mailer_delete,), tags='dangerous', + text=_('Delete'), view='mailer:user_mailer_delete', ) link_user_mailer_edit = Link( - args='object.pk', permissions=(permission_user_mailer_edit,), - text=_('Edit'), view='mailer:user_mailer_edit', + args='object.pk', icon_class=icon_user_mailer_edit, + permissions=(permission_user_mailer_edit,), text=_('Edit'), + view='mailer:user_mailer_edit', ) link_user_mailer_log_list = Link( args='object.pk', permissions=(permission_user_mailer_view,), @@ -62,6 +76,7 @@ link_user_mailer_setup = Link( text=_('Mailing profiles'), view='mailer:user_mailer_list', ) link_user_mailer_test = Link( - args='object.pk', permissions=(permission_user_mailer_use,), - text=_('Test'), view='mailer:user_mailer_test', + args='object.pk', icon_class=icon_user_mailer_test, + permissions=(permission_user_mailer_use,), text=_('Test'), + view='mailer:user_mailer_test', ) diff --git a/mayan/apps/mailer/urls.py b/mayan/apps/mailer/urls.py index 850d7eef3c..31b8f81e1b 100644 --- a/mayan/apps/mailer/urls.py +++ b/mayan/apps/mailer/urls.py @@ -11,20 +11,20 @@ from .views import ( urlpatterns = [ url( - r'^(?P\d+)/send/link/$', MailDocumentLinkView.as_view(), - name='send_document_link' + r'^documents/(?P\d+)/send/link/$', MailDocumentLinkView.as_view(), + name='document_send_link' ), url( - r'^multiple/send/link/$', MailDocumentLinkView.as_view(), - name='send_multiple_document_link' + r'^documents/multiple/send/link/$', MailDocumentLinkView.as_view(), + name='document_multiple_send_link' ), url( - r'^(?P\d+)/send/document/$', MailDocumentView.as_view(), - name='send_document' + r'^documents/(?P\d+)/send/$', MailDocumentView.as_view(), + name='document_send' ), url( - r'^multiple/send/document/$', MailDocumentView.as_view(), - name='send_multiple_document' + r'^documents/multiple/send/document/$', MailDocumentView.as_view(), + name='document_multiple_send' ), url( r'^system_mailer/log/$', SystemMailerLogEntryListView.as_view(), diff --git a/mayan/apps/metadata/apps.py b/mayan/apps/metadata/apps.py index 94b0650ee9..58ec8ff5cf 100644 --- a/mayan/apps/metadata/apps.py +++ b/mayan/apps/metadata/apps.py @@ -38,12 +38,13 @@ from .handlers import ( handler_post_document_type_change_metadata, handler_index_document, ) from .links import ( - link_metadata_add, link_metadata_edit, link_metadata_multiple_add, - link_metadata_multiple_edit, link_metadata_multiple_remove, - link_metadata_remove, link_metadata_view, - link_setup_document_type_metadata_types, link_setup_metadata_type_create, - link_setup_metadata_type_delete, link_setup_metadata_type_document_types, - link_setup_metadata_type_edit, link_setup_metadata_type_list, + link_document_metadata_add, link_document_metadata_edit, + link_document_multiple_metadata_add, link_document_multiple_metadata_edit, + link_document_multiple_metadata_remove, link_document_metadata_remove, + link_document_metadata_view, link_document_type_metadata_types, + link_metadata_type_create, link_metadata_type_delete, + link_metadata_type_document_types, link_metadata_type_edit, + link_metadata_type_list, ) from .methods import method_get_metadata from .permissions import ( @@ -200,47 +201,51 @@ class MetadataApp(MayanAppConfig): label=_('Metadata value') ) - menu_facet.bind_links(links=(link_metadata_view,), sources=(Document,)) + menu_facet.bind_links( + links=(link_document_metadata_view,), sources=(Document,) + ) menu_list_facet.bind_links( - links=( - link_setup_document_type_metadata_types, - ), sources=(DocumentType,) + links=(link_document_type_metadata_types,), sources=( + DocumentType, + ) ) menu_list_facet.bind_links( links=( - link_acl_list, link_setup_metadata_type_document_types, + link_acl_list, link_metadata_type_document_types, link_object_event_types_user_subcriptions_list, link_events_for_object, ), sources=(MetadataType,) ) menu_multi_item.bind_links( links=( - link_metadata_multiple_add, link_metadata_multiple_edit, - link_metadata_multiple_remove + link_document_multiple_metadata_add, + link_document_multiple_metadata_edit, + link_document_multiple_metadata_remove ), sources=(Document,) ) menu_object.bind_links( links=( - link_setup_metadata_type_edit, - link_setup_metadata_type_delete, + link_metadata_type_edit, link_metadata_type_delete, ), sources=(MetadataType,) ) menu_secondary.bind_links( links=( - link_setup_metadata_type_list, - link_setup_metadata_type_create + link_metadata_type_list, link_metadata_type_create ), sources=( - MetadataType, 'metadata:setup_metadata_type_list', - 'metadata:setup_metadata_type_create' + MetadataType, 'metadata:metadata_type_list', + 'metadata:metadata_type_create' ) ) - menu_setup.bind_links(links=(link_setup_metadata_type_list,)) + menu_setup.bind_links(links=(link_metadata_type_list,)) menu_sidebar.bind_links( links=( - link_metadata_add, link_metadata_edit, link_metadata_remove + link_document_metadata_add, link_document_metadata_edit, + link_document_metadata_remove ), sources=( - 'metadata:metadata_add', 'metadata:metadata_edit', - 'metadata:metadata_remove', 'metadata:metadata_view' + 'metadata:document_metadata_add', + 'metadata:document_metadata_edit', + 'metadata:document_metadata_remove', + 'metadata:document_metadata_view' ) ) diff --git a/mayan/apps/metadata/icons.py b/mayan/apps/metadata/icons.py index dfc41d3bc1..93a7760739 100644 --- a/mayan/apps/metadata/icons.py +++ b/mayan/apps/metadata/icons.py @@ -3,15 +3,42 @@ from __future__ import absolute_import, unicode_literals from mayan.apps.appearance.classes import Icon icon_document_metadata_add = Icon( - driver_name='fontawesome', symbol='plus' + driver_name='fontawesome-dual', primary_symbol='database', + secondary_symbol='plus' ) icon_document_metadata_edit = Icon( - driver_name='fontawesome', symbol='pencil-alt' + driver_name='fontawesome-dual', primary_symbol='database', + secondary_symbol='pen' ) icon_document_metadata_remove = Icon( - driver_name='fontawesome', symbol='minus' + driver_name='fontawesome-dual', primary_symbol='database', + secondary_symbol='minus' ) -icon_metadata = Icon(driver_name='fontawesome', symbol='pencil-alt') +icon_document_metadata_view = Icon( + driver_name='fontawesome', symbol='database' +) +icon_document_multiple_metadata_add = Icon( + driver_name='fontawesome-dual', primary_symbol='database', + secondary_symbol='plus' +) +icon_document_multiple_metadata_edit = Icon( + driver_name='fontawesome-dual', primary_symbol='database', + secondary_symbol='pen' +) +icon_document_multiple_metadata_remove = Icon( + driver_name='fontawesome-dual', primary_symbol='database', + secondary_symbol='minus' +) + +icon_document_type_metadata_types = Icon( + driver_name='fontawesome', symbol='database' +) + +icon_metadata = Icon(driver_name='fontawesome', symbol='database') icon_metadata_type_create = Icon(driver_name='fontawesome', symbol='plus') -icon_metadata_type = Icon(driver_name='fontawesome', symbol='pencil-alt') -icon_metadata_view = Icon(driver_name='fontawesome', symbol='pencil-alt') +icon_metadata_type_delete = Icon(driver_name='fontawesome', symbol='times') +icon_metadata_type_document_types = Icon( + driver_name='fontawesome', symbol='book' +) +icon_metadata_type_edit = Icon(driver_name='fontawesome', symbol='pencil-alt') +icon_metadata_type_list = Icon(driver_name='fontawesome', symbol='database') diff --git a/mayan/apps/metadata/links.py b/mayan/apps/metadata/links.py index dc6689bcdf..aa15ddd82b 100644 --- a/mayan/apps/metadata/links.py +++ b/mayan/apps/metadata/links.py @@ -7,8 +7,13 @@ from mayan.apps.documents.permissions import permission_document_type_edit from mayan.apps.navigation import Link from .icons import ( - icon_document_metadata_add, icon_metadata_type, icon_metadata_view, - icon_metadata_type_create + icon_document_metadata_add, icon_document_metadata_edit, + icon_document_metadata_remove, icon_document_metadata_view, + icon_document_multiple_metadata_add, icon_document_multiple_metadata_edit, + icon_document_multiple_metadata_remove, icon_metadata_type_create, + icon_document_type_metadata_types, icon_metadata_type_document_types, + icon_metadata_type_delete, icon_metadata_type_edit, + icon_metadata_type_list, ) from .permissions import ( permission_metadata_document_add, permission_metadata_document_edit, @@ -17,57 +22,68 @@ from .permissions import ( permission_metadata_type_edit, permission_metadata_type_view ) -link_metadata_add = Link( +link_document_metadata_add = Link( args='object.pk', icon_class=icon_document_metadata_add, permissions=(permission_metadata_document_add,), text=_('Add metadata'), - view='metadata:metadata_add', + view='metadata:document_metadata_add', ) -link_metadata_edit = Link( - args='object.pk', permissions=(permission_metadata_document_edit,), - text=_('Edit metadata'), view='metadata:metadata_edit' +link_document_metadata_edit = Link( + args='object.pk', icon_class=icon_document_metadata_edit, + permissions=(permission_metadata_document_edit,), text=_('Edit metadata'), + view='metadata:document_metadata_edit' ) -link_metadata_multiple_add = Link( - text=_('Add metadata'), view='metadata:metadata_multiple_add' +link_document_multiple_metadata_add = Link( + icon_class=icon_document_multiple_metadata_add, text=_('Add metadata'), + view='metadata:document_multiple_metadata_add' ) -link_metadata_multiple_edit = Link( - text=_('Edit metadata'), view='metadata:metadata_multiple_edit' +link_document_multiple_metadata_edit = Link( + icon_class=icon_document_multiple_metadata_edit, text=_('Edit metadata'), + view='metadata:document_multiple_metadata_edit' ) -link_metadata_multiple_remove = Link( - text=_('Remove metadata'), view='metadata:metadata_multiple_remove' +link_document_multiple_metadata_remove = Link( + icon_class=icon_document_multiple_metadata_remove, + text=_('Remove metadata'), + view='metadata:document_multiple_metadata_remove' ) -link_metadata_remove = Link( - args='object.pk', permissions=(permission_metadata_document_remove,), - text=_('Remove metadata'), view='metadata:metadata_remove', +link_document_metadata_remove = Link( + args='object.pk', icon_class=icon_document_metadata_remove, + permissions=(permission_metadata_document_remove,), + text=_('Remove metadata'), view='metadata:document_metadata_remove', ) -link_metadata_view = Link( - args='resolved_object.pk', icon_class=icon_metadata_view, +link_document_metadata_view = Link( + args='resolved_object.pk', icon_class=icon_document_metadata_view, permissions=(permission_metadata_document_view,), text=_('Metadata'), - view='metadata:metadata_view', + view='metadata:document_metadata_view', ) -link_setup_document_type_metadata_types = Link( - args='resolved_object.pk', icon_class=icon_metadata_type, +link_document_type_metadata_types = Link( + args='resolved_object.pk', icon_class=icon_document_type_metadata_types, permissions=(permission_document_type_edit,), text=_('Metadata types'), - view='metadata:setup_document_type_metadata_types', + view='metadata:document_type_metadata_types', ) -link_setup_metadata_type_document_types = Link( - args='resolved_object.pk', icon_class=icon_document_type, +link_metadata_type_document_types = Link( + args='resolved_object.pk', icon_class=icon_metadata_type_document_types, permissions=(permission_document_type_edit,), text=_('Document types'), - view='metadata:setup_metadata_type_document_types', + view='metadata:metadata_type_document_types', ) -link_setup_metadata_type_create = Link( +link_metadata_type_create = Link( icon_class=icon_metadata_type_create, permissions=(permission_metadata_type_create,), text=_('Create new'), - view='metadata:setup_metadata_type_create' + view='metadata:metadata_type_create' ) -link_setup_metadata_type_delete = Link( - args='object.pk', permissions=(permission_metadata_type_delete,), - tags='dangerous', text=_('Delete'), view='metadata:setup_metadata_type_delete', +link_metadata_type_delete = Link( + args='object.pk', icon_class=icon_metadata_type_delete, + permissions=(permission_metadata_type_delete,), tags='dangerous', + text=_('Delete'), view='metadata:metadata_type_delete', ) -link_setup_metadata_type_edit = Link( - args='object.pk', permissions=(permission_metadata_type_edit,), - text=_('Edit'), view='metadata:setup_metadata_type_edit' +link_metadata_type_edit = Link( + args='object.pk', icon_class=icon_metadata_type_edit, + permissions=(permission_metadata_type_edit,), text=_('Edit'), + view='metadata:metadata_type_edit' ) -link_setup_metadata_type_list = Link( - icon_class=icon_metadata_view, permissions=(permission_metadata_type_view,), - text=_('Metadata types'), view='metadata:setup_metadata_type_list' +link_metadata_type_list = Link( + icon_class=icon_metadata_type_list, + permissions=(permission_metadata_type_view,), text=_('Metadata types'), + view='metadata:metadata_type_list' ) + + diff --git a/mayan/apps/metadata/urls.py b/mayan/apps/metadata/urls.py index 52360725ae..84501fe4ef 100644 --- a/mayan/apps/metadata/urls.py +++ b/mayan/apps/metadata/urls.py @@ -17,59 +17,59 @@ from .views import ( urlpatterns = [ url( - r'^(?P\d+)/edit/$', DocumentMetadataEditView.as_view(), - name='metadata_edit' + r'^documents/(?P\d+)/edit/$', DocumentMetadataEditView.as_view(), + name='document_metadata_edit' ), url( - r'^multiple/edit/$', DocumentMetadataEditView.as_view(), - name='metadata_multiple_edit' + r'^documents/multiple/edit/$', DocumentMetadataEditView.as_view(), + name='document_multiple_metadata_edit' ), url( - r'^(?P\d+)/view/$', DocumentMetadataListView.as_view(), - name='metadata_view' + r'^documents/(?P\d+)/view/$', DocumentMetadataListView.as_view(), + name='document_metadata_view' ), url( - r'^(?P\d+)/add/$', DocumentMetadataAddView.as_view(), - name='metadata_add' + r'^documents/(?P\d+)/add/$', DocumentMetadataAddView.as_view(), + name='document_metadata_add' ), url( - r'^multiple/add/$', DocumentMetadataAddView.as_view(), - name='metadata_multiple_add' + r'^documents/multiple/add/$', DocumentMetadataAddView.as_view(), + name='document_multiple_metadata_add' ), url( - r'^(?P\d+)/remove/$', DocumentMetadataRemoveView.as_view(), - name='metadata_remove' + r'^documents/(?P\d+)/remove/$', DocumentMetadataRemoveView.as_view(), + name='document_metadata_remove' ), url( - r'^multiple/remove/$', DocumentMetadataRemoveView.as_view(), - name='metadata_multiple_remove' + r'^documents/multiple/remove/$', DocumentMetadataRemoveView.as_view(), + name='document_multiple_metadata_remove' ), url( - r'^setup/type/list/$', MetadataTypeListView.as_view(), - name='setup_metadata_type_list' + r'^types/list/$', MetadataTypeListView.as_view(), + name='metadata_type_list' ), url( - r'^setup/type/create/$', MetadataTypeCreateView.as_view(), - name='setup_metadata_type_create' + r'^types/create/$', MetadataTypeCreateView.as_view(), + name='metadata_type_create' ), url( - r'^setup/type/(?P\d+)/edit/$', MetadataTypeEditView.as_view(), - name='setup_metadata_type_edit' + r'^types/(?P\d+)/edit/$', MetadataTypeEditView.as_view(), + name='metadata_type_edit' ), url( - r'^setup/type/(?P\d+)/delete/$', - MetadataTypeDeleteView.as_view(), name='setup_metadata_type_delete' + r'^types/(?P\d+)/delete/$', + MetadataTypeDeleteView.as_view(), name='metadata_type_delete' ), url( - r'^setup/document_types/(?P\d+)/metadata_types/$', + r'^document_types/(?P\d+)/metadata_types/$', SetupDocumentTypeMetadataTypes.as_view(), - name='setup_document_type_metadata_types' + name='document_type_metadata_types' ), url( - r'^setup/metadata_types/(?P\d+)/document_types/$', + r'^metadata_types/(?P\d+)/document_types/$', SetupMetadataTypesDocumentTypes.as_view(), - name='setup_metadata_type_document_types' + name='metadata_type_document_types' ), ] diff --git a/mayan/apps/metadata/views.py b/mayan/apps/metadata/views.py index 4c5879b156..7928db0887 100644 --- a/mayan/apps/metadata/views.py +++ b/mayan/apps/metadata/views.py @@ -32,8 +32,8 @@ from .icons import ( icon_document_metadata_remove, icon_metadata ) from .links import ( - link_metadata_add, link_metadata_multiple_add, - link_setup_metadata_type_create + link_document_metadata_add, link_document_multiple_metadata_add, + link_metadata_type_create ) from .models import DocumentMetadata, MetadataType from .permissions import ( @@ -78,13 +78,17 @@ class DocumentMetadataAddView(MultipleObjectFormActionView): if self.action_count == 1: return HttpResponseRedirect( - reverse('metadata:metadata_edit', args=(queryset.first().pk,)), + reverse( + viewname='metadata:document_metadata_edit', + args=(queryset.first().pk,) + ) ) elif self.action_count > 1: return HttpResponseRedirect( '%s?%s' % ( - reverse('metadata:metadata_multiple_edit'), - urlencode( + reverse( + viewname='metadata:document_metadata_multiple_edit' + ), urlencode( { 'id_list': ','.join( map( @@ -242,13 +246,17 @@ class DocumentMetadataEditView(MultipleObjectFormActionView): if self.action_count == 1: return HttpResponseRedirect( - reverse('metadata:metadata_edit', args=(queryset.first().pk,)), + reverse( + viewname='metadata:document_metadata_edit', + args=(queryset.first().pk,) + ) ) elif self.action_count > 1: return HttpResponseRedirect( '%s?%s' % ( - reverse('metadata:metadata_multiple_edit'), - urlencode( + reverse( + viewname='metadata:document_metadata_multiple_edit' + ), urlencode( { 'id_list': ','.join( map( @@ -275,13 +283,13 @@ class DocumentMetadataEditView(MultipleObjectFormActionView): ) if queryset.count() == 1: - no_results_main_link = link_metadata_add.resolve( + no_results_main_link = link_document_metadata_add.resolve( context=RequestContext( request=self.request, dict_={'object': queryset.first()} ) ) else: - no_results_main_link = link_metadata_multiple_add.resolve( + no_results_main_link = link_document_multiple_metadata_add.resolve( context=RequestContext(request=self.request) ) no_results_main_link.url = '{}?id_list={}'.format( @@ -405,7 +413,7 @@ class DocumentMetadataListView(SingleObjectListView): 'hide_object': True, 'object': document, 'no_results_icon': icon_metadata, - 'no_results_main_link': link_metadata_add.resolve( + 'no_results_main_link': link_document_metadata_add.resolve( context=RequestContext( request=self.request, dict_={'object': document} ) @@ -460,13 +468,17 @@ class DocumentMetadataRemoveView(MultipleObjectFormActionView): if self.action_count == 1: return HttpResponseRedirect( - reverse('metadata:metadata_edit', args=(queryset.first().pk,)), + reverse( + viewname='metadata:document_metadata_edit', + args=(queryset.first().pk,) + ) ) elif self.action_count > 1: return HttpResponseRedirect( '%s?%s' % ( - reverse('metadata:metadata_multiple_edit'), - urlencode( + reverse( + viewname='metadata:document_metadata_multiple_edit' + ), urlencode( { 'id_list': ','.join( map( @@ -573,7 +585,9 @@ class MetadataTypeCreateView(SingleObjectCreateView): extra_context = {'title': _('Create metadata type')} form_class = MetadataTypeForm model = MetadataType - post_action_redirect = reverse_lazy('metadata:setup_metadata_type_list') + post_action_redirect = reverse_lazy( + viewname='metadata:metadata_type_list' + ) view_permission = permission_metadata_type_create def get_save_extra_data(self): @@ -585,7 +599,9 @@ class MetadataTypeCreateView(SingleObjectCreateView): class MetadataTypeDeleteView(SingleObjectDeleteView): model = MetadataType object_permission = permission_metadata_type_delete - post_action_redirect = reverse_lazy('metadata:setup_metadata_type_list') + post_action_redirect = reverse_lazy( + viewname='metadata:metadata_type_list' + ) def get_extra_context(self): return { @@ -599,7 +615,9 @@ class MetadataTypeEditView(SingleObjectEditView): form_class = MetadataTypeForm model = MetadataType object_permission = permission_metadata_type_edit - post_action_redirect = reverse_lazy('metadata:setup_metadata_type_list') + post_action_redirect = reverse_lazy( + viewname='metadata:metadata_type_list' + ) def get_extra_context(self): return { @@ -620,7 +638,7 @@ class MetadataTypeListView(SingleObjectListView): return { 'hide_object': True, 'no_results_icon': icon_metadata, - 'no_results_main_link': link_setup_metadata_type_create.resolve( + 'no_results_main_link': link_metadata_type_create.resolve( context=RequestContext(request=self.request) ), 'no_results_text': _( @@ -667,7 +685,7 @@ class SetupDocumentTypeMetadataTypes(FormView): return { 'form_display_mode_table': True, 'no_results_icon': icon_metadata, - 'no_results_main_link': link_setup_metadata_type_create.resolve( + 'no_results_main_link': link_metadata_type_create.resolve( context=RequestContext(request=self.request) ), 'no_results_text': _( @@ -745,4 +763,4 @@ class SetupMetadataTypesDocumentTypes(SetupDocumentTypeMetadataTypes): return initial def get_post_action_redirect(self): - return reverse('metadata:setup_metadata_type_list') + return reverse(viewname='metadata:metadata_type_list') diff --git a/mayan/apps/permissions/icons.py b/mayan/apps/permissions/icons.py index c3c805ba59..860b5b537e 100644 --- a/mayan/apps/permissions/icons.py +++ b/mayan/apps/permissions/icons.py @@ -4,4 +4,8 @@ from mayan.apps.appearance.classes import Icon icon_permission = Icon(driver_name='fontawesome', symbol='thumbs-up') icon_role_create = Icon(driver_name='fontawesome', symbol='plus') +icon_role_delete = Icon(driver_name='fontawesome', symbol='times') +icon_role_edit = Icon(driver_name='fontawesome', symbol='pencil-alt') +icon_role_groups = Icon(driver_name='fontawesome', symbol='users') icon_role_list = Icon(driver_name='fontawesome', symbol='user-secret') +icon_role_permissions = Icon(driver_name='fontawesome', symbol='thumbs-up') diff --git a/mayan/apps/permissions/links.py b/mayan/apps/permissions/links.py index c28a004954..42c194a6ae 100644 --- a/mayan/apps/permissions/links.py +++ b/mayan/apps/permissions/links.py @@ -6,7 +6,10 @@ from mayan.apps.navigation import Link from mayan.apps.user_management.icons import icon_group from mayan.apps.user_management.permissions import permission_group_edit -from .icons import icon_permission, icon_role_create, icon_role_list +from .icons import ( + icon_permission, icon_role_create, icon_role_delete, icon_role_edit, + icon_role_groups, icon_role_list, icon_role_permissions +) from .permissions import ( permission_permission_grant, permission_permission_revoke, permission_role_create, permission_role_delete, permission_role_edit, @@ -31,11 +34,13 @@ link_role_create = Link( text=_('Create new role'), view='permissions:role_create' ) link_role_delete = Link( - args='object.id', permissions=(permission_role_delete,), tags='dangerous', - text=_('Delete'), view='permissions:role_delete', + args='object.id', icon_class=icon_role_delete, + permissions=(permission_role_delete,), tags='dangerous', text=_('Delete'), + view='permissions:role_delete', ) link_role_edit = Link( - args='object.id', permissions=(permission_role_edit,), text=_('Edit'), + args='object.id', icon_class=icon_role_edit, + permissions=(permission_role_edit,), text=_('Edit'), view='permissions:role_edit', ) link_role_list = Link( @@ -43,12 +48,12 @@ link_role_list = Link( text=_('Roles'), view='permissions:role_list' ) link_role_groups = Link( - args='object.id', icon_class=icon_group, + args='object.id', icon_class=icon_role_groups, permissions=(permission_role_edit,), text=_('Groups'), view='permissions:role_groups', ) link_role_permissions = Link( - args='object.id', icon_class=icon_permission, + args='object.id', icon_class=icon_role_permissions, permissions=(permission_permission_grant, permission_permission_revoke), text=_('Role permissions'), view='permissions:role_permissions', ) diff --git a/mayan/apps/tags/icons.py b/mayan/apps/tags/icons.py index 12372789e5..a5f55f6e96 100644 --- a/mayan/apps/tags/icons.py +++ b/mayan/apps/tags/icons.py @@ -2,10 +2,31 @@ from __future__ import absolute_import, unicode_literals from mayan.apps.appearance.classes import Icon -icon_menu_tags = Icon(driver_name='fontawesome', symbol='tag') -icon_tag_attach = Icon(driver_name='fontawesome', symbol='plus') -icon_tag_create = Icon(driver_name='fontawesome', symbol='plus') +icon_menu_tags = Icon(driver_name='fontawesome', symbol='tags') +icon_multiple_documents_tag_attach = Icon( + driver_name='fontawesome-dual', primary_symbol='tag', + secondary_symbol='arrow-right' +) +icon_multiple_documents_tag_remove = Icon( + driver_name='fontawesome-dual', primary_symbol='tag', + secondary_symbol='minus' +) +icon_tag_attach = Icon( + driver_name='fontawesome-dual', primary_symbol='tag', + secondary_symbol='arrow-right' +) +icon_tag_create = Icon( + driver_name='fontawesome-dual', primary_symbol='tag', + secondary_symbol='plus' +) +icon_tag_delete = Icon(driver_name='fontawesome', symbol='times') +icon_tag_edit = Icon(driver_name='fontawesome', symbol='pen') icon_tag_delete_submit = Icon(driver_name='fontawesome', symbol='times') -icon_tag_document_list = Icon(driver_name='fontawesome', symbol='tag') -icon_tag_list = Icon(driver_name='fontawesome', symbol='tag') +icon_tag_document_list = Icon(driver_name='fontawesome', symbol='tags') +icon_tag_list = Icon(driver_name='fontawesome', symbol='tags') +icon_tag_multiple_delete = Icon(driver_name='fontawesome', symbol='times') +icon_tag_remove = Icon( + driver_name='fontawesome-dual', primary_symbol='tag', + secondary_symbol='minus' +) icon_tag_remove_submit = Icon(driver_name='fontawesome', symbol='minus') diff --git a/mayan/apps/tags/links.py b/mayan/apps/tags/links.py index 8da32cf19b..17ce2eee4c 100644 --- a/mayan/apps/tags/links.py +++ b/mayan/apps/tags/links.py @@ -6,7 +6,10 @@ from mayan.apps.documents.icons import icon_document_list from mayan.apps.navigation import Link, get_cascade_condition from .icons import ( - icon_tag_attach, icon_tag_create, icon_tag_document_list, icon_tag_list + icon_multiple_documents_tag_attach, icon_multiple_documents_tag_remove, + icon_tag_attach, icon_tag_create, icon_tag_delete, icon_tag_edit, + icon_tag_document_list, icon_tag_list, icon_tag_multiple_delete, + icon_tag_remove ) from .permissions import ( permission_tag_attach, permission_tag_create, permission_tag_delete, @@ -20,14 +23,17 @@ link_document_tag_list = Link( view='tags:document_tags', ) link_multiple_documents_tag_remove = Link( - text=_('Remove tag'), view='tags:multiple_documents_selection_tag_remove' + icon_class=icon_multiple_documents_tag_remove, text=_('Remove tag'), + view='tags:multiple_documents_selection_tag_remove' ) link_multiple_documents_attach_tag = Link( - text=_('Attach tags'), view='tags:multiple_documents_tag_attach' + icon_class=icon_multiple_documents_tag_attach, text=_('Attach tags'), + view='tags:multiple_documents_tag_attach' ) link_single_document_multiple_tag_remove = Link( - args='object.id', permissions=(permission_tag_remove,), - text=_('Remove tags'), view='tags:single_document_multiple_tag_remove', + args='object.id', icon_class=icon_tag_remove, + permissions=(permission_tag_remove,), text=_('Remove tags'), + view='tags:single_document_multiple_tag_remove', ) link_tag_attach = Link( args='object.pk', icon_class=icon_tag_attach, @@ -39,12 +45,13 @@ link_tag_create = Link( text=_('Create new tag'), view='tags:tag_create' ) link_tag_delete = Link( - args='object.id', permissions=(permission_tag_delete,), tags='dangerous', - text=_('Delete'), view='tags:tag_delete', + args='object.id', icon_class=icon_tag_delete, + permissions=(permission_tag_delete,), tags='dangerous', text=_('Delete'), + view='tags:tag_delete', ) link_tag_edit = Link( - args='object.id', permissions=(permission_tag_edit,), text=_('Edit'), - view='tags:tag_edit', + args='object.id', icon_class=icon_tag_edit, + permissions=(permission_tag_edit,), text=_('Edit'), view='tags:tag_edit', ) link_tag_list = Link( condition=get_cascade_condition( @@ -53,8 +60,8 @@ link_tag_list = Link( ), icon_class=icon_tag_list, text=_('All'), view='tags:tag_list' ) link_tag_multiple_delete = Link( - permissions=(permission_tag_delete,), text=_('Delete'), - view='tags:tag_multiple_delete' + icon_class=icon_tag_multiple_delete, permissions=(permission_tag_delete,), + text=_('Delete'), view='tags:tag_multiple_delete' ) link_tag_tagged_item_list = Link( args='object.id', icon_class=icon_document_list, text=('Documents'), diff --git a/mayan/apps/user_management/apps.py b/mayan/apps/user_management/apps.py index b36eada9e5..875fc8066c 100644 --- a/mayan/apps/user_management/apps.py +++ b/mayan/apps/user_management/apps.py @@ -91,25 +91,32 @@ class UserManagementApp(MayanAppConfig): ) ) - SourceColumn(attribute='name', is_identifier=True, source=Group) + SourceColumn( + attribute='name', is_identifier=True, is_sortable=True, + label=_('Name'), source=Group + ) SourceColumn( attribute='user_set.count', label=_('Users'), source=Group ) SourceColumn( attribute='username', is_absolute_url=True, is_identifier=True, - label=_('Username'), source=User + is_sortable=True, label=_('Username'), source=User ) SourceColumn( - attribute='get_full_name', label=_('Full name'), source=User - ) - SourceColumn(attribute='email', label=_('Email'), source=User) - SourceColumn( - attribute='is_active', label=_('Active'), source=User, - widget=TwoStateWidget + attribute='first_name', is_sortable=True, label=_('First name'), + source=User ) SourceColumn( - attribute='has_usable_password', source=User, widget=TwoStateWidget + attribute='last_name', is_sortable=True, label=_('Last name'), + source=User + ) + SourceColumn( + attribute='email', is_sortable=True, label=_('Email'), source=User + ) + SourceColumn( + attribute='is_active', is_sortable=True, label=_('Active'), + source=User, widget=TwoStateWidget ) SourceColumn( attribute='has_usable_password', label=_('Has usable password?'), diff --git a/mayan/apps/user_management/icons.py b/mayan/apps/user_management/icons.py index 94cd2623e3..cf942721d5 100644 --- a/mayan/apps/user_management/icons.py +++ b/mayan/apps/user_management/icons.py @@ -6,7 +6,17 @@ icon_current_user_details = Icon(driver_name='fontawesome', symbol='user') icon_current_user_edit = Icon(driver_name='fontawesome', symbol='user') icon_group = Icon(driver_name='fontawesome', symbol='users') icon_group_create = Icon(driver_name='fontawesome', symbol='plus') +icon_group_delete = Icon(driver_name='fontawesome', symbol='times') +icon_group_edit = Icon(driver_name='fontawesome', symbol='pencil-alt') +icon_group_list = Icon(driver_name='fontawesome', symbol='users') icon_group_members = Icon(driver_name='fontawesome', symbol='user') icon_group_setup = Icon(driver_name='fontawesome', symbol='users') icon_user_create = Icon(driver_name='fontawesome', symbol='plus') +icon_user_delete = Icon(driver_name='fontawesome', symbol='times') +icon_user_edit = Icon(driver_name='fontawesome', symbol='pencil-alt') +icon_user_list = Icon(driver_name='fontawesome', symbol='user') +icon_user_multiple_delete = icon_user_delete +icon_user_set_options = Icon(driver_name='fontawesome', symbol='cog') +icon_user_set_password = Icon(driver_name='fontawesome', symbol='key') icon_user_setup = Icon(driver_name='fontawesome', symbol='user') +icon_user_multiple_set_password = icon_user_set_password diff --git a/mayan/apps/user_management/links.py b/mayan/apps/user_management/links.py index 36c794db7d..b6e6de28dd 100644 --- a/mayan/apps/user_management/links.py +++ b/mayan/apps/user_management/links.py @@ -6,8 +6,11 @@ from mayan.apps.navigation import Link, Separator, Text from .icons import ( icon_current_user_details, icon_current_user_edit, icon_group, - icon_group_create, icon_group_members, icon_group_setup, icon_user_create, - icon_user_setup + icon_group_create, icon_group_delete, icon_group_edit, icon_group_list, + icon_group_members, icon_group_setup, icon_user_create, icon_user_delete, + icon_user_edit, icon_user_list, icon_user_multiple_delete, + icon_user_multiple_set_password, icon_user_set_options, + icon_user_set_password, icon_user_setup ) from .permissions import ( permission_group_create, permission_group_delete, permission_group_edit, @@ -35,15 +38,18 @@ link_group_create = Link( text=_('Create new group'), view='user_management:group_create' ) link_group_delete = Link( - args='object.id', permissions=(permission_group_delete,), tags='dangerous', + args='object.id', icon_class=icon_group_delete, + permissions=(permission_group_delete,), tags='dangerous', text=_('Delete'), view='user_management:group_delete', ) link_group_edit = Link( - args='object.id', permissions=(permission_group_edit,), text=_('Edit'), + args='object.id', icon_class=icon_group_edit, + permissions=(permission_group_edit,), text=_('Edit'), view='user_management:group_edit', ) link_group_list = Link( - permissions=(permission_group_view,), text=_('Groups'), + icon_class=icon_group_list, permissions=(permission_group_view,), + text=_('Groups'), view='user_management:group_list' ) link_group_members = Link( @@ -60,11 +66,13 @@ link_user_create = Link( text=_('Create new user'), view='user_management:user_create' ) link_user_delete = Link( - args='object.id', permissions=(permission_user_delete,), tags='dangerous', - text=_('Delete'), view='user_management:user_delete', + args='object.id', icon_class=icon_user_delete, + permissions=(permission_user_delete,), tags='dangerous', text=_('Delete'), + view='user_management:user_delete', ) link_user_edit = Link( - args='object.id', permissions=(permission_user_edit,), text=_('Edit'), + args='object.id', icon_class=icon_user_edit, + permissions=(permission_user_edit,), text=_('Edit'), view='user_management:user_edit', ) link_user_groups = Link( @@ -73,24 +81,28 @@ link_user_groups = Link( text=_('Groups'), view='user_management:user_groups', ) link_user_list = Link( - permissions=(permission_user_view,), text=_('Users'), - view='user_management:user_list' + icon_class=icon_user_list, permissions=(permission_user_view,), + text=_('Users'), view='user_management:user_list' ) link_user_multiple_delete = Link( + icon_class=icon_user_multiple_delete, permissions=(permission_user_delete,), tags='dangerous', text=_('Delete'), view='user_management:user_multiple_delete' ) link_user_multiple_set_password = Link( + icon_class=icon_user_multiple_set_password, permissions=(permission_user_edit,), text=_('Set password'), view='user_management:user_multiple_set_password' ) link_user_set_options = Link( - args='object.id', permissions=(permission_user_edit,), - text=_('User options'), view='user_management:user_options', + args='object.id', icon_class=icon_user_set_options, + permissions=(permission_user_edit,), text=_('User options'), + view='user_management:user_options', ) link_user_set_password = Link( - args='object.id', permissions=(permission_user_edit,), - text=_('Set password'), view='user_management:user_set_password', + args='object.id', icon_class=icon_user_set_password, + permissions=(permission_user_edit,), text=_('Set password'), + view='user_management:user_set_password', ) link_user_setup = Link( icon_class=icon_user_setup, permissions=(permission_user_view,),