Initial commit of the new class based and menu based navigation system

This commit is contained in:
Roberto Rosario
2015-04-03 07:09:51 -04:00
parent 192069462f
commit 0246068cd0
27 changed files with 399 additions and 485 deletions
+12 -12
View File
@@ -5,18 +5,18 @@ from django.utils.translation import ugettext_lazy as _
from acls.api import class_permissions
from acls.permissions import ACLS_EDIT_ACL, ACLS_VIEW_ACL
from common.menus import menu_secondary, menu_object, menu_main
from common.utils import encapsulate
from documents.models import Document
from navigation.api import (
register_links, register_model_list_columns, register_top_menu
)
from navigation.api import register_links, register_model_list_columns
from navigation.links import link_spacer
from rest_api.classes import APIEndPoint
from .links import (
document_folder_list, folder_acl_list, folder_add_document,
folder_add_multiple_documents, folder_create, folder_delete,
folder_document_multiple_remove, folder_edit, folder_list, folder_view
link_folder_list,
document_folder_list, link_folder_acl_list, folder_add_document,
folder_add_multiple_documents, link_folder_create, link_folder_delete,
folder_document_multiple_remove, link_folder_edit, link_folder_view
)
from .models import Folder
from .permissions import (
@@ -31,13 +31,13 @@ class FoldersApp(apps.AppConfig):
verbose_name = _('Folders')
def ready(self):
register_links(Folder, [folder_view, folder_edit, folder_acl_list, folder_delete])
register_links([Folder, 'folders:folder_list', 'folders:folder_create'], [folder_list, folder_create], menu_name='secondary_menu')
register_links(['folders:document_folder_list', 'folders:folder_add_document'], [folder_add_document], menu_name="sidebar")
register_links(Document, [document_folder_list], menu_name='form_header')
register_links([Document], [folder_add_multiple_documents, folder_document_multiple_remove, link_spacer], menu_name='multi_item_links')
menu_main.bind_links(links=[link_folder_list])
menu_secondary.bind_links(links=[link_folder_list, link_folder_create], sources=[Folder, 'folders:folder_list', 'folders:folder_create'])
menu_object.bind_links(links=[link_folder_view, link_folder_edit, link_folder_acl_list, link_folder_delete], sources=[Folder])
register_top_menu(name='folders', link=folder_list)
#register_links(['folders:document_folder_list', 'folders:folder_add_document'], [folder_add_document], menu_name="sidebar")
#register_links(Document, [document_folder_list], menu_name='form_header')
#register_links([Document], [folder_add_multiple_documents, folder_document_multiple_remove, link_spacer], menu_name='multi_item_links')
class_permissions(Folder, [
ACLS_EDIT_ACL, ACLS_VIEW_ACL, PERMISSION_FOLDER_DELETE,
+9 -6
View File
@@ -4,6 +4,7 @@ from django.utils.translation import ugettext_lazy as _
from acls.permissions import ACLS_VIEW_ACL
from documents.permissions import PERMISSION_DOCUMENT_VIEW
from navigation import Link
from .permissions import (
PERMISSION_FOLDER_ADD_DOCUMENT, PERMISSION_FOLDER_CREATE,
@@ -11,14 +12,16 @@ from .permissions import (
PERMISSION_FOLDER_REMOVE_DOCUMENT
)
folder_list = {'text': _('Folders'), 'view': 'folders:folder_list', 'icon': 'fa fa-folder'}
folder_create = {'text': _('Create folder'), 'view': 'folders:folder_create', 'famfam': 'folder_add', 'permissions': [PERMISSION_FOLDER_CREATE]}
folder_edit = {'text': _('Edit'), 'view': 'folders:folder_edit', 'args': 'object.pk', 'famfam': 'folder_edit', 'permissions': [PERMISSION_FOLDER_EDIT]}
folder_delete = {'text': _('Delete'), 'view': 'folders:folder_delete', 'args': 'object.pk', 'famfam': 'folder_delete', 'permissions': [PERMISSION_FOLDER_DELETE]}
link_folder_create = Link(permissions=[PERMISSION_FOLDER_CREATE], text=_('Create folder'), view='folders:folder_create')
link_folder_list = Link(icon='fa fa-folder', text=_('Folders'), view='folders:folder_list')
link_folder_edit = Link(permissions=[PERMISSION_FOLDER_EDIT], text=_('Edit'), view='folders:folder_edit', args='object.pk')
link_folder_delete = Link(permissions=[PERMISSION_FOLDER_DELETE], text=_('Delete'), view='folders:folder_delete', args='object.pk')
link_folder_view = Link(permissions=[PERMISSION_FOLDER_VIEW], text=_('Documents'), view='folders:folder_view', args='object.pk')
link_folder_acl_list = Link(permissions=[ACLS_VIEW_ACL], text=_('ACLs'), view='folders:folder_acl_list', args='object.pk')
folder_document_multiple_remove = {'text': _('Remove from folder'), 'view': 'folders:folder_document_multiple_remove', 'args': 'object.pk', 'famfam': 'folder_delete', 'permissions': [PERMISSION_FOLDER_REMOVE_DOCUMENT]}
folder_view = {'text': _('Documents'), 'view': 'folders:folder_view', 'args': 'object.pk', 'famfam': 'page', 'permissions': [PERMISSION_FOLDER_VIEW]}
folder_add_document = {'text': _('Add to a folder'), 'view': 'folders:folder_add_document', 'args': 'object.pk', 'famfam': 'folder_add', 'permissions': [PERMISSION_FOLDER_ADD_DOCUMENT]}
folder_add_multiple_documents = {'text': _('Add to folder'), 'view': 'folders:folder_add_multiple_documents', 'famfam': 'folder_add'}
document_folder_list = {'text': _('Folders'), 'view': 'folders:document_folder_list', 'args': 'object.pk', 'famfam': 'folder_user', 'permissions': [PERMISSION_DOCUMENT_VIEW]}
folder_acl_list = {'text': _('ACLs'), 'view': 'folders:folder_acl_list', 'args': 'object.pk', 'famfam': 'lock', 'permissions': [ACLS_VIEW_ACL]}