diff --git a/mayan/apps/acls/__init__.py b/mayan/apps/acls/__init__.py index e9de03155a..058d86a888 100644 --- a/mayan/apps/acls/__init__.py +++ b/mayan/apps/acls/__init__.py @@ -16,17 +16,17 @@ from .links import (acl_detail, acl_grant, acl_revoke, acl_holder_new, from .models import CreatorSingleton register_links(AccessHolder, [acl_detail]) -register_multi_item_links(['acl_detail'], [acl_grant, acl_revoke]) +register_multi_item_links(['acls:acl_detail'], [acl_grant, acl_revoke]) register_links([AccessObject], [acl_holder_new], menu_name='sidebar') register_setup(acl_setup_valid_classes) -register_links(['acl_setup_valid_classes', 'acl_class_acl_list', 'acl_class_new_holder_for', 'acl_class_acl_detail', 'acl_class_multiple_grant', 'acl_class_multiple_revoke'], [acl_class_list], menu_name='secondary_menu') +register_links(['acls:acl_setup_valid_classes', 'acls:acl_class_acl_list', 'acls:acl_class_new_holder_for', 'acls:acl_class_acl_detail', 'acls:acl_class_multiple_grant', 'acls:acl_class_multiple_revoke'], [acl_class_list], menu_name='secondary_menu') register_links(ClassAccessHolder, [acl_class_acl_detail]) register_links(AccessObjectClass, [acl_class_acl_list, acl_class_new_holder_for]) -register_multi_item_links(['acl_class_acl_detail'], [acl_class_grant, acl_class_revoke]) +register_multi_item_links(['acls:acl_class_acl_detail'], [acl_class_grant, acl_class_revoke]) @receiver(post_migrate, dispatch_uid='create_creator_user') diff --git a/mayan/apps/acls/links.py b/mayan/apps/acls/links.py index ebd75d414c..4540e60aa8 100644 --- a/mayan/apps/acls/links.py +++ b/mayan/apps/acls/links.py @@ -3,16 +3,16 @@ from django.utils.translation import ugettext_lazy as _ from .permissions import (ACLS_EDIT_ACL, ACLS_VIEW_ACL, ACLS_CLASS_EDIT_ACL, ACLS_CLASS_VIEW_ACL) -acl_list = {'text': _(u'ACLs'), 'view': 'acl_list', 'famfam': 'lock', 'permissions': [ACLS_VIEW_ACL]} -acl_detail = {'text': _(u'details'), 'view': 'acl_detail', 'args': ['access_object.gid', 'object.gid'], 'famfam': 'key_go', 'permissions': [ACLS_VIEW_ACL]} -acl_grant = {'text': _(u'grant'), 'view': 'acl_multiple_grant', 'famfam': 'key_add', 'permissions': [ACLS_EDIT_ACL]} -acl_revoke = {'text': _(u'revoke'), 'view': 'acl_multiple_revoke', 'famfam': 'key_delete', 'permissions': [ACLS_EDIT_ACL]} -acl_holder_new = {'text': _(u'New holder'), 'view': 'acl_holder_new', 'args': 'access_object.gid', 'famfam': 'user', 'permissions': [ACLS_EDIT_ACL]} +acl_list = {'text': _(u'ACLs'), 'view': 'acls:acl_list', 'famfam': 'lock', 'permissions': [ACLS_VIEW_ACL]} +acl_detail = {'text': _(u'details'), 'view': 'acls:acl_detail', 'args': ['access_object.gid', 'object.gid'], 'famfam': 'key_go', 'permissions': [ACLS_VIEW_ACL]} +acl_grant = {'text': _(u'grant'), 'view': 'acls:acl_multiple_grant', 'famfam': 'key_add', 'permissions': [ACLS_EDIT_ACL]} +acl_revoke = {'text': _(u'revoke'), 'view': 'acls:acl_multiple_revoke', 'famfam': 'key_delete', 'permissions': [ACLS_EDIT_ACL]} +acl_holder_new = {'text': _(u'New holder'), 'view': 'acls:acl_holder_new', 'args': 'access_object.gid', 'famfam': 'user', 'permissions': [ACLS_EDIT_ACL]} -acl_setup_valid_classes = {'text': _(u'Default ACLs'), 'view': 'acl_setup_valid_classes', 'icon': 'lock.png', 'permissions': [ACLS_CLASS_VIEW_ACL], 'children_view_regex': [r'^acl_class', r'^acl_setup']} -acl_class_list = {'text': _(u'List of classes'), 'view': 'acl_setup_valid_classes', 'famfam': 'package', 'permissions': [ACLS_CLASS_VIEW_ACL]} -acl_class_acl_list = {'text': _(u'ACLs for class'), 'view': 'acl_class_acl_list', 'args': 'object.gid', 'famfam': 'lock_go', 'permissions': [ACLS_CLASS_VIEW_ACL]} -acl_class_acl_detail = {'text': _(u'details'), 'view': 'acl_class_acl_detail', 'args': ['access_object_class.gid', 'object.gid'], 'famfam': 'key_go', 'permissions': [ACLS_CLASS_VIEW_ACL]} -acl_class_new_holder_for = {'text': _(u'New holder'), 'view': 'acl_class_new_holder_for', 'args': 'object.gid', 'famfam': 'user', 'permissions': [ACLS_CLASS_EDIT_ACL]} -acl_class_grant = {'text': _(u'grant'), 'view': 'acl_class_multiple_grant', 'famfam': 'key_add', 'permissions': [ACLS_CLASS_EDIT_ACL]} -acl_class_revoke = {'text': _(u'revoke'), 'view': 'acl_class_multiple_revoke', 'famfam': 'key_delete', 'permissions': [ACLS_CLASS_EDIT_ACL]} +acl_setup_valid_classes = {'text': _(u'Default ACLs'), 'view': 'acls:acl_setup_valid_classes', 'icon': 'lock.png', 'permissions': [ACLS_CLASS_VIEW_ACL], 'children_view_regex': [r'^acl_class', r'^acl_setup']} +acl_class_list = {'text': _(u'List of classes'), 'view': 'acls:acl_setup_valid_classes', 'famfam': 'package', 'permissions': [ACLS_CLASS_VIEW_ACL]} +acl_class_acl_list = {'text': _(u'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': _(u'details'), 'view': 'acls:acl_class_acl_detail', 'args': ['access_object_class.gid', 'object.gid'], 'famfam': 'key_go', 'permissions': [ACLS_CLASS_VIEW_ACL]} +acl_class_new_holder_for = {'text': _(u'New holder'), 'view': 'acls:acl_class_new_holder_for', 'args': 'object.gid', 'famfam': 'user', 'permissions': [ACLS_CLASS_EDIT_ACL]} +acl_class_grant = {'text': _(u'grant'), 'view': 'acls:acl_class_multiple_grant', 'famfam': 'key_add', 'permissions': [ACLS_CLASS_EDIT_ACL]} +acl_class_revoke = {'text': _(u'revoke'), 'view': 'acls:acl_class_multiple_revoke', 'famfam': 'key_delete', 'permissions': [ACLS_CLASS_EDIT_ACL]} diff --git a/mayan/apps/acls/views.py b/mayan/apps/acls/views.py index f0ec32fce8..7a48ebf9be 100644 --- a/mayan/apps/acls/views.py +++ b/mayan/apps/acls/views.py @@ -338,7 +338,7 @@ def acl_new_holder_for(request, obj, extra_context=None, navigation_object=None) return HttpResponseRedirect( u'%s?%s' % ( - reverse('acl_detail', args=[access_object.gid, access_holder.gid]), + reverse('acls:acl_detail', args=[access_object.gid, access_holder.gid]), urlencode(query_string) ) ) @@ -472,7 +472,7 @@ def acl_class_new_holder_for(request, access_object_class_gid): try: access_holder = ClassAccessHolder.get(form.cleaned_data['holder_gid']) - return HttpResponseRedirect(reverse('acl_class_acl_detail', args=[access_object_class.gid, access_holder.gid])) + return HttpResponseRedirect(reverse('acls:acl_class_acl_detail', args=[access_object_class.gid, access_holder.gid])) except ObjectDoesNotExist: raise Http404 else: diff --git a/mayan/apps/bootstrap/links.py b/mayan/apps/bootstrap/links.py index 3057c7bfd9..f070d50c89 100644 --- a/mayan/apps/bootstrap/links.py +++ b/mayan/apps/bootstrap/links.py @@ -8,16 +8,16 @@ from .permissions import (PERMISSION_BOOTSTRAP_VIEW, PERMISSION_BOOTSTRAP_CREATE PERMISSION_NUKE_DATABASE, PERMISSION_BOOTSTRAP_EXPORT, PERMISSION_BOOTSTRAP_IMPORT, PERMISSION_BOOTSTRAP_REPOSITORY_SYNC) -link_bootstrap_setup_tool = {'text': _(u'bootstrap'), 'view': 'bootstrap_setup_list', 'icon': 'lightning.png', 'permissions': [PERMISSION_BOOTSTRAP_VIEW]} -link_bootstrap_setup_list = {'text': _(u'bootstrap setup list'), 'view': 'bootstrap_setup_list', 'famfam': 'lightning', 'permissions': [PERMISSION_BOOTSTRAP_VIEW]} -link_bootstrap_setup_create = {'text': _(u'create new bootstrap setup'), 'view': 'bootstrap_setup_create', 'famfam': 'lightning_add', 'permissions': [PERMISSION_BOOTSTRAP_CREATE]} -link_bootstrap_setup_edit = {'text': _(u'edit'), 'view': 'bootstrap_setup_edit', 'args': 'object.pk', 'famfam': 'pencil', 'permissions': [PERMISSION_BOOTSTRAP_EDIT]} -link_bootstrap_setup_delete = {'text': _(u'delete'), 'view': 'bootstrap_setup_delete', 'args': 'object.pk', 'famfam': 'lightning_delete', 'permissions': [PERMISSION_BOOTSTRAP_DELETE]} -link_bootstrap_setup_view = {'text': _(u'details'), 'view': 'bootstrap_setup_view', 'args': 'object.pk', 'famfam': 'lightning', 'permissions': [PERMISSION_BOOTSTRAP_VIEW]} -link_bootstrap_setup_execute = {'text': _(u'execute'), 'view': 'bootstrap_setup_execute', 'args': 'object.pk', 'famfam': 'lightning_go', 'permissions': [PERMISSION_BOOTSTRAP_EXECUTE]} -link_bootstrap_setup_dump = {'text': _(u'dump current setup'), 'view': 'bootstrap_setup_dump', 'famfam': 'arrow_down', 'permissions': [PERMISSION_BOOTSTRAP_DUMP]} -link_bootstrap_setup_export = {'text': _(u'export'), 'view': 'bootstrap_setup_export', 'args': 'object.pk', 'famfam': 'disk', 'permissions': [PERMISSION_BOOTSTRAP_EXPORT]} -link_bootstrap_setup_import_from_file = {'text': _(u'import from file'), 'view': 'bootstrap_setup_import_from_file', 'famfam': 'folder', 'permissions': [PERMISSION_BOOTSTRAP_IMPORT]} -link_bootstrap_setup_import_from_url = {'text': _(u'import from URL'), 'view': 'bootstrap_setup_import_from_url', 'famfam': 'world', 'permissions': [PERMISSION_BOOTSTRAP_IMPORT]} -link_bootstrap_setup_repository_sync = {'text': _(u'sync with repository'), 'view': 'bootstrap_setup_repository_sync', 'famfam': 'world', 'permissions': [PERMISSION_BOOTSTRAP_REPOSITORY_SYNC]} -link_erase_database = {'text': _(u'erase database'), 'view': 'erase_database_view', 'icon': 'radioactivity.png', 'permissions': [PERMISSION_NUKE_DATABASE]} +link_bootstrap_setup_tool = {'text': _(u'bootstrap'), 'view': 'bootstrap:bootstrap_setup_list', 'icon': 'lightning.png', 'permissions': [PERMISSION_BOOTSTRAP_VIEW]} +link_bootstrap_setup_list = {'text': _(u'bootstrap setup list'), 'view': 'bootstrap:bootstrap_setup_list', 'famfam': 'lightning', 'permissions': [PERMISSION_BOOTSTRAP_VIEW]} +link_bootstrap_setup_create = {'text': _(u'create new bootstrap setup'), 'view': 'bootstrap:bootstrap_setup_create', 'famfam': 'lightning_add', 'permissions': [PERMISSION_BOOTSTRAP_CREATE]} +link_bootstrap_setup_edit = {'text': _(u'edit'), 'view': 'bootstrap:bootstrap_setup_edit', 'args': 'object.pk', 'famfam': 'pencil', 'permissions': [PERMISSION_BOOTSTRAP_EDIT]} +link_bootstrap_setup_delete = {'text': _(u'delete'), 'view': 'bootstrap:bootstrap_setup_delete', 'args': 'object.pk', 'famfam': 'lightning_delete', 'permissions': [PERMISSION_BOOTSTRAP_DELETE]} +link_bootstrap_setup_view = {'text': _(u'details'), 'view': 'bootstrap:bootstrap_setup_view', 'args': 'object.pk', 'famfam': 'lightning', 'permissions': [PERMISSION_BOOTSTRAP_VIEW]} +link_bootstrap_setup_execute = {'text': _(u'execute'), 'view': 'bootstrap:bootstrap_setup_execute', 'args': 'object.pk', 'famfam': 'lightning_go', 'permissions': [PERMISSION_BOOTSTRAP_EXECUTE]} +link_bootstrap_setup_dump = {'text': _(u'dump current setup'), 'view': 'bootstrap:bootstrap_setup_dump', 'famfam': 'arrow_down', 'permissions': [PERMISSION_BOOTSTRAP_DUMP]} +link_bootstrap_setup_export = {'text': _(u'export'), 'view': 'bootstrap:bootstrap_setup_export', 'args': 'object.pk', 'famfam': 'disk', 'permissions': [PERMISSION_BOOTSTRAP_EXPORT]} +link_bootstrap_setup_import_from_file = {'text': _(u'import from file'), 'view': 'bootstrap:bootstrap_setup_import_from_file', 'famfam': 'folder', 'permissions': [PERMISSION_BOOTSTRAP_IMPORT]} +link_bootstrap_setup_import_from_url = {'text': _(u'import from URL'), 'view': 'bootstrap:bootstrap_setup_import_from_url', 'famfam': 'world', 'permissions': [PERMISSION_BOOTSTRAP_IMPORT]} +link_bootstrap_setup_repository_sync = {'text': _(u'sync with repository'), 'view': 'bootstrap:bootstrap_setup_repository_sync', 'famfam': 'world', 'permissions': [PERMISSION_BOOTSTRAP_REPOSITORY_SYNC]} +link_erase_database = {'text': _(u'erase database'), 'view': 'bootstrap:erase_database_view', 'icon': 'radioactivity.png', 'permissions': [PERMISSION_NUKE_DATABASE]} diff --git a/mayan/apps/bootstrap/post_init.py b/mayan/apps/bootstrap/post_init.py index 16931f4aaa..ec6e56d518 100644 --- a/mayan/apps/bootstrap/post_init.py +++ b/mayan/apps/bootstrap/post_init.py @@ -20,7 +20,7 @@ from .models import BootstrapSetup register_links([BootstrapSetup], [link_bootstrap_setup_view, link_bootstrap_setup_edit, link_bootstrap_setup_delete, link_bootstrap_setup_execute, link_bootstrap_setup_export]) register_links([BootstrapSetup], [link_bootstrap_setup_list, link_bootstrap_setup_create, link_bootstrap_setup_dump, link_bootstrap_setup_import_from_file, link_bootstrap_setup_import_from_url, link_bootstrap_setup_repository_sync], menu_name='secondary_menu') -register_links(['bootstrap_setup_list', 'bootstrap_setup_create', 'bootstrap_setup_dump', 'bootstrap_setup_import_from_file', 'bootstrap_setup_import_from_url', 'bootstrap_setup_repository_sync'], [link_bootstrap_setup_list, link_bootstrap_setup_create, link_bootstrap_setup_dump, link_bootstrap_setup_import_from_file, link_bootstrap_setup_import_from_url, link_bootstrap_setup_repository_sync], menu_name='secondary_menu') +register_links(['bootstrap:bootstrap_setup_list', 'bootstrap:bootstrap_setup_create', 'bootstrap:bootstrap_setup_dump', 'bootstrap:bootstrap_setup_import_from_file', 'bootstrap:bootstrap_setup_import_from_url', 'bootstrap:bootstrap_setup_repository_sync'], [link_bootstrap_setup_list, link_bootstrap_setup_create, link_bootstrap_setup_dump, link_bootstrap_setup_import_from_file, link_bootstrap_setup_import_from_url, link_bootstrap_setup_repository_sync], menu_name='secondary_menu') FixtureMetadata(FIXTURE_METADATA_CREATED, generate_function=lambda fixture_instance: fixture_instance.created.strftime(DATETIME_STRING_FORMAT), read_function=lambda x: datetime.datetime.strptime(x, DATETIME_STRING_FORMAT), property_name='created') FixtureMetadata(FIXTURE_METADATA_EDITED, generate_function=lambda fixture_instance: now().strftime(DATETIME_STRING_FORMAT)) diff --git a/mayan/apps/bootstrap/views.py b/mayan/apps/bootstrap/views.py index ae6a4ade64..b52d808865 100644 --- a/mayan/apps/bootstrap/views.py +++ b/mayan/apps/bootstrap/views.py @@ -199,7 +199,7 @@ def bootstrap_setup_dump(request): else: bootstrap.save() messages.success(request, _(u'Bootstrap setup created successfully.')) - return HttpResponseRedirect(reverse('bootstrap_setup_list')) + return HttpResponseRedirect(reverse('bootstrap:bootstrap_setup_list')) else: form = BootstrapSetupForm_dump() @@ -239,7 +239,7 @@ def bootstrap_setup_import_from_file(request): try: BootstrapSetup.objects.import_from_file(request.FILES['file']) messages.success(request, _(u'Bootstrap setup imported successfully.')) - return HttpResponseRedirect(reverse('bootstrap_setup_list')) + return HttpResponseRedirect(reverse('bootstrap:bootstrap_setup_list')) except NotABootstrapSetup: messages.error(request, _(u'File is not a bootstrap setup.')) except Exception as exception: @@ -267,7 +267,7 @@ def bootstrap_setup_import_from_url(request): try: BootstrapSetup.objects.import_from_url(form.cleaned_data['url']) messages.success(request, _(u'Bootstrap setup imported successfully.')) - return HttpResponseRedirect(reverse('bootstrap_setup_list')) + return HttpResponseRedirect(reverse('bootstrap:bootstrap_setup_list')) except NotABootstrapSetup: messages.error(request, _(u'Data from URL is not a bootstrap setup.')) except Exception as exception: @@ -318,7 +318,7 @@ def erase_database_view(request): def bootstrap_setup_repository_sync(request): Permission.objects.check_permissions(request.user, [PERMISSION_BOOTSTRAP_REPOSITORY_SYNC]) - post_action_redirect = reverse('bootstrap_setup_list') + post_action_redirect = reverse('bootstrap:bootstrap_setup_list') previous = request.POST.get('previous', request.GET.get('previous', request.META.get('HTTP_REFERER', '/'))) next = request.POST.get('next', request.GET.get('next', post_action_redirect if post_action_redirect else request.META.get('HTTP_REFERER', '/'))) @@ -330,7 +330,7 @@ def bootstrap_setup_repository_sync(request): except Exception as exception: messages.error(request, _(u'Bootstrap repository synchronization error: %(error)s') % {'error': exception}) - return HttpResponseRedirect(reverse('bootstrap_setup_list')) + return HttpResponseRedirect(reverse('bootstrap:bootstrap_setup_list')) context = { 'previous': previous, diff --git a/mayan/apps/django_gpg/__init__.py b/mayan/apps/django_gpg/__init__.py index 962788314c..575f7d6feb 100644 --- a/mayan/apps/django_gpg/__init__.py +++ b/mayan/apps/django_gpg/__init__.py @@ -10,7 +10,7 @@ from .links import (public_keys, key_delete, key_query, key_receive, key_setup) # register_links(['key_delete', 'key_private_list', 'key_public_list', 'key_query'], [private_keys, public_keys, key_query], menu_name='sidebar') -register_links(['key_delete', 'key_public_list', 'key_query'], [public_keys, key_query], menu_name='sidebar') +register_links(['django_gpg:key_delete', 'django_gpg:key_public_list', 'django_gpg:key_query'], [public_keys, key_query], menu_name='sidebar') register_links(Key, [key_delete]) register_links(KeyServerKey, [key_receive]) diff --git a/mayan/apps/django_gpg/links.py b/mayan/apps/django_gpg/links.py index 4a64be1aa5..ac62415bb4 100644 --- a/mayan/apps/django_gpg/links.py +++ b/mayan/apps/django_gpg/links.py @@ -3,9 +3,9 @@ from django.utils.translation import ugettext_lazy as _ from .permissions import (PERMISSION_KEY_VIEW, PERMISSION_KEY_DELETE, PERMISSION_KEYSERVER_QUERY, PERMISSION_KEY_RECEIVE) -private_keys = {'text': _(u'private keys'), 'view': 'key_private_list', 'args': 'object.pk', 'famfam': 'key', 'icon': 'key.png', 'permissions': [PERMISSION_KEY_VIEW]} -public_keys = {'text': _(u'public keys'), 'view': 'key_public_list', 'args': 'object.pk', 'famfam': 'key', 'icon': 'key.png', 'permissions': [PERMISSION_KEY_VIEW]} -key_delete = {'text': _(u'delete'), 'view': 'key_delete', 'args': ['object.fingerprint', 'object.type'], 'famfam': 'key_delete', 'permissions': [PERMISSION_KEY_DELETE]} -key_query = {'text': _(u'query keyservers'), 'view': 'key_query', 'famfam': 'zoom', 'permissions': [PERMISSION_KEYSERVER_QUERY]} -key_receive = {'text': _(u'import'), 'view': 'key_receive', 'args': 'object.keyid', 'famfam': 'key_add', 'keep_query': True, 'permissions': [PERMISSION_KEY_RECEIVE]} -key_setup = {'text': _(u'key management'), 'view': 'key_public_list', 'args': 'object.pk', 'famfam': 'key', 'icon': 'key.png', 'permissions': [PERMISSION_KEY_VIEW], 'children_view_regex': [r'^key_']} +private_keys = {'text': _(u'private keys'), 'view': 'django_gpg:key_private_list', 'args': 'object.pk', 'famfam': 'key', 'icon': 'key.png', 'permissions': [PERMISSION_KEY_VIEW]} +public_keys = {'text': _(u'public keys'), 'view': 'django_gpg:key_public_list', 'args': 'object.pk', 'famfam': 'key', 'icon': 'key.png', 'permissions': [PERMISSION_KEY_VIEW]} +key_delete = {'text': _(u'delete'), 'view': 'django_gpg:key_delete', 'args': ['object.fingerprint', 'object.type'], 'famfam': 'key_delete', 'permissions': [PERMISSION_KEY_DELETE]} +key_query = {'text': _(u'query keyservers'), 'view': 'django_gpg:key_query', 'famfam': 'zoom', 'permissions': [PERMISSION_KEYSERVER_QUERY]} +key_receive = {'text': _(u'import'), 'view': 'django_gpg:key_receive', 'args': 'object.keyid', 'famfam': 'key_add', 'keep_query': True, 'permissions': [PERMISSION_KEY_RECEIVE]} +key_setup = {'text': _(u'key management'), 'view': 'django_gpg:key_public_list', 'args': 'object.pk', 'famfam': 'key', 'icon': 'key.png', 'permissions': [PERMISSION_KEY_VIEW], 'children_view_regex': [r'^key_']} diff --git a/mayan/apps/document_indexing/__init__.py b/mayan/apps/document_indexing/__init__.py index 0e432a160d..7b1299f0e5 100644 --- a/mayan/apps/document_indexing/__init__.py +++ b/mayan/apps/document_indexing/__init__.py @@ -44,7 +44,7 @@ register_top_menu('indexes', document_index_main_menu_link) register_maintenance_links([rebuild_index_instances], namespace='document_indexing', title=_(u'Indexes')) -register_sidebar_template(['index_instance_list'], 'indexing_help.html') +register_sidebar_template(['indexing:index_instance_list'], 'indexing_help.html') register_links(IndexInstanceNode, [index_parent]) @@ -52,7 +52,7 @@ register_links(Document, [document_index_list], menu_name='form_header') register_setup(index_setup) -register_links([Index, 'index_setup_list', 'index_setup_create', 'template_node_edit', 'template_node_delete'], [index_setup_list, index_setup_create], menu_name='secondary_menu') +register_links([Index, 'indexing:index_setup_list', 'indexing:index_setup_create', 'indexing:template_node_edit', 'indexing:template_node_delete'], [index_setup_list, index_setup_create], menu_name='secondary_menu') register_links(Index, [index_setup_edit, index_setup_delete, index_setup_view, index_setup_document_types]) diff --git a/mayan/apps/document_indexing/links.py b/mayan/apps/document_indexing/links.py index 59d4b7f4f3..b157a0a0de 100644 --- a/mayan/apps/document_indexing/links.py +++ b/mayan/apps/document_indexing/links.py @@ -20,23 +20,23 @@ def is_not_instance_root_node(context): return not context['object'].is_root_node() -index_setup = {'text': _(u'indexes'), 'view': 'index_setup_list', 'icon': 'tab.png', 'permissions': [PERMISSION_DOCUMENT_INDEXING_SETUP], 'children_view_regex': [r'^index_setup', r'^template_node']} -index_setup_list = {'text': _(u'index list'), 'view': 'index_setup_list', 'famfam': 'tab', 'permissions': [PERMISSION_DOCUMENT_INDEXING_SETUP]} -index_setup_create = {'text': _(u'create index'), 'view': 'index_setup_create', 'famfam': 'tab_add', 'permissions': [PERMISSION_DOCUMENT_INDEXING_CREATE]} -index_setup_edit = {'text': _(u'edit'), 'view': 'index_setup_edit', 'args': 'index.pk', 'famfam': 'tab_edit', 'permissions': [PERMISSION_DOCUMENT_INDEXING_EDIT]} -index_setup_delete = {'text': _(u'delete'), 'view': 'index_setup_delete', 'args': 'index.pk', 'famfam': 'tab_delete', 'permissions': [PERMISSION_DOCUMENT_INDEXING_DELETE]} -index_setup_view = {'text': _(u'tree template'), 'view': 'index_setup_view', 'args': 'index.pk', 'famfam': 'textfield', 'permissions': [PERMISSION_DOCUMENT_INDEXING_SETUP]} -index_setup_document_types = {'text': _(u'document types'), 'view': 'index_setup_document_types', 'args': 'index.pk', 'famfam': 'layout', 'permissions': [PERMISSION_DOCUMENT_INDEXING_EDIT]} +index_setup = {'text': _(u'indexes'), 'view': 'indexing:index_setup_list', 'icon': 'tab.png', 'permissions': [PERMISSION_DOCUMENT_INDEXING_SETUP], 'children_view_regex': [r'^index_setup', r'^template_node']} +index_setup_list = {'text': _(u'index list'), 'view': 'indexing:index_setup_list', 'famfam': 'tab', 'permissions': [PERMISSION_DOCUMENT_INDEXING_SETUP]} +index_setup_create = {'text': _(u'create index'), 'view': 'indexing:index_setup_create', 'famfam': 'tab_add', 'permissions': [PERMISSION_DOCUMENT_INDEXING_CREATE]} +index_setup_edit = {'text': _(u'edit'), 'view': 'indexing:index_setup_edit', 'args': 'index.pk', 'famfam': 'tab_edit', 'permissions': [PERMISSION_DOCUMENT_INDEXING_EDIT]} +index_setup_delete = {'text': _(u'delete'), 'view': 'indexing:index_setup_delete', 'args': 'index.pk', 'famfam': 'tab_delete', 'permissions': [PERMISSION_DOCUMENT_INDEXING_DELETE]} +index_setup_view = {'text': _(u'tree template'), 'view': 'indexing:index_setup_view', 'args': 'index.pk', 'famfam': 'textfield', 'permissions': [PERMISSION_DOCUMENT_INDEXING_SETUP]} +index_setup_document_types = {'text': _(u'document types'), 'view': 'indexing:index_setup_document_types', 'args': 'index.pk', 'famfam': 'layout', 'permissions': [PERMISSION_DOCUMENT_INDEXING_EDIT]} -template_node_create = {'text': _(u'new child node'), 'view': 'template_node_create', 'args': 'node.pk', 'famfam': 'textfield_add', 'permissions': [PERMISSION_DOCUMENT_INDEXING_SETUP]} -template_node_edit = {'text': _(u'edit'), 'view': 'template_node_edit', 'args': 'node.pk', 'famfam': 'textfield', 'permissions': [PERMISSION_DOCUMENT_INDEXING_SETUP], 'condition': is_not_root_node} -template_node_delete = {'text': _(u'delete'), 'view': 'template_node_delete', 'args': 'node.pk', 'famfam': 'textfield_delete', 'permissions': [PERMISSION_DOCUMENT_INDEXING_SETUP], 'condition': is_not_root_node} +template_node_create = {'text': _(u'new child node'), 'view': 'indexing:template_node_create', 'args': 'node.pk', 'famfam': 'textfield_add', 'permissions': [PERMISSION_DOCUMENT_INDEXING_SETUP]} +template_node_edit = {'text': _(u'edit'), 'view': 'indexing:template_node_edit', 'args': 'node.pk', 'famfam': 'textfield', 'permissions': [PERMISSION_DOCUMENT_INDEXING_SETUP], 'condition': is_not_root_node} +template_node_delete = {'text': _(u'delete'), 'view': 'indexing:template_node_delete', 'args': 'node.pk', 'famfam': 'textfield_delete', 'permissions': [PERMISSION_DOCUMENT_INDEXING_SETUP], 'condition': is_not_root_node} -index_list = {'text': _(u'index list'), 'view': 'index_list', 'famfam': 'tab', 'permissions': [PERMISSION_DOCUMENT_INDEXING_VIEW]} +index_list = {'text': _(u'index list'), 'view': 'indexing:index_list', 'famfam': 'tab', 'permissions': [PERMISSION_DOCUMENT_INDEXING_VIEW]} -index_parent = {'text': _(u'go up one level'), 'view': 'index_instance_node_view', 'args': 'object.parent.pk', 'famfam': 'arrow_up', 'permissions': [PERMISSION_DOCUMENT_INDEXING_VIEW], 'dont_mark_active': True, 'condition': is_not_instance_root_node} -document_index_list = {'text': _(u'indexes'), 'view': 'document_index_list', 'args': 'object.pk', 'famfam': 'folder_page', 'permissions': [PERMISSION_DOCUMENT_INDEXING_VIEW, PERMISSION_DOCUMENT_VIEW]} +index_parent = {'text': _(u'go up one level'), 'view': 'indexing:index_instance_node_view', 'args': 'object.parent.pk', 'famfam': 'arrow_up', 'permissions': [PERMISSION_DOCUMENT_INDEXING_VIEW], 'dont_mark_active': True, 'condition': is_not_instance_root_node} +document_index_list = {'text': _(u'indexes'), 'view': 'indexing:document_index_list', 'args': 'object.pk', 'famfam': 'folder_page', 'permissions': [PERMISSION_DOCUMENT_INDEXING_VIEW, PERMISSION_DOCUMENT_VIEW]} -document_index_main_menu_link = {'text': _('indexes'), 'famfam': 'tab', 'view': 'index_list', 'children_view_regex': [r'^index_[i,l]']} +document_index_main_menu_link = {'text': _('indexes'), 'famfam': 'tab', 'view': 'indexing:index_list', 'children_view_regex': [r'^index_[i,l]']} -rebuild_index_instances = {'text': _('rebuild indexes'), 'view': 'rebuild_index_instances', 'famfam': 'folder_page', 'permissions': [PERMISSION_DOCUMENT_INDEXING_REBUILD_INDEXES], 'description': _(u'Deletes and creates from scratch all the document indexes.')} +rebuild_index_instances = {'text': _('rebuild indexes'), 'view': 'indexing:rebuild_index_instances', 'famfam': 'folder_page', 'permissions': [PERMISSION_DOCUMENT_INDEXING_REBUILD_INDEXES], 'description': _(u'Deletes and creates from scratch all the document indexes.')} diff --git a/mayan/apps/document_indexing/views.py b/mayan/apps/document_indexing/views.py index c987f105e0..b180b46f8a 100644 --- a/mayan/apps/document_indexing/views.py +++ b/mayan/apps/document_indexing/views.py @@ -69,7 +69,7 @@ def index_setup_create(request): index = form.save() apply_default_acls(index, request.user) messages.success(request, _(u'Index created successfully.')) - return HttpResponseRedirect(reverse('index_setup_list')) + return HttpResponseRedirect(reverse('indexing:index_setup_list')) else: form = IndexForm() @@ -92,7 +92,7 @@ def index_setup_edit(request, index_pk): if form.is_valid(): form.save() messages.success(request, _(u'Index edited successfully')) - return HttpResponseRedirect(reverse('index_setup_list')) + return HttpResponseRedirect(reverse('indexing:index_setup_list')) else: form = IndexForm(instance=index) @@ -113,7 +113,7 @@ def index_setup_delete(request, index_pk): except PermissionDenied: AccessEntry.objects.check_access(PERMISSION_DOCUMENT_INDEXING_DELETE, request.user, index) - post_action_redirect = reverse('index_setup_list') + post_action_redirect = reverse('indexing:index_setup_list') previous = request.POST.get('previous', request.GET.get('previous', request.META.get('HTTP_REFERER', '/'))) next = request.POST.get('next', request.GET.get('next', post_action_redirect if post_action_redirect else request.META.get('HTTP_REFERER', '/'))) @@ -211,7 +211,7 @@ def template_node_create(request, parent_pk): if form.is_valid(): node = form.save() messages.success(request, _(u'Index template node created successfully.')) - return HttpResponseRedirect(reverse('index_setup_view', args=[node.index.pk])) + return HttpResponseRedirect(reverse('indexing:index_setup_view', args=[node.index.pk])) else: form = IndexTemplateNodeForm(initial={'index': parent_node.index, 'parent': parent_node}) @@ -237,7 +237,7 @@ def template_node_edit(request, node_pk): if form.is_valid(): form.save() messages.success(request, _(u'Index template node edited successfully')) - return HttpResponseRedirect(reverse('index_setup_view', args=[node.index.pk])) + return HttpResponseRedirect(reverse('indexing:index_setup_view', args=[node.index.pk])) else: form = IndexTemplateNodeForm(instance=node) @@ -262,7 +262,7 @@ def template_node_delete(request, node_pk): except PermissionDenied: AccessEntry.objects.check_access(PERMISSION_DOCUMENT_INDEXING_EDIT, request.user, node.index) - post_action_redirect = reverse('index_setup_view', args=[node.index.pk]) + post_action_redirect = reverse('indexing:index_setup_view', args=[node.index.pk]) previous = request.POST.get('previous', request.GET.get('previous', request.META.get('HTTP_REFERER', '/'))) next = request.POST.get('next', request.GET.get('next', post_action_redirect if post_action_redirect else request.META.get('HTTP_REFERER', '/'))) diff --git a/mayan/apps/dynamic_search/views.py b/mayan/apps/dynamic_search/views.py index e2e78d2a3a..078edab596 100644 --- a/mayan/apps/dynamic_search/views.py +++ b/mayan/apps/dynamic_search/views.py @@ -76,7 +76,7 @@ def search(request, advanced=False): { 'form': form, 'title': _(u'advanced search'), - 'form_action': reverse('results'), + 'form_action': reverse('search:results'), 'submit_method': 'GET', 'search_results_limit': LIMIT, 'submit_label': _(u'Search'), @@ -110,4 +110,4 @@ def search(request, advanced=False): def search_again(request): query = urlparse.urlparse(request.META.get('HTTP_REFERER', u'/')).query - return HttpResponseRedirect('%s?%s' % (reverse('search_advanced'), query)) + return HttpResponseRedirect('%s?%s' % (reverse('search:search_advanced'), query)) diff --git a/mayan/apps/folders/__init__.py b/mayan/apps/folders/__init__.py index 3aa57639d0..1cf345aedb 100644 --- a/mayan/apps/folders/__init__.py +++ b/mayan/apps/folders/__init__.py @@ -15,21 +15,21 @@ from .permissions import (PERMISSION_FOLDER_EDIT, PERMISSION_FOLDER_DELETE, PERMISSION_FOLDER_REMOVE_DOCUMENT, PERMISSION_FOLDER_VIEW, PERMISSION_FOLDER_ADD_DOCUMENT) -register_multi_item_links(['folder_view'], [folder_document_multiple_remove]) +register_multi_item_links(['folders:folder_view'], [folder_document_multiple_remove]) register_links(Folder, [folder_view, folder_edit, folder_delete, folder_acl_list]) -register_links([Folder, 'folder_list', 'folder_create'], [folder_list, folder_create], menu_name='secondary_menu') +register_links([Folder, 'folders:folder_list', 'folders:folder_create'], [folder_list, folder_create], menu_name='secondary_menu') -register_top_menu(name='folders', link=folders_main_menu_link, children_views=['folder_list', 'folder_create', 'folder_edit', 'folder_delete', 'folder_view', 'folder_document_multiple_remove']) +register_top_menu(name='folders', link=folders_main_menu_link, children_views=['folders:folder_list', 'folders:folder_create', 'folders:folder_edit', 'folders:folder_delete', 'folders:folder_view', 'folders:folder_document_multiple_remove']) register_links(Document, [document_folder_list], menu_name='form_header') -register_sidebar_template(['folder_list'], 'folders_help.html') +register_sidebar_template(['folders:folder_list'], 'folders_help.html') -register_links(['document_folder_list', 'folder_add_document'], [folder_add_document], menu_name="sidebar") +register_links(['folders:document_folder_list', 'folders:folder_add_document'], [folder_add_document], menu_name="sidebar") -register_multi_item_links(['document_find_duplicates', 'folder_view', 'index_instance_node_view', 'document_type_document_list', 'search', 'results', 'document_group_view', 'document_list', 'document_list_recent', 'tag_tagged_item_list'], [folder_add_multiple_documents]) +register_multi_item_links(['documents:document_find_duplicates', 'folders:folder_view', 'indexes:index_instance_node_view', 'documents:document_type_document_list', 'search:search', 'search:results', 'indexing:document_group_view', 'documents:document_list', 'documents:document_list_recent', 'tags:tag_tagged_item_list'], [folder_add_multiple_documents]) class_permissions(Folder, [ PERMISSION_FOLDER_EDIT, diff --git a/mayan/apps/folders/views.py b/mayan/apps/folders/views.py index b5bdba962c..855eaa0e97 100644 --- a/mayan/apps/folders/views.py +++ b/mayan/apps/folders/views.py @@ -65,7 +65,7 @@ def folder_create(request): if created: apply_default_acls(folder, request.user) messages.success(request, _(u'Folder created successfully')) - return HttpResponseRedirect(reverse('folder_list')) + return HttpResponseRedirect(reverse('folders:folder_list')) else: messages.error(request, _(u'A folder named: %s, already exists.') % form.cleaned_data['title']) else: @@ -93,7 +93,7 @@ def folder_edit(request, folder_id): try: folder.save() messages.success(request, _(u'Folder edited successfully')) - return HttpResponseRedirect(reverse('folder_list')) + return HttpResponseRedirect(reverse('folders:folder_list')) except Exception as exception: messages.error(request, _(u'Error editing folder; %s') % exception) else: diff --git a/mayan/apps/history/links.py b/mayan/apps/history/links.py index fdc0fa6f24..125dfa69c9 100644 --- a/mayan/apps/history/links.py +++ b/mayan/apps/history/links.py @@ -4,5 +4,5 @@ from django.utils.translation import ugettext_lazy as _ from .permissions import PERMISSION_HISTORY_VIEW -history_list = {'text': _(u'history'), 'view': 'history_list', 'famfam': 'book', 'icon': 'book.png', 'children_view_regex': [r'history_[l,v]']} -history_details = {'text': _(u'details'), 'view': 'history_view', 'famfam': 'book_open', 'args': 'object.pk', 'permissions': [PERMISSION_HISTORY_VIEW]} +history_list = {'text': _(u'history'), 'view': 'history:history_list', 'famfam': 'book', 'icon': 'book.png', 'children_view_regex': [r'history_[l,v]']} +history_details = {'text': _(u'details'), 'view': 'history:history_view', 'famfam': 'book_open', 'args': 'object.pk', 'permissions': [PERMISSION_HISTORY_VIEW]} diff --git a/mayan/apps/ocr/__init__.py b/mayan/apps/ocr/__init__.py index bb40657c05..1a7641c970 100644 --- a/mayan/apps/ocr/__init__.py +++ b/mayan/apps/ocr/__init__.py @@ -34,13 +34,13 @@ logger = logging.getLogger(__name__) register_links(Document, [submit_document]) -register_multi_item_links(['document_find_duplicates', 'folder_view', 'index_instance_node_view', 'document_type_document_list', 'search', 'results', 'document_group_view', 'document_list', 'document_list_recent', 'tag_tagged_item_list'], [submit_document_multiple]) +register_multi_item_links(['documents:document_find_duplicates', 'folders:folder_view', 'indexing:index_instance_node_view', 'documents:document_type_document_list', 'search:search', 'search:results', 'linking:document_group_view', 'documents:document_list', 'document:document_list_recent', 'tags:tag_tagged_item_list'], [submit_document_multiple]) register_links(DocumentQueue, [document_queue_disable, document_queue_enable]) -register_multi_item_links(['queue_document_list'], [re_queue_multiple_document, queue_document_multiple_delete]) +register_multi_item_links(['ocr:queue_document_list'], [re_queue_multiple_document, queue_document_multiple_delete]) -register_links(['document_queue_disable', 'document_queue_enable', 'queue_document_list'], [queue_document_list], menu_name='secondary_menu') +register_links(['ocr:document_queue_disable', 'ocr:document_queue_enable', 'ocr:queue_document_list'], [queue_document_list], menu_name='secondary_menu') register_maintenance_links([all_document_ocr_cleanup], namespace='ocr', title=_(u'OCR')) diff --git a/mayan/apps/permissions/__init__.py b/mayan/apps/permissions/__init__.py index a291369159..18115b6b4f 100644 --- a/mayan/apps/permissions/__init__.py +++ b/mayan/apps/permissions/__init__.py @@ -13,10 +13,10 @@ from .links import (role_list, role_create, role_edit, role_members, role_permis role_delete, permission_grant, permission_revoke) register_links(Role, [role_edit, role_delete, role_permissions, role_members]) -register_links([Role, 'role_list', 'role_create'], [role_list, role_create], menu_name='secondary_menu') -register_multi_item_links(['role_permissions'], [permission_grant, permission_revoke]) +register_links([Role, 'permissions:role_list', 'permissions:role_create'], [role_list, role_create], menu_name='secondary_menu') +register_multi_item_links(['permissions:role_permissions'], [permission_grant, permission_revoke]) -permission_views = ['role_list', 'role_create', 'role_edit', 'role_members', 'role_permissions', 'role_delete'] +permission_views = ['permissions:role_list', 'permissions:role_create', 'permissions:role_edit', 'permissions:role_members', 'permissions:role_permissions', 'permissions:role_delete'] def user_post_save(sender, instance, **kwargs): diff --git a/mayan/apps/permissions/links.py b/mayan/apps/permissions/links.py index db6ef05dc6..ebf60a038b 100644 --- a/mayan/apps/permissions/links.py +++ b/mayan/apps/permissions/links.py @@ -6,12 +6,12 @@ from .permissions import (PERMISSION_ROLE_VIEW, PERMISSION_ROLE_EDIT, PERMISSION_ROLE_CREATE, PERMISSION_ROLE_DELETE, PERMISSION_PERMISSION_GRANT, PERMISSION_PERMISSION_REVOKE) -role_list = {'text': _(u'roles'), 'view': 'role_list', 'famfam': 'medal_gold_1', 'icon': 'medal_gold_1.png', 'permissions': [PERMISSION_ROLE_VIEW], 'children_view_regex': [r'^permission_', r'^role_']} -role_create = {'text': _(u'create new role'), 'view': 'role_create', 'famfam': 'medal_gold_add', 'permissions': [PERMISSION_ROLE_CREATE]} -role_edit = {'text': _(u'edit'), 'view': 'role_edit', 'args': 'object.id', 'famfam': 'medal_gold_1', 'permissions': [PERMISSION_ROLE_EDIT]} -role_members = {'text': _(u'members'), 'view': 'role_members', 'args': 'object.id', 'famfam': 'group_key', 'permissions': [PERMISSION_ROLE_EDIT]} -role_permissions = {'text': _(u'role permissions'), 'view': 'role_permissions', 'args': 'object.id', 'famfam': 'key_go', 'permissions': [PERMISSION_PERMISSION_GRANT, PERMISSION_PERMISSION_REVOKE]} -role_delete = {'text': _(u'delete'), 'view': 'role_delete', 'args': 'object.id', 'famfam': 'medal_gold_delete', 'permissions': [PERMISSION_ROLE_DELETE]} +role_list = {'text': _(u'roles'), 'view': 'permissions:role_list', 'famfam': 'medal_gold_1', 'icon': 'medal_gold_1.png', 'permissions': [PERMISSION_ROLE_VIEW], 'children_view_regex': [r'^permission_', r'^role_']} +role_create = {'text': _(u'create new role'), 'view': 'permissions:role_create', 'famfam': 'medal_gold_add', 'permissions': [PERMISSION_ROLE_CREATE]} +role_edit = {'text': _(u'edit'), 'view': 'permissions:role_edit', 'args': 'object.id', 'famfam': 'medal_gold_1', 'permissions': [PERMISSION_ROLE_EDIT]} +role_members = {'text': _(u'members'), 'view': 'permissions:role_members', 'args': 'object.id', 'famfam': 'group_key', 'permissions': [PERMISSION_ROLE_EDIT]} +role_permissions = {'text': _(u'role permissions'), 'view': 'permissions:role_permissions', 'args': 'object.id', 'famfam': 'key_go', 'permissions': [PERMISSION_PERMISSION_GRANT, PERMISSION_PERMISSION_REVOKE]} +role_delete = {'text': _(u'delete'), 'view': 'permissions:role_delete', 'args': 'object.id', 'famfam': 'medal_gold_delete', 'permissions': [PERMISSION_ROLE_DELETE]} -permission_grant = {'text': _(u'grant'), 'view': 'permission_multiple_grant', 'famfam': 'key_add', 'permissions': [PERMISSION_PERMISSION_GRANT]} -permission_revoke = {'text': _(u'revoke'), 'view': 'permission_multiple_revoke', 'famfam': 'key_delete', 'permissions': [PERMISSION_PERMISSION_REVOKE]} +permission_grant = {'text': _(u'grant'), 'view': 'permissions:permission_multiple_grant', 'famfam': 'key_add', 'permissions': [PERMISSION_PERMISSION_GRANT]} +permission_revoke = {'text': _(u'revoke'), 'view': 'permissions:permission_multiple_revoke', 'famfam': 'key_delete', 'permissions': [PERMISSION_PERMISSION_REVOKE]} diff --git a/mayan/apps/permissions/views.py b/mayan/apps/permissions/views.py index 008e0e61b2..32be4e4a4e 100644 --- a/mayan/apps/permissions/views.py +++ b/mayan/apps/permissions/views.py @@ -32,7 +32,7 @@ class RoleCreateView(SingleObjectCreateView): form_class = RoleForm model = Role permissions_required = [PERMISSION_ROLE_CREATE] - success_url = reverse_lazy('role_list') + success_url = reverse_lazy('permissions:role_list') class RoleDeleteView(SingleObjectDeleteView): @@ -42,7 +42,7 @@ class RoleDeleteView(SingleObjectDeleteView): 'object_name': _(u'role'), 'form_icon': u'medal_gold_delete.png' } - success_url = reverse_lazy('role_list') + success_url = reverse_lazy('permissions:role_list') class RoleEditView(SingleObjectEditView): diff --git a/mayan/apps/project_setup/api.py b/mayan/apps/project_setup/api.py index 1d11179701..f1dd99a4b3 100644 --- a/mayan/apps/project_setup/api.py +++ b/mayan/apps/project_setup/api.py @@ -6,6 +6,7 @@ setup_items = [] def register_setup(link): + print "link", link setup_items.append(link) # Append the link's children_view_regex to the setup main menu children view regex diff --git a/mayan/apps/project_setup/links.py b/mayan/apps/project_setup/links.py index 60ca9359a7..68f16f5b3b 100644 --- a/mayan/apps/project_setup/links.py +++ b/mayan/apps/project_setup/links.py @@ -1,3 +1,3 @@ from django.utils.translation import ugettext_lazy as _ -link_setup = {'text': _(u'setup'), 'view': 'setup_list', 'famfam': 'cog'} +link_setup = {'text': _(u'setup'), 'view': 'project_setup:setup_list', 'famfam': 'cog'} diff --git a/mayan/apps/project_tools/links.py b/mayan/apps/project_tools/links.py index f14df29da1..64c83c698c 100644 --- a/mayan/apps/project_tools/links.py +++ b/mayan/apps/project_tools/links.py @@ -1,3 +1,3 @@ from django.utils.translation import ugettext_lazy as _ -link_tools = {'text': _(u'tools'), 'view': 'tools_list', 'famfam': 'wrench'} +link_tools = {'text': _(u'tools'), 'view': 'project_tools:tools_list', 'famfam': 'wrench'} diff --git a/mayan/apps/smart_settings/links.py b/mayan/apps/smart_settings/links.py index b8a6251f6b..6d540ac7d9 100644 --- a/mayan/apps/smart_settings/links.py +++ b/mayan/apps/smart_settings/links.py @@ -5,4 +5,4 @@ def is_superuser(context): return context['request'].user.is_staff or context['request'].user.is_superuser -check_settings = {'text': _(u'settings'), 'view': 'setting_list', 'famfam': 'cog', 'icon': 'cog.png', 'condition': is_superuser, 'children_view_regex': [r'^setting_']} +check_settings = {'text': _(u'settings'), 'view': 'settings:setting_list', 'famfam': 'cog', 'icon': 'cog.png', 'condition': is_superuser, 'children_view_regex': [r'^setting_']} diff --git a/mayan/apps/tags/__init__.py b/mayan/apps/tags/__init__.py index 1fff0884ce..f0a8c68ebf 100644 --- a/mayan/apps/tags/__init__.py +++ b/mayan/apps/tags/__init__.py @@ -40,15 +40,15 @@ register_model_list_columns(Document, [ ]) register_links(Tag, [tag_tagged_item_list, tag_edit, tag_delete, tag_acl_list]) -register_multi_item_links(['tag_list'], [tag_multiple_delete]) -register_links([Tag, 'tag_list', 'tag_create'], [tag_list, tag_create], menu_name='secondary_menu') +register_multi_item_links(['tags:tag_list'], [tag_multiple_delete]) +register_links([Tag, 'tags:tag_list', 'tags:tag_create'], [tag_list, tag_create], menu_name='secondary_menu') register_top_menu('tags', link={'text': _(u'tags'), 'view': 'tags:tag_list', 'famfam': 'tag_blue'}, children_view_regex=[r'^tag_(list|create|delete|edit|tagged|acl)']) register_links(Document, [tag_document_list], menu_name='form_header') -register_links(['document_tags', 'tag_remove', 'tag_multiple_remove', 'tag_attach'], [tag_attach], menu_name='sidebar') +register_links(['tags:document_tags', 'tags:tag_remove', 'tag_multiple_remove', 'tag_attach'], [tag_attach], menu_name='sidebar') register_multi_item_links(['document_tags'], [single_document_multiple_tag_remove]) -register_multi_item_links(['document_find_duplicates', 'folder_view', 'index_instance_node_view', 'document_type_document_list', 'search', 'results', 'document_group_view', 'document_list', 'document_list_recent', 'tag_tagged_item_list'], [tag_multiple_attach, multiple_documents_selection_tag_remove]) +register_multi_item_links(['documents:document_find_duplicates', 'folders:folder_view', 'indexes:index_instance_node_view', 'documents:document_type_document_list', 'search:search', 'search:results', 'linking:document_group_view', 'documents:document_list', 'documents:document_list_recent', 'tags:tag_tagged_item_list'], [tag_multiple_attach, multiple_documents_selection_tag_remove]) class_permissions(Document, [ PERMISSION_TAG_ATTACH, diff --git a/mayan/apps/user_management/__init__.py b/mayan/apps/user_management/__init__.py index f442d68dc9..5a7502d2cf 100644 --- a/mayan/apps/user_management/__init__.py +++ b/mayan/apps/user_management/__init__.py @@ -11,18 +11,18 @@ from .links import (user_list, user_setup, user_edit, user_add, user_delete, group_multiple_delete, group_members) register_links(User, [user_edit, user_set_password, user_groups, user_delete]) -register_links([User, 'user_multiple_set_password', 'user_multiple_delete', 'user_list', 'user_add'], [user_list, user_add], menu_name=u'secondary_menu') -register_multi_item_links(['user_list'], [user_multiple_set_password, user_multiple_delete]) +register_links([User, 'user_management:user_multiple_set_password', 'user_management:user_multiple_delete', 'user_management:user_list', 'user_management:user_add'], [user_list, user_add], menu_name=u'secondary_menu') +register_multi_item_links(['user_management:user_list'], [user_multiple_set_password, user_multiple_delete]) register_links(Group, [group_edit, group_members, group_delete]) -register_links(['group_multiple_delete', 'group_delete', 'group_edit', 'group_list', 'group_add', 'group_members'], [group_list, group_add], menu_name=u'secondary_menu') -register_multi_item_links(['group_list'], [group_multiple_delete]) +register_links(['user_management:group_multiple_delete', 'user_management:group_delete', 'user_management:group_edit', 'user_management:group_list', 'user_management:group_add', 'user_management:group_members'], [group_list, group_add], menu_name=u'secondary_menu') +register_multi_item_links(['user_management:group_list'], [group_multiple_delete]) user_management_views = [ - 'user_list', 'user_edit', 'user_add', 'user_delete', - 'user_multiple_delete', 'user_set_password', - 'user_multiple_set_password', 'group_list', 'group_edit', 'group_add', - 'group_delete', 'group_multiple_delete', 'group_members' + 'user_management:user_list', 'user_management:user_edit', 'user_management:user_add', 'user_management:user_delete', + 'user_management:user_multiple_delete', 'user_management:user_set_password', + 'user_management:user_multiple_set_password', 'user_management:group_list', 'user_management:group_edit', 'user_management:group_add', + 'user_management:group_delete', 'user_management:group_multiple_delete', 'user_management:group_members' ] register_setup(user_setup) diff --git a/mayan/apps/user_management/links.py b/mayan/apps/user_management/links.py index 941eb27b6c..e18b5eccbb 100644 --- a/mayan/apps/user_management/links.py +++ b/mayan/apps/user_management/links.py @@ -6,20 +6,20 @@ from .permissions import (PERMISSION_USER_CREATE, PERMISSION_USER_EDIT, PERMISSION_USER_VIEW, PERMISSION_USER_DELETE, PERMISSION_GROUP_CREATE, PERMISSION_GROUP_EDIT, PERMISSION_GROUP_VIEW, PERMISSION_GROUP_DELETE) -user_list = {'text': _(u'user list'), 'view': 'user_list', 'famfam': 'user', 'permissions': [PERMISSION_USER_VIEW]} -user_setup = {'text': _(u'users'), 'view': 'user_list', 'famfam': 'user', 'icon': 'user.png', 'permissions': [PERMISSION_USER_VIEW], 'children_view_regex': [r'^user_']} -user_edit = {'text': _(u'edit'), 'view': 'user_edit', 'args': 'object.id', 'famfam': 'user_edit', 'permissions': [PERMISSION_USER_EDIT]} -user_add = {'text': _(u'create new user'), 'view': 'user_add', 'famfam': 'user_add', 'permissions': [PERMISSION_USER_CREATE]} -user_delete = {u'text': _('delete'), 'view': 'user_delete', 'args': 'object.id', 'famfam': 'user_delete', 'permissions': [PERMISSION_USER_DELETE]} -user_multiple_delete = {u'text': _('delete'), 'view': 'user_multiple_delete', 'famfam': 'user_delete', 'permissions': [PERMISSION_USER_DELETE]} -user_set_password = {u'text': _('reset password'), 'view': 'user_set_password', 'args': 'object.id', 'famfam': 'lock_edit', 'permissions': [PERMISSION_USER_EDIT]} -user_multiple_set_password = {u'text': _('reset password'), 'view': 'user_multiple_set_password', 'famfam': 'lock_edit', 'permissions': [PERMISSION_USER_EDIT]} -user_groups = {'text': _(u'groups'), 'view': 'user_groups', 'args': 'object.id', 'famfam': 'group_link', 'permissions': [PERMISSION_USER_EDIT]} +user_list = {'text': _(u'user list'), 'view': 'user_management:user_list', 'famfam': 'user', 'permissions': [PERMISSION_USER_VIEW]} +user_setup = {'text': _(u'users'), 'view': 'user_management:user_list', 'famfam': 'user', 'icon': 'user.png', 'permissions': [PERMISSION_USER_VIEW], 'children_view_regex': [r'^user_']} +user_edit = {'text': _(u'edit'), 'view': 'user_management:user_edit', 'args': 'object.id', 'famfam': 'user_edit', 'permissions': [PERMISSION_USER_EDIT]} +user_add = {'text': _(u'create new user'), 'view': 'user_management:user_add', 'famfam': 'user_add', 'permissions': [PERMISSION_USER_CREATE]} +user_delete = {u'text': _('delete'), 'view': 'user_management:user_delete', 'args': 'object.id', 'famfam': 'user_delete', 'permissions': [PERMISSION_USER_DELETE]} +user_multiple_delete = {u'text': _('delete'), 'view': 'user_management:user_multiple_delete', 'famfam': 'user_delete', 'permissions': [PERMISSION_USER_DELETE]} +user_set_password = {u'text': _('reset password'), 'view': 'user_management:user_set_password', 'args': 'object.id', 'famfam': 'lock_edit', 'permissions': [PERMISSION_USER_EDIT]} +user_multiple_set_password = {u'text': _('reset password'), 'view': 'user_management:user_multiple_set_password', 'famfam': 'lock_edit', 'permissions': [PERMISSION_USER_EDIT]} +user_groups = {'text': _(u'groups'), 'view': 'user_management:user_groups', 'args': 'object.id', 'famfam': 'group_link', 'permissions': [PERMISSION_USER_EDIT]} -group_list = {'text': _(u'group list'), 'view': 'group_list', 'famfam': 'group', 'permissions': [PERMISSION_GROUP_VIEW]} -group_setup = {'text': _(u'groups'), 'view': 'group_list', 'famfam': 'group', 'icon': 'group.png', 'permissions': [PERMISSION_GROUP_VIEW], 'children_view_regex': [r'^group_']} -group_edit = {'text': _(u'edit'), 'view': 'group_edit', 'args': 'object.id', 'famfam': 'group_edit', 'permissions': [PERMISSION_GROUP_EDIT]} -group_add = {'text': _(u'create new group'), 'view': 'group_add', 'famfam': 'group_add', 'permissions': [PERMISSION_GROUP_CREATE]} -group_delete = {u'text': _('delete'), 'view': 'group_delete', 'args': 'object.id', 'famfam': 'group_delete', 'permissions': [PERMISSION_GROUP_DELETE]} -group_multiple_delete = {u'text': _('delete'), 'view': 'group_multiple_delete', 'famfam': 'group_delete', 'permissions': [PERMISSION_GROUP_DELETE]} -group_members = {'text': _(u'members'), 'view': 'group_members', 'args': 'object.id', 'famfam': 'group_link', 'permissions': [PERMISSION_GROUP_EDIT]} +group_list = {'text': _(u'group list'), 'view': 'user_management:group_list', 'famfam': 'group', 'permissions': [PERMISSION_GROUP_VIEW]} +group_setup = {'text': _(u'groups'), 'view': 'user_management:group_list', 'famfam': 'group', 'icon': 'group.png', 'permissions': [PERMISSION_GROUP_VIEW], 'children_view_regex': [r'^group_']} +group_edit = {'text': _(u'edit'), 'view': 'user_management:group_edit', 'args': 'object.id', 'famfam': 'group_edit', 'permissions': [PERMISSION_GROUP_EDIT]} +group_add = {'text': _(u'create new group'), 'view': 'user_management:group_add', 'famfam': 'group_add', 'permissions': [PERMISSION_GROUP_CREATE]} +group_delete = {u'text': _('delete'), 'view': 'user_management:group_delete', 'args': 'object.id', 'famfam': 'group_delete', 'permissions': [PERMISSION_GROUP_DELETE]} +group_multiple_delete = {u'text': _('delete'), 'view': 'user_management:group_multiple_delete', 'famfam': 'group_delete', 'permissions': [PERMISSION_GROUP_DELETE]} +group_members = {'text': _(u'members'), 'view': 'user_management:group_members', 'args': 'object.id', 'famfam': 'group_link', 'permissions': [PERMISSION_GROUP_EDIT]} diff --git a/mayan/apps/user_management/views.py b/mayan/apps/user_management/views.py index 7115d88186..edd9b468a1 100644 --- a/mayan/apps/user_management/views.py +++ b/mayan/apps/user_management/views.py @@ -65,7 +65,7 @@ def user_edit(request, user_id): if form.is_valid(): form.save() messages.success(request, _(u'User "%s" updated successfully.') % user) - return HttpResponseRedirect(reverse('user_list')) + return HttpResponseRedirect(reverse('user_management:user_list')) else: form = UserForm(instance=user) @@ -87,7 +87,7 @@ def user_add(request): user.set_unusable_password() user.save() messages.success(request, _(u'User "%s" created successfully.') % user) - return HttpResponseRedirect(reverse('user_set_password', args=[user.pk])) + return HttpResponseRedirect(reverse('user_management:user_set_password', args=[user.pk])) else: form = UserForm() @@ -103,7 +103,7 @@ def user_delete(request, user_id=None, user_id_list=None): if user_id: users = [get_object_or_404(User, pk=user_id)] - post_action_redirect = reverse('user_list') + post_action_redirect = reverse('user_management:user_list') elif user_id_list: users = [get_object_or_404(User, pk=user_id) for user_id in user_id_list.split(',')] else: @@ -157,7 +157,7 @@ def user_set_password(request, user_id=None, user_id_list=None): if user_id: users = [get_object_or_404(User, pk=user_id)] - post_action_redirect = reverse('user_list') + post_action_redirect = reverse('user_management:user_list') elif user_id_list: users = [get_object_or_404(User, pk=user_id) for user_id in user_id_list.split(',')] else: @@ -273,7 +273,7 @@ def group_edit(request, group_id): if form.is_valid(): form.save() messages.success(request, _(u'Group "%s" updated successfully.') % group) - return HttpResponseRedirect(reverse('group_list')) + return HttpResponseRedirect(reverse('user_management:group_list')) else: form = GroupForm(instance=group) @@ -294,7 +294,7 @@ def group_add(request): if form.is_valid(): group = form.save() messages.success(request, _(u'Group "%s" created successfully.') % group) - return HttpResponseRedirect(reverse('group_list')) + return HttpResponseRedirect(reverse('user_management:group_list')) else: form = GroupForm() @@ -310,7 +310,7 @@ def group_delete(request, group_id=None, group_id_list=None): if group_id: groups = [get_object_or_404(Group, pk=group_id)] - post_action_redirect = reverse('group_list') + post_action_redirect = reverse('user_management:group_list') elif group_id_list: groups = [get_object_or_404(Group, pk=group_id) for group_id in group_id_list.split(',')] else: diff --git a/mayan/urls.py b/mayan/urls.py index e6d4e0fa75..13ffe881b7 100644 --- a/mayan/urls.py +++ b/mayan/urls.py @@ -13,31 +13,31 @@ urlpatterns = patterns('', url(r'^docs/', include('rest_framework_swagger.urls')), (r'^documents/', include('documents.urls', namespace='documents')), (r'^folders/', include('folders.urls', namespace='folders')), - (r'^search/', include('dynamic_search.urls')), - (r'^ocr/', include('ocr.urls')), - (r'^permissions/', include('permissions.urls')), + (r'^search/', include('dynamic_search.urls', namespace='search')), + (r'^ocr/', include('ocr.urls', namespace='ocr')), + (r'^permissions/', include('permissions.urls', namespace='permissions')), (r'^tags/', include('tags.urls', namespace='tags')), - (r'^comments/', include('document_comments.urls')), - (r'^user_management/', include('user_management.urls')), - (r'^settings/', include('smart_settings.urls')), + (r'^comments/', include('document_comments.urls', namespace='comments')), + (r'^user_management/', include('user_management.urls', namespace='user_management')), + (r'^settings/', include('smart_settings.urls', namespace='settings')), (r'^metadata/', include('metadata.urls', namespace='metadata')), (r'^linking/', include('linking.urls', namespace='linking')), - (r'^document_indexing/', include('document_indexing.urls')), - (r'^history/', include('history.urls')), - (r'^converter/', include('converter.urls')), + (r'^document_indexing/', include('document_indexing.urls', namespace='indexing')), + (r'^history/', include('history.urls', namespace='history')), + (r'^converter/', include('converter.urls', namespace='converter')), (r'^sources/', include('sources.urls', namespace='sources')), - (r'^project_setup/', include('project_setup.urls')), - (r'^project_tools/', include('project_tools.urls')), - (r'^acls/', include('acls.urls')), - (r'^document_acls/', include('document_acls.urls')), + (r'^project_setup/', include('project_setup.urls', namespace='project_setup')), + (r'^project_tools/', include('project_tools.urls', namespace='project_tools')), + (r'^acls/', include('acls.urls', namespace='acls')), + (r'^document_acls/', include('document_acls.urls', namespace='document_acls')), (r'^api/', include('rest_api.urls')), - (r'^gpg/', include('django_gpg.urls')), - (r'^documents/signatures/', include('document_signatures.urls')), + (r'^gpg/', include('django_gpg.urls', namespace='django_gpg')), + (r'^documents/signatures/', include('document_signatures.urls', namespace='signatures')), (r'^checkouts/', include('checkouts.urls', namespace='checkout')), - (r'^installation/', include('installation.urls')), - (r'^scheduler/', include('scheduler.urls')), - (r'^bootstrap/', include('bootstrap.urls')), - (r'^registration/', include('registration.urls')), + (r'^installation/', include('installation.urls', namespace='installation')), + (r'^scheduler/', include('scheduler.urls', namespace='scheduler')), + (r'^bootstrap/', include('bootstrap.urls', namespace='bootstrap')), + (r'^registration/', include('registration.urls', namespace='registration')), (r'^statistics/', include('statistics.urls', namespace='statistics')), )