Started navigation refatoring

This commit is contained in:
Roberto Rosario
2012-03-16 12:56:49 -04:00
parent 4a3cdc3a5c
commit d028f54c27
23 changed files with 500 additions and 348 deletions

View File

@@ -2,7 +2,7 @@ from __future__ import absolute_import
from django.utils.translation import ugettext_lazy as _ from django.utils.translation import ugettext_lazy as _
from navigation.api import register_links, register_multi_item_links from navigation.api import bind_links, register_multi_item_links, Link
from project_setup.api import register_setup from project_setup.api import register_setup
from .classes import (AccessHolder, AccessObjectClass, ClassAccessHolder, from .classes import (AccessHolder, AccessObjectClass, ClassAccessHolder,
@@ -11,29 +11,29 @@ from .permissions import (ACLS_EDIT_ACL, ACLS_VIEW_ACL,
ACLS_CLASS_EDIT_ACL, ACLS_CLASS_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_list = Link(text=_(u'ACLs'), view='acl_list', sprite='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_detail = Link(text=_(u'details'), view='acl_detail', args=['access_object.gid', 'object.gid'], sprite='key_go', permissions=[ACLS_VIEW_ACL])
acl_grant = {'text': _(u'grant'), 'view': 'acl_multiple_grant', 'famfam': 'key_add', 'permissions': [ACLS_EDIT_ACL]} acl_grant = Link(text=_(u'grant'), view='acl_multiple_grant', sprite='key_add', permissions=[ACLS_EDIT_ACL])
acl_revoke = {'text': _(u'revoke'), 'view': 'acl_multiple_revoke', 'famfam': 'key_delete', 'permissions': [ACLS_EDIT_ACL]} acl_revoke = Link(text=_(u'revoke'), view='acl_multiple_revoke', sprite='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_holder_new = Link(text=_(u'New holder'), view='acl_holder_new', args='access_object.gid', sprite='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_setup_valid_classes = Link(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_list = Link(text=_(u'List of classes'), view='acl_setup_valid_classes', sprite='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_list = Link(text=_(u'ACLs for class'), view='acl_class_acl_list', args='object.gid', sprite='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_acl_detail = Link(text=_(u'details'), view='acl_class_acl_detail', args=['access_object_class.gid', 'object.gid'], sprite='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_new_holder_for = Link(text=_(u'New holder'), view='acl_class_new_holder_for', args='object.gid', sprite='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_grant = Link(text=_(u'grant'), view='acl_class_multiple_grant', sprite='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_class_revoke = Link(text=_(u'revoke'), view='acl_class_multiple_revoke', sprite='key_delete', permissions=[ACLS_CLASS_EDIT_ACL])
register_links(AccessHolder, [acl_detail]) bind_links([AccessHolder], [acl_detail])
register_multi_item_links(['acl_detail'], [acl_grant, acl_revoke]) register_multi_item_links(['acl_detail'], [acl_grant, acl_revoke])
register_links([AccessObject], [acl_holder_new], menu_name='sidebar') bind_links([AccessObject], [acl_holder_new], menu_name='sidebar')
register_setup(acl_setup_valid_classes) 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') bind_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(ClassAccessHolder, [acl_class_acl_detail]) bind_links([ClassAccessHolder], [acl_class_acl_detail])
register_links(AccessObjectClass, [acl_class_acl_list, acl_class_new_holder_for]) bind_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(['acl_class_acl_detail'], [acl_class_grant, acl_class_revoke])

View File

@@ -8,7 +8,7 @@ from django.contrib.auth.management import create_superuser
from django.dispatch import receiver from django.dispatch import receiver
from django.db.models.signals import post_syncdb from django.db.models.signals import post_syncdb
from navigation.api import register_links, register_top_menu from navigation.api import bind_links, register_top_menu
from .conf import settings as common_settings from .conf import settings as common_settings
from .utils import validate_path from .utils import validate_path
@@ -21,12 +21,12 @@ password_change_view = {'text': _(u'change password'), 'view': 'password_change_
current_user_details = {'text': _(u'user details'), 'view': 'current_user_details', 'famfam': 'vcard'} current_user_details = {'text': _(u'user details'), 'view': 'current_user_details', 'famfam': 'vcard'}
current_user_edit = {'text': _(u'edit details'), 'view': 'current_user_edit', 'famfam': 'vcard_edit'} current_user_edit = {'text': _(u'edit details'), 'view': 'current_user_edit', 'famfam': 'vcard_edit'}
register_links(['current_user_details', 'current_user_edit', 'password_change_view'], [current_user_details, current_user_edit, password_change_view], menu_name='secondary_menu') bind_links(['current_user_details', 'current_user_edit', 'password_change_view'], [current_user_details, current_user_edit, password_change_view], menu_name='secondary_menu')
about_view = {'text': _('about'), 'view': 'about_view', 'famfam': 'information'} about_view = {'text': _('about'), 'view': 'about_view', 'famfam': 'information'}
license_view = {'text': _('license'), 'view': 'license_view', 'famfam': 'script'} license_view = {'text': _('license'), 'view': 'license_view', 'famfam': 'script'}
register_links(['about_view', 'license_view'], [about_view, license_view], menu_name='secondary_menu') bind_links(['about_view', 'license_view'], [about_view, license_view], menu_name='secondary_menu')
register_top_menu('about', link={'text': _(u'about'), 'view': 'about_view', 'famfam': 'information'}, position=-1) register_top_menu('about', link={'text': _(u'about'), 'view': 'about_view', 'famfam': 'information'}, position=-1)

View File

@@ -2,7 +2,7 @@ from __future__ import absolute_import
from django.utils.translation import ugettext_lazy as _ from django.utils.translation import ugettext_lazy as _
from navigation.api import register_links from navigation.api import bind_links
from project_setup.api import register_setup from project_setup.api import register_setup
from hkp import Key as KeyServerKey from hkp import Key as KeyServerKey
@@ -18,10 +18,10 @@ key_query = {'text': _(u'query keyservers'), 'view': 'key_query', 'famfam': 'zoo
key_receive = {'text': _(u'import'), 'view': 'key_receive', 'args': 'object.keyid', 'famfam': 'key_add', 'keep_query': True, 'permissions': [PERMISSION_KEY_RECEIVE]} 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_']} 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_']}
#register_links(['key_delete', 'key_private_list', 'key_public_list', 'key_query'], [private_keys, public_keys, key_query], menu_name='sidebar') #bind_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') bind_links(['key_delete', 'key_public_list', 'key_query'], [public_keys, key_query], menu_name='sidebar')
register_links(Key, [key_delete]) bind_links(Key, [key_delete])
register_links(KeyServerKey, [key_receive]) bind_links(KeyServerKey, [key_receive])
register_setup(key_setup) register_setup(key_setup)

View File

@@ -1,13 +1,13 @@
from django.utils.translation import ugettext_lazy as _ from django.utils.translation import ugettext_lazy as _
from documents.models import Document from documents.models import Document
from navigation.api import register_links from navigation.api import bind_links
from acls import ACLS_VIEW_ACL, ACLS_EDIT_ACL from acls import ACLS_VIEW_ACL, ACLS_EDIT_ACL
from acls.api import class_permissions from acls.api import class_permissions
acl_list = {'text': _(u'ACLs'), 'view': 'document_acl_list', 'args': 'object.pk', 'famfam': 'lock', 'permissions': [ACLS_VIEW_ACL]} acl_list = {'text': _(u'ACLs'), 'view': 'document_acl_list', 'args': 'object.pk', 'famfam': 'lock', 'permissions': [ACLS_VIEW_ACL]}
register_links(Document, [acl_list], menu_name='form_header') bind_links(Document, [acl_list], menu_name='form_header')
class_permissions(Document, [ class_permissions(Document, [
ACLS_VIEW_ACL, ACLS_VIEW_ACL,

View File

@@ -5,7 +5,7 @@ from django.conf import settings
from django.contrib.comments.models import Comment from django.contrib.comments.models import Comment
from django.contrib.contenttypes import generic from django.contrib.contenttypes import generic
from navigation.api import register_links, register_model_list_columns from navigation.api import bind_links, register_model_list_columns
from common.utils import encapsulate from common.utils import encapsulate
from acls.api import class_permissions from acls.api import class_permissions
from documents.models import Document from documents.models import Document
@@ -36,9 +36,9 @@ register_model_list_columns(Comment, [
} }
]) ])
register_links(['comments_for_document', 'comment_add', 'comment_delete', 'comment_multiple_delete'], [comment_add], menu_name='sidebar') bind_links(['comments_for_document', 'comment_add', 'comment_delete', 'comment_multiple_delete'], [comment_add], menu_name='sidebar')
register_links(Comment, [comment_delete]) bind_links(Comment, [comment_delete])
register_links(Document, [comments_for_document], menu_name='form_header') bind_links(Document, [comments_for_document], menu_name='form_header')
Document.add_to_class( Document.add_to_class(
'comments', 'comments',

View File

@@ -7,7 +7,7 @@ from django.db.models.signals import pre_save, post_save, pre_delete
from django.dispatch import receiver from django.dispatch import receiver
from navigation.api import (register_top_menu, register_sidebar_template, from navigation.api import (register_top_menu, register_sidebar_template,
register_links) bind_links)
from main.api import register_maintenance_links from main.api import register_maintenance_links
from documents.permissions import PERMISSION_DOCUMENT_VIEW from documents.permissions import PERMISSION_DOCUMENT_VIEW
@@ -58,17 +58,17 @@ register_maintenance_links([rebuild_index_instances], namespace='document_indexi
register_sidebar_template(['index_instance_list'], 'indexing_help.html') register_sidebar_template(['index_instance_list'], 'indexing_help.html')
register_links(IndexInstanceNode, [index_parent]) bind_links(IndexInstanceNode, [index_parent])
register_links(Document, [document_index_list], menu_name='form_header') bind_links(Document, [document_index_list], menu_name='form_header')
register_setup(index_setup) 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') bind_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, [index_setup_edit, index_setup_delete, index_setup_view]) bind_links(Index, [index_setup_edit, index_setup_delete, index_setup_view])
register_links(IndexTemplateNode, [template_node_create, template_node_edit, template_node_delete]) bind_links(IndexTemplateNode, [template_node_create, template_node_edit, template_node_delete])
def delete_indexes_handler(sender, instance, **kwargs): def delete_indexes_handler(sender, instance, **kwargs):

View File

@@ -5,9 +5,9 @@ import tempfile
from django.utils.translation import ugettext_lazy as _ from django.utils.translation import ugettext_lazy as _
from common.utils import validate_path, encapsulate from common.utils import validate_path, encapsulate
from navigation.api import (register_links, register_top_menu, from navigation.api import (bind_links, register_top_menu,
register_model_list_columns, register_multi_item_links, register_model_list_columns, register_multi_item_links,
register_sidebar_template) register_sidebar_template, Link)
from main.api import register_diagnostic, register_maintenance_links from main.api import register_diagnostic, register_maintenance_links
from history.api import register_history_type from history.api import register_history_type
from history.permissions import PERMISSION_HISTORY_VIEW from history.permissions import PERMISSION_HISTORY_VIEW
@@ -60,106 +60,106 @@ register_history_type(HISTORY_DOCUMENT_CREATED)
register_history_type(HISTORY_DOCUMENT_EDITED) register_history_type(HISTORY_DOCUMENT_EDITED)
register_history_type(HISTORY_DOCUMENT_DELETED) register_history_type(HISTORY_DOCUMENT_DELETED)
document_list = {'text': _(u'all documents'), 'view': 'document_list', 'famfam': 'page'} document_list = Link(text=_(u'all documents'), view='document_list', sprite='page')
document_list_recent = {'text': _(u'recent documents'), 'view': 'document_list_recent', 'famfam': 'page'} document_list_recent = Link(text=_(u'recent documents'), view='document_list_recent', sprite='page')
document_create_multiple = {'text': _(u'upload new documents'), 'view': 'document_create_multiple', 'famfam': 'page_add', 'permissions': [PERMISSION_DOCUMENT_CREATE], 'children_view_regex': [r'upload_interactive']} document_create_multiple = Link(text=_(u'upload new documents'), view='document_create_multiple', sprite='page_add', permissions=[PERMISSION_DOCUMENT_CREATE], children_view_regex=[r'upload_interactive'])
document_create_siblings = {'text': _(u'clone metadata'), 'view': 'document_create_siblings', 'args': 'object.id', 'famfam': 'page_copy', 'permissions': [PERMISSION_DOCUMENT_CREATE]} document_create_siblings = Link(text=_(u'clone metadata'), view='document_create_siblings', args='object.id', sprite='page_copy', permissions=[PERMISSION_DOCUMENT_CREATE])
document_view_simple = {'text': _(u'details'), 'view': 'document_view_simple', 'args': 'object.id', 'famfam': 'page', 'permissions': [PERMISSION_DOCUMENT_VIEW]} document_view_simple = Link(text=_(u'details'), view='document_view_simple', args='object.id', sprite='page', permissions=[PERMISSION_DOCUMENT_VIEW])
document_view_advanced = {'text': _(u'properties'), 'view': 'document_view_advanced', 'args': 'object.id', 'famfam': 'page_gear', 'permissions': [PERMISSION_DOCUMENT_VIEW]} document_view_advanced = Link(text=_(u'properties'), view='document_view_advanced', args='object.id', sprite='page_gear', permissions=[PERMISSION_DOCUMENT_VIEW])
document_delete = {'text': _(u'delete'), 'view': 'document_delete', 'args': 'object.id', 'famfam': 'page_delete', 'permissions': [PERMISSION_DOCUMENT_DELETE]} document_delete = Link(text=_(u'delete'), view='document_delete', args='object.id', sprite='page_delete', permissions=[PERMISSION_DOCUMENT_DELETE])
document_multiple_delete = {'text': _(u'delete'), 'view': 'document_multiple_delete', 'famfam': 'page_delete', 'permissions': [PERMISSION_DOCUMENT_DELETE]} document_multiple_delete = Link(text=_(u'delete'), view='document_multiple_delete', sprite='page_delete', permissions=[PERMISSION_DOCUMENT_DELETE])
document_edit = {'text': _(u'edit'), 'view': 'document_edit', 'args': 'object.id', 'famfam': 'page_edit', 'permissions': [PERMISSION_DOCUMENT_PROPERTIES_EDIT]} document_edit = Link(text=_(u'edit'), view='document_edit', args='object.id', sprite='page_edit', permissions=[PERMISSION_DOCUMENT_PROPERTIES_EDIT])
document_preview = {'text': _(u'preview'), 'class': 'fancybox', 'view': 'document_preview', 'args': 'object.id', 'famfam': 'magnifier', 'permissions': [PERMISSION_DOCUMENT_VIEW]} document_preview = Link(text=_(u'preview'), klass='fancybox', view='document_preview', args='object.id', sprite='magnifier', permissions=[PERMISSION_DOCUMENT_VIEW])
document_download = {'text': _(u'download'), 'view': 'document_download', 'args': 'object.id', 'famfam': 'page_save', 'permissions': [PERMISSION_DOCUMENT_DOWNLOAD]} document_download = Link(text=_(u'download'), view='document_download', args='object.id', sprite='page_save', permissions=[PERMISSION_DOCUMENT_DOWNLOAD])
document_multiple_download = {'text': _(u'download'), 'view': 'document_multiple_download', 'famfam': 'page_save', 'permissions': [PERMISSION_DOCUMENT_DOWNLOAD]} document_multiple_download = Link(text=_(u'download'), view='document_multiple_download', sprite='page_save', permissions=[PERMISSION_DOCUMENT_DOWNLOAD])
document_version_download = {'text': _(u'download'), 'view': 'document_version_download', 'args': 'object.pk', 'famfam': 'page_save', 'permissions': [PERMISSION_DOCUMENT_DOWNLOAD]} document_version_download = Link(text=_(u'download'), view='document_version_download', args='object.pk', sprite='page_save', permissions=[PERMISSION_DOCUMENT_DOWNLOAD])
document_find_duplicates = {'text': _(u'find duplicates'), 'view': 'document_find_duplicates', 'args': 'object.id', 'famfam': 'page_white_copy', 'permissions': [PERMISSION_DOCUMENT_VIEW]} document_find_duplicates = Link(text=_(u'find duplicates'), view='document_find_duplicates', args='object.id', sprite='page_white_copy', permissions=[PERMISSION_DOCUMENT_VIEW])
document_find_all_duplicates = {'text': _(u'find all duplicates'), 'view': 'document_find_all_duplicates', 'famfam': 'page_white_copy', 'permissions': [PERMISSION_DOCUMENT_VIEW], 'description': _(u'Search all the documents\' checksums and return a list of the exact matches.')} document_find_all_duplicates = Link(text=_(u'find all duplicates'), view='document_find_all_duplicates', sprite='page_white_copy', permissions=[PERMISSION_DOCUMENT_VIEW], description=_(u'Search all the documents\' checksums and return a list of the exact matches.'))
document_update_page_count = {'text': _(u'update office documents\' page count'), 'view': 'document_update_page_count', 'famfam': 'page_white_csharp', 'permissions': [PERMISSION_DOCUMENT_TOOLS], 'description': _(u'Update the page count of the office type documents. This is useful when enabling office document support after there were already office type documents in the database.')} document_update_page_count = Link(text=_(u'update office documents\' page count'), view='document_update_page_count', sprite='page_white_csharp', permissions=[PERMISSION_DOCUMENT_TOOLS], description=_(u'Update the page count of the office type documents. This is useful when enabling office document support after there were already office type documents in the database.'))
document_clear_transformations = {'text': _(u'clear transformations'), 'view': 'document_clear_transformations', 'args': 'object.id', 'famfam': 'page_paintbrush', 'permissions': [PERMISSION_DOCUMENT_TRANSFORM]} document_clear_transformations = Link(text=_(u'clear transformations'), view='document_clear_transformations', args='object.id', sprite='page_paintbrush', permissions=[PERMISSION_DOCUMENT_TRANSFORM])
document_multiple_clear_transformations = {'text': _(u'clear transformations'), 'view': 'document_multiple_clear_transformations', 'famfam': 'page_paintbrush', 'permissions': [PERMISSION_DOCUMENT_TRANSFORM]} document_multiple_clear_transformations = Link(text=_(u'clear transformations'), view='document_multiple_clear_transformations', sprite='page_paintbrush', permissions=[PERMISSION_DOCUMENT_TRANSFORM])
document_print = {'text': _(u'print'), 'view': 'document_print', 'args': 'object.id', 'famfam': 'printer', 'permissions': [PERMISSION_DOCUMENT_VIEW]} document_print = Link(text=_(u'print'), view='document_print', args='object.id', sprite='printer', permissions=[PERMISSION_DOCUMENT_VIEW])
document_history_view = {'text': _(u'history'), 'view': 'history_for_object', 'args': ['"documents"', '"document"', 'object.id'], 'famfam': 'book_go', 'permissions': [PERMISSION_HISTORY_VIEW]} document_history_view = Link(text=_(u'history'), view='history_for_object', args=['"documents"', "document"', object.id'], sprite='book_go', permissions=[PERMISSION_HISTORY_VIEW])
document_missing_list = {'text': _(u'Find missing document files'), 'view': 'document_missing_list', 'famfam': 'folder_page', 'permissions': [PERMISSION_DOCUMENT_VIEW]} document_missing_list = Link(text=_(u'Find missing document files'), view='document_missing_list', sprite='folder_page', permissions=[PERMISSION_DOCUMENT_VIEW])
# Tools # Tools
document_clear_image_cache = {'text': _(u'Clear the document image cache'), 'view': 'document_clear_image_cache', 'famfam': 'camera_delete', 'permissions': [PERMISSION_DOCUMENT_TOOLS], 'description': _(u'Clear the graphics representations used to speed up the documents\' display and interactive transformations results.')} document_clear_image_cache = Link(text=_(u'Clear the document image cache'), view='document_clear_image_cache', sprite='camera_delete', permissions=[PERMISSION_DOCUMENT_TOOLS], description=_(u'Clear the graphics representations used to speed up the documents\' display and interactive transformations results.'))
# Document pages # Document pages
document_page_transformation_list = {'text': _(u'page transformations'), 'class': 'no-parent-history', 'view': 'document_page_transformation_list', 'args': 'page.pk', 'famfam': 'pencil_go', 'permissions': [PERMISSION_DOCUMENT_TRANSFORM]} document_page_transformation_list = Link(text=_(u'page transformations'), klass='no-parent-history', view='document_page_transformation_list', args='page.pk', sprite='pencil_go', permissions=[PERMISSION_DOCUMENT_TRANSFORM])
document_page_transformation_create = {'text': _(u'create new transformation'), 'class': 'no-parent-history', 'view': 'document_page_transformation_create', 'args': 'page.pk', 'famfam': 'pencil_add', 'permissions': [PERMISSION_DOCUMENT_TRANSFORM]} document_page_transformation_create = Link(text=_(u'create new transformation'), klass='no-parent-history', view='document_page_transformation_create', args='page.pk', sprite='pencil_add', permissions=[PERMISSION_DOCUMENT_TRANSFORM])
document_page_transformation_edit = {'text': _(u'edit'), 'class': 'no-parent-history', 'view': 'document_page_transformation_edit', 'args': 'transformation.pk', 'famfam': 'pencil_go', 'permissions': [PERMISSION_DOCUMENT_TRANSFORM]} document_page_transformation_edit = Link(text=_(u'edit'), klass='no-parent-history', view='document_page_transformation_edit', args='transformation.pk', sprite='pencil_go', permissions=[PERMISSION_DOCUMENT_TRANSFORM])
document_page_transformation_delete = {'text': _(u'delete'), 'class': 'no-parent-history', 'view': 'document_page_transformation_delete', 'args': 'transformation.pk', 'famfam': 'pencil_delete', 'permissions': [PERMISSION_DOCUMENT_TRANSFORM]} document_page_transformation_delete = Link(text=_(u'delete'), klass='no-parent-history', view='document_page_transformation_delete', args='transformation.pk', sprite='pencil_delete', permissions=[PERMISSION_DOCUMENT_TRANSFORM])
document_page_view = {'text': _(u'page image'), 'class': 'no-parent-history', 'view': 'document_page_view', 'args': 'page.pk', 'famfam': 'page_white_picture', 'permissions': [PERMISSION_DOCUMENT_VIEW]} document_page_view = Link(text=_(u'page image'), klass='no-parent-history', view='document_page_view', args='page.pk', sprite='page_white_picture', permissions=[PERMISSION_DOCUMENT_VIEW])
document_page_text = {'text': _(u'page text'), 'class': 'no-parent-history', 'view': 'document_page_text', 'args': 'page.pk', 'famfam': 'page_white_text', 'permissions': [PERMISSION_DOCUMENT_VIEW]} document_page_text = Link(text=_(u'page text'), klass='no-parent-history', view='document_page_text', args='page.pk', sprite='page_white_text', permissions=[PERMISSION_DOCUMENT_VIEW])
document_page_edit = {'text': _(u'edit page text'), 'class': 'no-parent-history', 'view': 'document_page_edit', 'args': 'page.pk', 'famfam': 'page_white_edit', 'permissions': [PERMISSION_DOCUMENT_EDIT]} document_page_edit = Link(text=_(u'edit page text'), klass='no-parent-history', view='document_page_edit', args='page.pk', sprite='page_white_edit', permissions=[PERMISSION_DOCUMENT_EDIT])
document_page_navigation_next = {'text': _(u'next page'), 'class': 'no-parent-history', 'view': 'document_page_navigation_next', 'args': 'page.pk', 'famfam': 'resultset_next', 'permissions': [PERMISSION_DOCUMENT_VIEW], 'conditional_disable': is_last_page} document_page_navigation_next = Link(text=_(u'next page'), klass='no-parent-history', view='document_page_navigation_next', args='page.pk', sprite='resultset_next', permissions=[PERMISSION_DOCUMENT_VIEW], conditional_disable=is_last_page)
document_page_navigation_previous = {'text': _(u'previous page'), 'class': 'no-parent-history', 'view': 'document_page_navigation_previous', 'args': 'page.pk', 'famfam': 'resultset_previous', 'permissions': [PERMISSION_DOCUMENT_VIEW], 'conditional_disable': is_first_page} document_page_navigation_previous = Link(text=_(u'previous page'), klass='no-parent-history', view='document_page_navigation_previous', args='page.pk', sprite='resultset_previous', permissions=[PERMISSION_DOCUMENT_VIEW], conditional_disable=is_first_page)
document_page_navigation_first = {'text': _(u'first page'), 'class': 'no-parent-history', 'view': 'document_page_navigation_first', 'args': 'page.pk', 'famfam': 'resultset_first', 'permissions': [PERMISSION_DOCUMENT_VIEW], 'conditional_disable': is_first_page} document_page_navigation_first = Link(text=_(u'first page'), klass='no-parent-history', view='document_page_navigation_first', args='page.pk', sprite='resultset_first', permissions=[PERMISSION_DOCUMENT_VIEW], conditional_disable=is_first_page)
document_page_navigation_last = {'text': _(u'last page'), 'class': 'no-parent-history', 'view': 'document_page_navigation_last', 'args': 'page.pk', 'famfam': 'resultset_last', 'permissions': [PERMISSION_DOCUMENT_VIEW], 'conditional_disable': is_last_page} document_page_navigation_last = Link(text=_(u'last page'), klass='no-parent-history', view='document_page_navigation_last', args='page.pk', sprite='resultset_last', permissions=[PERMISSION_DOCUMENT_VIEW], conditional_disable=is_last_page)
document_page_zoom_in = {'text': _(u'zoom in'), 'class': 'no-parent-history', 'view': 'document_page_zoom_in', 'args': 'page.pk', 'famfam': 'zoom_in', 'permissions': [PERMISSION_DOCUMENT_VIEW], 'conditional_disable': is_max_zoom} document_page_zoom_in = Link(text=_(u'zoom in'), klass='no-parent-history', view='document_page_zoom_in', args='page.pk', sprite='zoom_in', permissions=[PERMISSION_DOCUMENT_VIEW], conditional_disable=is_max_zoom)
document_page_zoom_out = {'text': _(u'zoom out'), 'class': 'no-parent-history', 'view': 'document_page_zoom_out', 'args': 'page.pk', 'famfam': 'zoom_out', 'permissions': [PERMISSION_DOCUMENT_VIEW], 'conditional_disable': is_min_zoom} document_page_zoom_out = Link(text=_(u'zoom out'), klass='no-parent-history', view='document_page_zoom_out', args='page.pk', sprite='zoom_out', permissions=[PERMISSION_DOCUMENT_VIEW], conditional_disable=is_min_zoom)
document_page_rotate_right = {'text': _(u'rotate right'), 'class': 'no-parent-history', 'view': 'document_page_rotate_right', 'args': 'page.pk', 'famfam': 'arrow_turn_right', 'permissions': [PERMISSION_DOCUMENT_VIEW]} document_page_rotate_right = Link(text=_(u'rotate right'), klass='no-parent-history', view='document_page_rotate_right', args='page.pk', sprite='arrow_turn_right', permissions=[PERMISSION_DOCUMENT_VIEW])
document_page_rotate_left = {'text': _(u'rotate left'), 'class': 'no-parent-history', 'view': 'document_page_rotate_left', 'args': 'page.pk', 'famfam': 'arrow_turn_left', 'permissions': [PERMISSION_DOCUMENT_VIEW]} document_page_rotate_left = Link(text=_(u'rotate left'), klass='no-parent-history', view='document_page_rotate_left', args='page.pk', sprite='arrow_turn_left', permissions=[PERMISSION_DOCUMENT_VIEW])
document_page_view_reset = {'text': _(u'reset view'), 'class': 'no-parent-history', 'view': 'document_page_view_reset', 'args': 'page.pk', 'famfam': 'page_white', 'permissions': [PERMISSION_DOCUMENT_VIEW]} document_page_view_reset = Link(text=_(u'reset view'), klass='no-parent-history', view='document_page_view_reset', args='page.pk', sprite='page_white', permissions=[PERMISSION_DOCUMENT_VIEW])
# Document versions # Document versions
document_version_list = {'text': _(u'versions'), 'view': 'document_version_list', 'args': 'object.pk', 'famfam': 'page_world', 'permissions': [PERMISSION_DOCUMENT_VIEW]} document_version_list = Link(text=_(u'versions'), view='document_version_list', args='object.pk', sprite='page_world', permissions=[PERMISSION_DOCUMENT_VIEW])
document_version_revert = {'text': _(u'revert'), 'view': 'document_version_revert', 'args': 'object.pk', 'famfam': 'page_refresh', 'permissions': [PERMISSION_DOCUMENT_VERSION_REVERT], 'conditional_disable': is_current_version} document_version_revert = Link(text=_(u'revert'), view='document_version_revert', args='object.pk', sprite='page_refresh', permissions=[PERMISSION_DOCUMENT_VERSION_REVERT], conditional_disable=is_current_version)
# Document type related links # Document type related links
document_type_list = {'text': _(u'document type list'), 'view': 'document_type_list', 'famfam': 'layout', 'permissions': [PERMISSION_DOCUMENT_TYPE_VIEW]} document_type_list = Link(text=_(u'document type list'), view='document_type_list', sprite='layout', permissions=[PERMISSION_DOCUMENT_TYPE_VIEW])
document_type_setup = {'text': _(u'document types'), 'view': 'document_type_list', 'famfam': 'layout', 'icon': 'layout.png', 'permissions': [PERMISSION_DOCUMENT_TYPE_VIEW], 'children_view_regex': [r'^document_type_']} document_type_setup = Link(text=_(u'document types'), view='document_type_list', sprite='layout', icon='layout.png', permissions=[PERMISSION_DOCUMENT_TYPE_VIEW], children_view_regex=[r'^document_type_'])
document_type_document_list = {'text': _(u'documents of this type'), 'view': 'document_type_document_list', 'args': 'document_type.id', 'famfam': 'page_go', 'permissions': [PERMISSION_DOCUMENT_TYPE_VIEW]} document_type_document_list = Link(text=_(u'documents of this type'), view='document_type_document_list', args='document_type.id', sprite='page_go', permissions=[PERMISSION_DOCUMENT_TYPE_VIEW])
document_type_edit = {'text': _(u'edit'), 'view': 'document_type_edit', 'args': 'document_type.id', 'famfam': 'layout_edit', 'permissions': [PERMISSION_DOCUMENT_TYPE_EDIT]} document_type_edit = Link(text=_(u'edit'), view='document_type_edit', args='document_type.id', sprite='layout_edit', permissions=[PERMISSION_DOCUMENT_TYPE_EDIT])
document_type_delete = {'text': _(u'delete'), 'view': 'document_type_delete', 'args': 'document_type.id', 'famfam': 'layout_delete', 'permissions': [PERMISSION_DOCUMENT_TYPE_DELETE]} document_type_delete = Link(text=_(u'delete'), view='document_type_delete', args='document_type.id', sprite='layout_delete', permissions=[PERMISSION_DOCUMENT_TYPE_DELETE])
document_type_create = {'text': _(u'create document type'), 'view': 'document_type_create', 'famfam': 'layout_add', 'permissions': [PERMISSION_DOCUMENT_TYPE_CREATE]} document_type_create = Link(text=_(u'create document type'), view='document_type_create', sprite='layout_add', permissions=[PERMISSION_DOCUMENT_TYPE_CREATE])
document_type_filename_list = {'text': _(u'filenames'), 'view': 'document_type_filename_list', 'args': 'document_type.id', 'famfam': 'database', 'permissions': [PERMISSION_DOCUMENT_TYPE_VIEW]} document_type_filename_list = Link(text=_(u'filenames'), view='document_type_filename_list', args='document_type.id', sprite='database', permissions=[PERMISSION_DOCUMENT_TYPE_VIEW])
document_type_filename_create = {'text': _(u'add filename to document type'), 'view': 'document_type_filename_create', 'args': 'document_type.id', 'famfam': 'database_add', 'permissions': [PERMISSION_DOCUMENT_TYPE_EDIT]} document_type_filename_create = Link(text=_(u'add filename to document type'), view='document_type_filename_create', args='document_type.id', sprite='database_add', permissions=[PERMISSION_DOCUMENT_TYPE_EDIT])
document_type_filename_edit = {'text': _(u'edit'), 'view': 'document_type_filename_edit', 'args': 'filename.id', 'famfam': 'database_edit', 'permissions': [PERMISSION_DOCUMENT_TYPE_EDIT]} document_type_filename_edit = Link(text=_(u'edit'), view='document_type_filename_edit', args='filename.id', sprite='database_edit', permissions=[PERMISSION_DOCUMENT_TYPE_EDIT])
document_type_filename_delete = {'text': _(u'delete'), 'view': 'document_type_filename_delete', 'args': 'filename.id', 'famfam': 'database_delete', 'permissions': [PERMISSION_DOCUMENT_TYPE_EDIT]} document_type_filename_delete = Link(text=_(u'delete'), view='document_type_filename_delete', args='filename.id', sprite='database_delete', permissions=[PERMISSION_DOCUMENT_TYPE_EDIT])
document_type_views = ['setup_document_type_metadata', 'document_type_list', 'document_type_document_list', 'document_type_edit', 'document_type_delete', 'document_type_create', 'document_type_filename_list', 'document_type_filename_create', 'document_type_filename_edit', 'document_type_filename_delete'] document_type_views =['setup_document_type_metadata', document_type_list', document_type_document_list', document_type_edit', document_type_delete', document_type_create', document_type_filename_list', document_type_filename_create', document_type_filename_edit', document_type_filename_delete']
# Register document type links # Register document type links
register_links(DocumentType, [document_type_document_list, document_type_filename_list, document_type_edit, document_type_delete]) bind_links([DocumentType], [document_type_document_list, document_type_filename_list, document_type_edit, document_type_delete])
register_links(DocumentTypeFilename, [document_type_filename_edit, document_type_filename_delete]) bind_links([DocumentTypeFilename], [document_type_filename_edit, document_type_filename_delete])
register_links(['setup_document_type_metadata', 'document_type_filename_delete', 'document_type_create', 'document_type_filename_create', 'document_type_filename_edit', 'document_type_filename_list', 'document_type_list', 'document_type_document_list', 'document_type_edit', 'document_type_delete'], [document_type_list, document_type_create], menu_name='sidebar') bind_links(['setup_document_type_metadata', 'document_type_filename_delete', 'document_type_create', 'document_type_filename_create', 'document_type_filename_edit', 'document_type_filename_list', 'document_type_list', 'document_type_document_list', 'document_type_edit', 'document_type_delete'], [document_type_list, document_type_create], menu_name='sidebar')
register_links(['document_type_filename_create', 'document_type_filename_list', 'document_type_filename_edit', 'document_type_filename_delete'], [document_type_filename_create], menu_name='sidebar') bind_links(['document_type_filename_create', 'document_type_filename_list', 'document_type_filename_edit', 'document_type_filename_delete'], [document_type_filename_create], menu_name='sidebar')
# Register document links # Register document links
register_links(Document, [document_view_simple, document_edit, document_print, document_delete, document_download, document_find_duplicates, document_clear_transformations, document_create_siblings]) bind_links([Document], [document_view_simple, document_edit, document_print, document_delete, document_download, document_find_duplicates, document_clear_transformations, document_create_siblings])
register_multi_item_links(['document_find_duplicates', 'folder_view', 'index_instance_list', 'document_type_document_list', 'search', 'results', 'document_group_view', 'document_list', 'document_list_recent'], [document_multiple_clear_transformations, document_multiple_delete, document_multiple_download]) register_multi_item_links(['document_find_duplicates', 'folder_view', 'index_instance_list', 'document_type_document_list', 'search', 'results', 'document_group_view', 'document_list', 'document_list_recent'], [document_multiple_clear_transformations, document_multiple_delete, document_multiple_download])
# Document Version links # Document Version links
register_links(DocumentVersion, [document_version_revert, document_version_download]) bind_links([DocumentVersion], [document_version_revert, document_version_download])
secondary_menu_links = [document_list_recent, document_list, document_create_multiple] secondary_menu_links = [document_list_recent, document_list, document_create_multiple]
register_links(['document_list_recent', 'document_list', 'document_create', 'document_create_multiple', 'upload_interactive', 'staging_file_delete'], secondary_menu_links, menu_name='secondary_menu') bind_links(['document_list_recent', 'document_list', 'document_create', 'document_create_multiple', 'upload_interactive', 'staging_file_delete'], secondary_menu_links, menu_name='secondary_menu')
register_links(Document, secondary_menu_links, menu_name='secondary_menu') bind_links([Document], secondary_menu_links, menu_name='secondary_menu')
# Document page links # Document page links
register_links(DocumentPage, [ bind_links([DocumentPage], [
document_page_transformation_list, document_page_view, document_page_transformation_list, document_page_view,
document_page_text, document_page_edit, document_page_text, document_page_edit,
]) ])
# Document page navigation links # Document page navigation links
register_links(DocumentPage, [ bind_links([DocumentPage], [
document_page_navigation_first, document_page_navigation_previous, document_page_navigation_first, document_page_navigation_previous,
document_page_navigation_next, document_page_navigation_last document_page_navigation_next, document_page_navigation_last
], menu_name='related') ], menu_name='related')
register_links(['document_page_view'], [document_page_rotate_left, document_page_rotate_right, document_page_zoom_in, document_page_zoom_out, document_page_view_reset], menu_name='form_header') bind_links(['document_page_view'], [document_page_rotate_left, document_page_rotate_right, document_page_zoom_in, document_page_zoom_out, document_page_view_reset], menu_name='form_header')
register_links(DocumentPageTransformation, [document_page_transformation_edit, document_page_transformation_delete]) bind_links([DocumentPageTransformation], [document_page_transformation_edit, document_page_transformation_delete])
register_links('document_page_transformation_list', [document_page_transformation_create], menu_name='sidebar') bind_links('document_page_transformation_list', [document_page_transformation_create], menu_name='sidebar')
register_links('document_page_transformation_create', [document_page_transformation_create], menu_name='sidebar') bind_links('document_page_transformation_create', [document_page_transformation_create], menu_name='sidebar')
register_links(['document_page_transformation_edit', 'document_page_transformation_delete'], [document_page_transformation_create], menu_name='sidebar') bind_links(['document_page_transformation_edit', 'document_page_transformation_delete'], [document_page_transformation_create], menu_name='sidebar')
register_diagnostic('documents', _(u'Documents'), document_missing_list) register_diagnostic('documents', _(u'Documents'), document_missing_list)
@@ -188,10 +188,10 @@ register_top_menu(
register_sidebar_template(['document_list_recent'], 'recent_document_list_help.html') register_sidebar_template(['document_list_recent'], 'recent_document_list_help.html')
register_sidebar_template(['document_type_list'], 'document_types_help.html') register_sidebar_template(['document_type_list'], 'document_types_help.html')
register_links(Document, [document_view_simple], menu_name='form_header', position=0) bind_links(Document, [document_view_simple], menu_name='form_header', position=0)
register_links(Document, [document_view_advanced], menu_name='form_header', position=1) bind_links(Document, [document_view_advanced], menu_name='form_header', position=1)
register_links(Document, [document_history_view], menu_name='form_header') bind_links(Document, [document_history_view], menu_name='form_header')
register_links(Document, [document_version_list], menu_name='form_header') bind_links(Document, [document_version_list], menu_name='form_header')
if (validate_path(document_settings.CACHE_PATH) == False) or (not document_settings.CACHE_PATH): if (validate_path(document_settings.CACHE_PATH) == False) or (not document_settings.CACHE_PATH):
setattr(document_settings, 'CACHE_PATH', tempfile.mkdtemp()) setattr(document_settings, 'CACHE_PATH', tempfile.mkdtemp())

View File

@@ -1,6 +1,6 @@
from django.utils.translation import ugettext_lazy as _ from django.utils.translation import ugettext_lazy as _
from navigation.api import register_sidebar_template, register_links from navigation.api import register_sidebar_template, bind_links, Link
search = {'text': _(u'search'), 'view': 'search', 'famfam': 'zoom'} search = {'text': _(u'search'), 'view': 'search', 'famfam': 'zoom'}
search_advanced = {'text': _(u'advanced search'), 'view': 'search_advanced', 'famfam': 'zoom_in'} search_advanced = {'text': _(u'advanced search'), 'view': 'search_advanced', 'famfam': 'zoom_in'}
@@ -8,7 +8,7 @@ search_again = {'text': _(u'search again'), 'view': 'search_again', 'famfam': 'a
register_sidebar_template(['search', 'search_advanced'], 'search_help.html') register_sidebar_template(['search', 'search_advanced'], 'search_help.html')
register_links(['search', 'search_advanced', 'results'], [search, search_advanced], menu_name='form_header') bind_links(['search', 'search_advanced', 'results'], [search, search_advanced], menu_name='form_header')
register_links(['results'], [search_again], menu_name='sidebar') bind_links(['results'], [search_again], menu_name='sidebar')
register_sidebar_template(['search', 'search_advanced', 'results'], 'recent_searches.html') register_sidebar_template(['search', 'search_advanced', 'results'], 'recent_searches.html')

View File

@@ -2,10 +2,10 @@ from __future__ import absolute_import
from django.utils.translation import ugettext_lazy as _ from django.utils.translation import ugettext_lazy as _
from navigation.api import register_links from navigation.api import bind_links
from common import about_view, license_view from common import about_view, license_view
form_view = {'text': _('Feedback'), 'view': 'form_view', 'famfam': 'telephone'} form_view = {'text': _('Feedback'), 'view': 'form_view', 'famfam': 'telephone'}
register_links(['form_view'], [about_view, license_view], menu_name='secondary_menu') bind_links(['form_view'], [about_view, license_view], menu_name='secondary_menu')
register_links(['form_view', 'about_view', 'license_view'], [form_view], menu_name='secondary_menu') bind_links(['form_view', 'about_view', 'license_view'], [form_view], menu_name='secondary_menu')

View File

@@ -2,7 +2,7 @@ from __future__ import absolute_import
from django.utils.translation import ugettext_lazy as _ from django.utils.translation import ugettext_lazy as _
from navigation.api import (register_links, register_top_menu, from navigation.api import (bind_links, register_top_menu,
register_multi_item_links, register_sidebar_template) register_multi_item_links, register_sidebar_template)
from documents.models import Document from documents.models import Document
from documents.permissions import PERMISSION_DOCUMENT_VIEW from documents.permissions import PERMISSION_DOCUMENT_VIEW
@@ -28,17 +28,17 @@ folder_acl_list = {'text': _(u'ACLs'), 'view': 'folder_acl_list', 'args': 'objec
register_multi_item_links(['folder_view'], [folder_document_multiple_remove]) register_multi_item_links(['folder_view'], [folder_document_multiple_remove])
register_links(Folder, [folder_view, folder_edit, folder_delete, folder_acl_list]) bind_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') bind_links([Folder, 'folder_list', 'folder_create'], [folder_list, folder_create], menu_name='secondary_menu')
register_top_menu(name='folders', link={'text': _('folders'), 'famfam': 'folder_user', 'view': 'folder_list'}, children_views=['folder_list', 'folder_create', 'folder_edit', 'folder_delete', 'folder_view', 'folder_document_multiple_remove']) register_top_menu(name='folders', link={'text': _('folders'), 'famfam': 'folder_user', 'view': 'folder_list'}, children_views=['folder_list', 'folder_create', 'folder_edit', 'folder_delete', 'folder_view', 'folder_document_multiple_remove'])
register_links(Document, [document_folder_list], menu_name='form_header') bind_links(Document, [document_folder_list], menu_name='form_header')
register_sidebar_template(['folder_list'], 'folders_help.html') register_sidebar_template(['folder_list'], 'folders_help.html')
register_links(['document_folder_list', 'folder_add_document'], [folder_add_document], menu_name="sidebar") bind_links(['document_folder_list', 'folder_add_document'], [folder_add_document], menu_name="sidebar")
class_permissions(Folder, [ class_permissions(Folder, [
PERMISSION_FOLDER_EDIT, PERMISSION_FOLDER_EDIT,

View File

@@ -2,7 +2,7 @@ from __future__ import absolute_import
from django.utils.translation import ugettext_lazy as _ from django.utils.translation import ugettext_lazy as _
from navigation.api import register_links, register_sidebar_template from navigation.api import bind_links, register_sidebar_template
from project_setup.api import register_setup from project_setup.api import register_setup
from documents.permissions import PERMISSION_DOCUMENT_VIEW from documents.permissions import PERMISSION_DOCUMENT_VIEW
from documents.models import Document from documents.models import Document
@@ -30,13 +30,13 @@ smart_link_condition_delete = {'text': _(u'delete'), 'view': 'smart_link_conditi
smart_link_acl_list = {'text': _(u'ACLs'), 'view': 'smart_link_acl_list', 'args': 'object.pk', 'famfam': 'lock', 'permissions': [ACLS_VIEW_ACL]} smart_link_acl_list = {'text': _(u'ACLs'), 'view': 'smart_link_acl_list', 'args': 'object.pk', 'famfam': 'lock', 'permissions': [ACLS_VIEW_ACL]}
register_links(Document, [smart_link_instances_for_document], menu_name='form_header') bind_links(Document, [smart_link_instances_for_document], menu_name='form_header')
register_links(SmartLink, [smart_link_edit, smart_link_delete, smart_link_condition_list, smart_link_acl_list]) bind_links(SmartLink, [smart_link_edit, smart_link_delete, smart_link_condition_list, smart_link_acl_list])
register_links([SmartLink, 'smart_link_list', 'smart_link_create'], [smart_link_list, smart_link_create], menu_name='secondary_menu') bind_links([SmartLink, 'smart_link_list', 'smart_link_create'], [smart_link_list, smart_link_create], menu_name='secondary_menu')
register_links(SmartLinkCondition, [smart_link_condition_edit, smart_link_condition_delete]) bind_links(SmartLinkCondition, [smart_link_condition_edit, smart_link_condition_delete])
register_links(['smart_link_condition_list', 'smart_link_condition_create', 'smart_link_condition_edit', 'smart_link_condition_delete'], [smart_link_condition_create], menu_name='sidebar') bind_links(['smart_link_condition_list', 'smart_link_condition_create', 'smart_link_condition_edit', 'smart_link_condition_delete'], [smart_link_condition_create], menu_name='sidebar')
register_setup(smart_link_setup) register_setup(smart_link_setup)
register_sidebar_template(['smart_link_list'], 'smart_links_help.html') register_sidebar_template(['smart_link_list'], 'smart_links_help.html')

View File

@@ -4,7 +4,7 @@ from django.utils.translation import ugettext_lazy as _
from django.conf import settings from django.conf import settings
from navigation.api import register_top_menu from navigation.api import register_top_menu
from navigation.api import register_links from navigation.api import bind_links
from project_setup.api import register_setup from project_setup.api import register_setup
from project_tools.api import register_tool from project_tools.api import register_tool

View File

@@ -2,8 +2,8 @@ from __future__ import absolute_import
from django.utils.translation import ugettext_lazy as _ from django.utils.translation import ugettext_lazy as _
from navigation.api import (register_links, register_multi_item_links, from navigation.api import (bind_links, register_multi_item_links,
register_sidebar_template) register_sidebar_template, Link)
from documents.models import Document, DocumentType from documents.models import Document, DocumentType
from documents.permissions import PERMISSION_DOCUMENT_TYPE_EDIT from documents.permissions import PERMISSION_DOCUMENT_TYPE_EDIT
from project_setup.api import register_setup from project_setup.api import register_setup
@@ -18,37 +18,37 @@ from .permissions import (PERMISSION_METADATA_DOCUMENT_EDIT,
PERMISSION_METADATA_SET_CREATE, PERMISSION_METADATA_SET_DELETE, PERMISSION_METADATA_SET_CREATE, PERMISSION_METADATA_SET_DELETE,
PERMISSION_METADATA_SET_VIEW) PERMISSION_METADATA_SET_VIEW)
metadata_edit = {'text': _(u'edit metadata'), 'view': 'metadata_edit', 'args': 'object.pk', 'famfam': 'xhtml_go', 'permissions': [PERMISSION_METADATA_DOCUMENT_EDIT]} metadata_edit = Link(text=_(u'edit metadata'), view='metadata_edit', args='object.pk', sprite='xhtml_go', permissions=[PERMISSION_METADATA_DOCUMENT_EDIT])
metadata_view = {'text': _(u'metadata'), 'view': 'metadata_view', 'args': 'object.pk', 'famfam': 'xhtml_go', 'permissions': [PERMISSION_METADATA_DOCUMENT_VIEW], 'children_view_regex': ['metadata']} metadata_view = Link(text=_(u'metadata'), view='metadata_view', args='object.pk', sprite='xhtml_go', permissions=[PERMISSION_METADATA_DOCUMENT_VIEW])#, children_view_regex=['metadata'])
metadata_multiple_edit = {'text': _(u'edit metadata'), 'view': 'metadata_multiple_edit', 'famfam': 'xhtml_go', 'permissions': [PERMISSION_METADATA_DOCUMENT_EDIT]} metadata_multiple_edit = Link(text=_(u'edit metadata'), view='metadata_multiple_edit', sprite='xhtml_go', permissions=[PERMISSION_METADATA_DOCUMENT_EDIT])
metadata_add = {'text': _(u'add metadata'), 'view': 'metadata_add', 'args': 'object.pk', 'famfam': 'xhtml_add', 'permissions': [PERMISSION_METADATA_DOCUMENT_ADD]} metadata_add = Link(text=_(u'add metadata'), view='metadata_add', args='object.pk', sprite='xhtml_add', permissions=[PERMISSION_METADATA_DOCUMENT_ADD])
metadata_multiple_add = {'text': _(u'add metadata'), 'view': 'metadata_multiple_add', 'famfam': 'xhtml_add', 'permissions': [PERMISSION_METADATA_DOCUMENT_ADD]} metadata_multiple_add = Link(text=_(u'add metadata'), view='metadata_multiple_add', sprite='xhtml_add', permissions=[PERMISSION_METADATA_DOCUMENT_ADD])
metadata_remove = {'text': _(u'remove metadata'), 'view': 'metadata_remove', 'args': 'object.pk', 'famfam': 'xhtml_delete', 'permissions': [PERMISSION_METADATA_DOCUMENT_REMOVE]} metadata_remove = Link(text=_(u'remove metadata'), view='metadata_remove', args='object.pk', sprite='xhtml_delete', permissions=[PERMISSION_METADATA_DOCUMENT_REMOVE])
metadata_multiple_remove = {'text': _(u'remove metadata'), 'view': 'metadata_multiple_remove', 'famfam': 'xhtml_delete', 'permissions': [PERMISSION_METADATA_DOCUMENT_REMOVE]} metadata_multiple_remove = Link(text=_(u'remove metadata'), view='metadata_multiple_remove', sprite='xhtml_delete', permissions=[PERMISSION_METADATA_DOCUMENT_REMOVE])
setup_metadata_type_list = {'text': _(u'metadata types'), 'view': 'setup_metadata_type_list', 'famfam': 'xhtml_go', 'icon': 'xhtml.png', 'permissions': [PERMISSION_METADATA_TYPE_VIEW], 'children_view_regex': [r'setup_metadata_type']} setup_metadata_type_list = Link(text=_(u'metadata types'), view='setup_metadata_type_list', sprite='xhtml_go', icon='xhtml.png', permissions=[PERMISSION_METADATA_TYPE_VIEW])#, children_view_regex=[r'setup_metadata_type'])
setup_metadata_type_edit = {'text': _(u'edit'), 'view': 'setup_metadata_type_edit', 'args': 'object.pk', 'famfam': 'xhtml', 'permissions': [PERMISSION_METADATA_TYPE_EDIT]} setup_metadata_type_edit = Link(text=_(u'edit'), view='setup_metadata_type_edit', args='object.pk', sprite='xhtml', permissions=[PERMISSION_METADATA_TYPE_EDIT])
setup_metadata_type_delete = {'text': _(u'delete'), 'view': 'setup_metadata_type_delete', 'args': 'object.pk', 'famfam': 'xhtml_delete', 'permissions': [PERMISSION_METADATA_TYPE_DELETE]} setup_metadata_type_delete = Link(text=_(u'delete'), view='setup_metadata_type_delete', args='object.pk', sprite='xhtml_delete', permissions=[PERMISSION_METADATA_TYPE_DELETE])
setup_metadata_type_create = {'text': _(u'create new'), 'view': 'setup_metadata_type_create', 'famfam': 'xhtml_add', 'permissions': [PERMISSION_METADATA_TYPE_CREATE]} setup_metadata_type_create = Link(text=_(u'create new'), view='setup_metadata_type_create', sprite='xhtml_add', permissions=[PERMISSION_METADATA_TYPE_CREATE])
setup_metadata_set_list = {'text': _(u'metadata sets'), 'view': 'setup_metadata_set_list', 'famfam': 'table', 'icon': 'table.png', 'permissions': [PERMISSION_METADATA_SET_VIEW], 'children_view_regex': [r'setup_metadata_set']} setup_metadata_set_list = Link(text=_(u'metadata sets'), view='setup_metadata_set_list', sprite='table', icon='table.png', permissions=[PERMISSION_METADATA_SET_VIEW])#, children_view_regex=[r'setup_metadata_set'])
setup_metadata_set_edit = {'text': _(u'edit'), 'view': 'setup_metadata_set_edit', 'args': 'object.pk', 'famfam': 'table_edit', 'permissions': [PERMISSION_METADATA_SET_EDIT]} setup_metadata_set_edit = Link(text=_(u'edit'), view='setup_metadata_set_edit', args='object.pk', sprite='table_edit', permissions=[PERMISSION_METADATA_SET_EDIT])
setup_metadata_set_delete = {'text': _(u'delete'), 'view': 'setup_metadata_set_delete', 'args': 'object.pk', 'famfam': 'table_delete', 'permissions': [PERMISSION_METADATA_SET_DELETE]} setup_metadata_set_delete = Link(text=_(u'delete'), view='setup_metadata_set_delete', args='object.pk', sprite='table_delete', permissions=[PERMISSION_METADATA_SET_DELETE])
setup_metadata_set_create = {'text': _(u'create new'), 'view': 'setup_metadata_set_create', 'famfam': 'table_add', 'permissions': [PERMISSION_METADATA_SET_CREATE]} setup_metadata_set_create = Link(text=_(u'create new'), view='setup_metadata_set_create', sprite='table_add', permissions=[PERMISSION_METADATA_SET_CREATE])
setup_document_type_metadata = {'text': _(u'default metadata'), 'view': 'setup_document_type_metadata', 'args': 'document_type.pk', 'famfam': 'xhtml', 'permissions': [PERMISSION_DOCUMENT_TYPE_EDIT]} setup_document_type_metadata = Link(text=_(u'default metadata'), view='setup_document_type_metadata', args='document_type.pk', sprite='xhtml', permissions=[PERMISSION_DOCUMENT_TYPE_EDIT])
register_links(['metadata_add', 'metadata_edit', 'metadata_remove', 'metadata_view'], [metadata_add, metadata_edit, metadata_remove], menu_name='sidebar') bind_links(['metadata_add', 'metadata_edit', 'metadata_remove', 'metadata_view'], [metadata_add, metadata_edit, metadata_remove], menu_name='sidebar')
register_links(Document, [metadata_view], menu_name='form_header') bind_links([Document], [metadata_view], menu_name='form_header')
register_multi_item_links(['document_find_duplicates', 'folder_view', 'index_instance_list', 'document_type_document_list', 'search', 'results', 'document_group_view', 'document_list', 'document_list_recent'], [metadata_multiple_add, metadata_multiple_edit, metadata_multiple_remove]) register_multi_item_links(['document_find_duplicates', 'folder_view', 'index_instance_list', 'document_type_document_list', 'search', 'results', 'document_group_view', 'document_list', 'document_list_recent'], [metadata_multiple_add, metadata_multiple_edit, metadata_multiple_remove])
register_links(MetadataType, [setup_metadata_type_edit, setup_metadata_type_delete]) bind_links([MetadataType], [setup_metadata_type_edit, setup_metadata_type_delete])
register_links([MetadataType, 'setup_metadata_type_list', 'setup_metadata_type_create'], [setup_metadata_type_list, setup_metadata_type_create], menu_name='secondary_menu') bind_links([MetadataType, 'setup_metadata_type_list', 'setup_metadata_type_create'], [setup_metadata_type_list, setup_metadata_type_create], menu_name='secondary_menu')
register_links(MetadataSet, [setup_metadata_set_edit, setup_metadata_set_delete]) bind_links([MetadataSet], [setup_metadata_set_edit, setup_metadata_set_delete])
register_links([MetadataSet, 'setup_metadata_set_list', 'setup_metadata_set_create'], [setup_metadata_set_list, setup_metadata_set_create], menu_name='secondary_menu') bind_links([MetadataSet, 'setup_metadata_set_list', 'setup_metadata_set_create'], [setup_metadata_set_list, setup_metadata_set_create], menu_name='secondary_menu')
register_links(DocumentType, [setup_document_type_metadata]) bind_links([DocumentType], [setup_document_type_metadata])
metadata_type_setup_views = ['setup_metadata_type_list', 'setup_metadata_type_edit', 'setup_metadata_type_delete', 'setup_metadata_type_create'] metadata_type_setup_views = ['setup_metadata_type_list', 'setup_metadata_type_edit', 'setup_metadata_type_delete', 'setup_metadata_type_create']
metadata_set_setup_views = ['setup_metadata_set_list', 'setup_metadata_set_edit', 'setup_metadata_set_delete', 'setup_metadata_set_create'] metadata_set_setup_views = ['setup_metadata_set_list', 'setup_metadata_set_edit', 'setup_metadata_set_delete', 'setup_metadata_set_create']

View File

@@ -1,9 +1,146 @@
from __future__ import absolute_import
from django.template import (TemplateSyntaxError, Library,
VariableDoesNotExist, Node, Variable)
from common.utils import urlquote
from .utils import (resolve_to_name, resolve_arguments,
resolve_template_variable, get_navigation_objects)
object_navigation = {} object_navigation = {}
multi_object_navigation = {} multi_object_navigation = {}
model_list_columns = {} model_list_columns = {}
sidebar_templates = {} sidebar_templates = {}
top_menu_entries = [] top_menu_entries = []
link_binding = {}
class ResolvedLink(object):
active = False
class Link(object):
def __init__(self, text, view, args=None, kwargs=None, sprite=None, icon=None, permissions=None, condition=None):
self.text = text
self.view = view
self.args = args or []
self.kwargs = kwargs or {}
self.sprite = sprite
self.icon = icon
self.permissions = permissions or []
self.condition = condition
def resolve(self, context):
request = Variable('request').resolve(context)
current_path = request.META['PATH_INFO']
current_view = resolve_to_name(current_path)
# Preserve unicode data in URL query
previous_path = smart_unicode(urllib.unquote_plus(smart_str(request.get_full_path()) or smart_str(request.META.get('HTTP_REFERER', u'/'))))
query_string = urlparse.urlparse(previous_path).query
parsed_query_string = urlparse.parse_qs(query_string)
# Check to see if link has conditional display
if self.condition:
condition_result = self.condition(context)
else:
condition_result = True
if condition_result:
#new_link = {}#copy.copy(link)
resolved_link = ResolvedLink()
try:
args, kwargs = resolve_arguments(context, link.get('args', {}))
except VariableDoesNotExist:
args = []
kwargs = {}
if 'view' in link:
if not link.get('dont_mark_active', False):
#new_link['active'] = link['view'] == current_view
resolved_link.active = link['view'] == current_view
try:
if kwargs:
#new_link['url'] = reverse(link['view'], kwargs=kwargs)
resolved_link.url = reverse(link['view'], kwargs=kwargs)
else:
# new_link['url'] = reverse(link['view'], args=args)
resolved_link.url = reverse(link['view'], args=args)
if link.get('keep_query', False):
#print 'parsed_query_string', parsed_query_string
#new_link['url'] = urlquote(new_link['url'], parsed_query_string)
resolved_link.url = urlquote(new_link['url'], parsed_query_string)
except NoReverseMatch, exc:
#new_link['url'] = '#'
resolved_link.url = '#'
#new_link['error'] = err
resolved_link.error = exc
elif 'url' in link:
if not link.get('dont_mark_active', False):
#new_link['active'] = link['url'] == current_path
resolved_link.url.active = link['url'] == current_path
if kwargs:
#new_link['url'] = link['url'] % kwargs
resolved_link.url = link['url'] % kwargs
else:
#new_link['url'] = link['url'] % args
resolved_link.url = link['url'] % args
if link.get('keep_query', False):
#new_link['url'] = urlquote(new_link['url'], parsed_query_string)
resolved_link.url = urlquote(new_link['url'], parsed_query_string)
else:
#new_link['active'] = False
resolved_link.active = False
if 'conditional_highlight' in link:
#new_link['active'] = link['conditional_highlight'](context)
resolved_link.active = link['conditional_highlight'](context)
if 'conditional_disable' in link:
#new_link['disabled'] = link['conditional_disable'](context)
resolved_link.disabled = link['conditional_disable'](context)
else:
#new_link['disabled'] = False
resolved_link.disabled = False
if current_view in link.get('children_views', []):
#new_link['active'] = True
resolved_link.active = True
#for child_url_regex in link.get('children_url_regex', []):
# if re.compile(child_url_regex).match(current_path.lstrip('/')):
# #new_link['active'] = True
# resolved_link.active = True
#for children_view_regex in link.get('children_view_regex', []):
# if re.compile(children_view_regex).match(current_view):
# #new_link['active'] = True
# resolved_link.active = True
for cls in link.get('children_classes', []):
object_list = get_navigation_objects(context)
if object_list:
if type(object_list[0]['object']) == cls or object_list[0]['object'] == cls:
#new_link['active'] = True
resolved_link.active = True
return resolved_link
#context_links.append(new_link)
def bind_links(sources, links, menu_name=None):
"""
Associate a link to a model, a view, or an url
"""
link_binding.setdefault(menu_name, {})
for source in sources:
link_binding[menu_name].setdefault(source, {'links': []})
link_binding[menu_name][source]['links'].extend(links)
def register_multi_item_links(src, links, menu_name=None): def register_multi_item_links(src, links, menu_name=None):
""" """
@@ -21,29 +158,6 @@ def register_multi_item_links(src, links, menu_name=None):
multi_object_navigation[menu_name][src]['links'].extend(links) multi_object_navigation[menu_name][src]['links'].extend(links)
def register_links(src, links, menu_name=None, position=None):
"""
Associate a link to a model a view, or an url
"""
object_navigation.setdefault(menu_name, {})
if hasattr(src, '__iter__'):
for one_src in src:
object_navigation[menu_name].setdefault(one_src, {'links': []})
if position is not None:
for link in reversed(links):
object_navigation[menu_name][one_src]['links'].insert(position, link)
else:
object_navigation[menu_name][one_src]['links'].extend(links)
else:
object_navigation[menu_name].setdefault(src, {'links': []})
if position is not None:
for link in reversed(links):
object_navigation[menu_name][src]['links'].insert(position, link)
else:
object_navigation[menu_name][src]['links'].extend(links)
def register_top_menu(name, link, children_views=None, def register_top_menu(name, link, children_views=None,
children_path_regex=None, children_view_regex=None, children_path_regex=None, children_view_regex=None,
position=None): position=None):
@@ -91,3 +205,56 @@ def register_sidebar_template(source_list, template_name):
for source in source_list: for source in source_list:
sidebar_templates.setdefault(source, []) sidebar_templates.setdefault(source, [])
sidebar_templates[source].append(template_name) sidebar_templates[source].append(template_name)
def get_object_navigation_links(context, menu_name=None, links_dict=object_navigation):
request = Variable('request').resolve(context)
current_path = request.META['PATH_INFO']
current_view = resolve_to_name(current_path)
context_links = []
# Don't fudge with the original global dictionary
links_dict = links_dict.copy()
# Preserve unicode data in URL query
previous_path = smart_unicode(urllib.unquote_plus(smart_str(request.get_full_path()) or smart_str(request.META.get('HTTP_REFERER', u'/'))))
query_string = urlparse.urlparse(previous_path).query
parsed_query_string = urlparse.parse_qs(query_string)
try:
"""
Override the navigation links dictionary with the provided
link list
"""
navigation_object_links = Variable('overrided_object_links').resolve(context)
if navigation_object_links:
return [link for link in resolve_links(context, navigation_object_links, current_view, current_path, parsed_query_string)]
except VariableDoesNotExist:
pass
try:
"""
Check for and inject a temporary navigation dictionary
"""
temp_navigation_links = Variable('temporary_navigation_links').resolve(context)
if temp_navigation_links:
links_dict.update(temp_navigation_links)
except VariableDoesNotExist:
pass
try:
links = links_dict[menu_name][current_view]['links']
for link in resolve_links(context, links, current_view, current_path, parsed_query_string):
context_links.append(link)
except KeyError:
pass
for resolved_object in get_navigation_objects(context):
try:
links = links_dict[menu_name][type(resolved_object['object'])]['links']
for link in resolve_links(context, links, current_view, current_path, parsed_query_string):
context_links.append(link)
except KeyError:
pass
return context_links

View File

@@ -4,11 +4,11 @@ import copy
import re import re
import urlparse import urlparse
import urllib import urllib
import logging
from django.core.urlresolvers import reverse, NoReverseMatch from django.core.urlresolvers import reverse, NoReverseMatch
from django.template import (TemplateSyntaxError, Library, from django.template import (TemplateSyntaxError, Library,
VariableDoesNotExist, Node, Variable) VariableDoesNotExist, Node, Variable)
from django.utils.text import unescape_string_literal
from django.utils.translation import ugettext as _ from django.utils.translation import ugettext as _
from django.utils.encoding import smart_str, force_unicode, smart_unicode from django.utils.encoding import smart_str, force_unicode, smart_unicode
@@ -17,9 +17,11 @@ from common.utils import urlquote
from ..api import (object_navigation, multi_object_navigation, from ..api import (object_navigation, multi_object_navigation,
top_menu_entries, sidebar_templates) top_menu_entries, sidebar_templates)
from ..forms import MultiItemForm from ..forms import MultiItemForm
from ..utils import resolve_to_name from ..utils import (resolve_to_name, resolve_arguments, resolve_template_variable,
get_navigation_objects, get_object_navigation_links)
register = Library() register = Library()
logger = logging.getLogger(__name__)
class TopMenuNavigationNode(Node): class TopMenuNavigationNode(Node):
@@ -51,28 +53,7 @@ class TopMenuNavigationNode(Node):
def get_top_menu_links(parser, token): def get_top_menu_links(parser, token):
return TopMenuNavigationNode() return TopMenuNavigationNode()
"""
def resolve_arguments(context, src_args):
args = []
kwargs = {}
if type(src_args) == type([]):
for i in src_args:
val = resolve_template_variable(context, i)
if val:
args.append(val)
elif type(src_args) == type({}):
for key, value in src_args.items():
val = resolve_template_variable(context, value)
if val:
kwargs[key] = val
else:
val = resolve_template_variable(context, src_args)
if val:
args.append(val)
return args, kwargs
def resolve_links(context, links, current_view, current_path, parsed_query_string=None): def resolve_links(context, links, current_view, current_path, parsed_query_string=None):
""" """
Express a list of links from definition to final values Express a list of links from definition to final values
@@ -141,92 +122,14 @@ def resolve_links(context, links, current_view, current_path, parsed_query_strin
new_link['active'] = True new_link['active'] = True
for cls in link.get('children_classes', []): for cls in link.get('children_classes', []):
obj, object_name = get_navigation_object(context) object_list = get_navigation_objects(context)
if type(obj) == cls or obj == cls: if object_list:
if type(object_list[0]['object']) == cls or object_list[0]['object'] == cls:
new_link['active'] = True new_link['active'] = True
context_links.append(new_link) context_links.append(new_link)
return context_links return context_links
def get_navigation_object(context):
try:
object_name = Variable('navigation_object_name').resolve(context)
except VariableDoesNotExist:
object_name = 'object'
try:
obj = Variable(object_name).resolve(context)
except VariableDoesNotExist:
obj = None
return obj, object_name
def _get_object_navigation_links(context, menu_name=None, links_dict=object_navigation):
request = Variable('request').resolve(context)
current_path = request.META['PATH_INFO']
current_view = resolve_to_name(current_path)
context_links = []
# Don't fudge with the original global dictionary
links_dict = links_dict.copy()
# Preserve unicode data in URL query
previous_path = smart_unicode(urllib.unquote_plus(smart_str(request.get_full_path()) or smart_str(request.META.get('HTTP_REFERER', u'/'))))
query_string = urlparse.urlparse(previous_path).query
parsed_query_string = urlparse.parse_qs(query_string)
try:
""" """
Override the navigation links dictionary with the provided
link list
"""
navigation_object_links = Variable('overrided_object_links').resolve(context)
if navigation_object_links:
return [link for link in resolve_links(context, navigation_object_links, current_view, current_path, parsed_query_string)]
except VariableDoesNotExist:
pass
try:
"""
Check for and inject a temporary navigation dictionary
"""
temp_navigation_links = Variable('temporary_navigation_links').resolve(context)
if temp_navigation_links:
links_dict.update(temp_navigation_links)
except VariableDoesNotExist:
pass
try:
links = links_dict[menu_name][current_view]['links']
for link in resolve_links(context, links, current_view, current_path, parsed_query_string):
context_links.append(link)
except KeyError:
pass
obj, object_name = get_navigation_object(context)
try:
links = links_dict[menu_name][type(obj)]['links']
for link in resolve_links(context, links, current_view, current_path, parsed_query_string):
context_links.append(link)
except KeyError:
pass
return context_links
def resolve_template_variable(context, name):
try:
return unescape_string_literal(name)
except ValueError:
#return Variable(name).resolve(context)
#TODO: Research if should return always as a str
return str(Variable(name).resolve(context))
except TypeError:
return name
class GetNavigationLinks(Node): class GetNavigationLinks(Node):
def __init__(self, menu_name=None, links_dict=object_navigation, var_name='object_navigation_links'): def __init__(self, menu_name=None, links_dict=object_navigation, var_name='object_navigation_links'):
@@ -236,9 +139,10 @@ class GetNavigationLinks(Node):
def render(self, context): def render(self, context):
menu_name = resolve_template_variable(context, self.menu_name) menu_name = resolve_template_variable(context, self.menu_name)
context[self.var_name] = _get_object_navigation_links(context, menu_name, links_dict=self.links_dict) context[self.var_name] = get_object_navigation_links(context, menu_name, links_dict=self.links_dict)
obj, object_name = get_navigation_object(context) object_list = get_navigation_objects(context)
context['navigation_object'] = obj if object_list:
context['navigation_object'] = object_list[0]['object']
return '' return ''

View File

@@ -1,11 +1,89 @@
#http://www.djangosnippets.org/snippets/1378/ from __future__ import absolute_import
from django.core.urlresolvers import RegexURLResolver, RegexURLPattern, Resolver404, get_resolver from django.core.urlresolvers import RegexURLResolver, RegexURLPattern, Resolver404, get_resolver
from django.template import (TemplateSyntaxError, Library,
VariableDoesNotExist, Node, Variable)
from django.utils.text import unescape_string_literal
__all__ = ('resolve_to_name',) #__all__ = ('resolve_to_name',)
def get_navigation_objects(context):
object_list = []
# Try a simple 'object' search first, for lists templates
try:
resolved_object = Variable('object').resolve(context)
except VariableDoesNotExist:
try:
object_name_list = Variable('navigation_object_list').resolve(context)
except VariableDoesNotExist:
try:
object_name_list = [{'object': Variable('navigation_object_name').resolve(context)}]
except VariableDoesNotExist:
#try:
# object_name_list = [{'object': Variable('list_object_variable_name').resolve(context)}]
#except VariableDoesNotExist:
return []
#object_name_list = [{'object': 'object'}]
#logger.debug('none found, falling back to "object"')
#else:
# logger.debug('found: list_object_variable_name')
else:
logger.debug('found: navigation_object_name')
else:
logger.debug('found: navigation_object_list')
else:
logger.debug('found single object')
return [{'object': resolved_object}]#, 'object_name': 'object'}]
logger.debug('object_name_list: %s' % object_name_list)
for object_name in object_name_list:
try:
resolved_object = Variable(object_name['object']).resolve(context)
except VariableDoesNotExist:
resolved_object = None
object_list.append({'object': resolved_object})#, 'object_name': 'qwe'})
logger.debug('object_list: %s' % object_list)
return object_list
def resolve_template_variable(context, name):
try:
return unescape_string_literal(name)
except ValueError:
#return Variable(name).resolve(context)
#TODO: Research if should return always as a str
return str(Variable(name).resolve(context))
except TypeError:
return name
def resolve_arguments(context, src_args):
args = []
kwargs = {}
if type(src_args) == type([]):
for i in src_args:
val = resolve_template_variable(context, i)
if val:
args.append(val)
elif type(src_args) == type({}):
for key, value in src_args.items():
val = resolve_template_variable(context, value)
if val:
kwargs[key] = val
else:
val = resolve_template_variable(context, src_args)
if val:
args.append(val)
return args, kwargs
#http://www.djangosnippets.org/snippets/1378/
def _pattern_resolve_to_name(self, path): def _pattern_resolve_to_name(self, path):
match = self.regex.search(path) match = self.regex.search(path)
if match: if match:
@@ -40,6 +118,5 @@ def _resolver_resolve_to_name(self, path):
RegexURLPattern.resolve_to_name = _pattern_resolve_to_name RegexURLPattern.resolve_to_name = _pattern_resolve_to_name
RegexURLResolver.resolve_to_name = _resolver_resolve_to_name RegexURLResolver.resolve_to_name = _resolver_resolve_to_name
def resolve_to_name(path, urlconf=None): def resolve_to_name(path, urlconf=None):
return get_resolver(urlconf).resolve_to_name(path) return get_resolver(urlconf).resolve_to_name(path)

View File

@@ -9,7 +9,7 @@ from django.db.models.signals import post_save, post_syncdb
from django.dispatch import receiver from django.dispatch import receiver
from django.db.utils import DatabaseError from django.db.utils import DatabaseError
from navigation.api import register_links, register_multi_item_links from navigation.api import bind_links, register_multi_item_links
from documents.models import Document, DocumentVersion from documents.models import Document, DocumentVersion
from main.api import register_maintenance_links from main.api import register_maintenance_links
from project_tools.api import register_tool from project_tools.api import register_tool
@@ -49,16 +49,16 @@ setup_queue_transformation_create = {'text': _(u'add transformation'), 'view': '
setup_queue_transformation_edit = {'text': _(u'edit'), 'view': 'setup_queue_transformation_edit', 'args': 'transformation.pk', 'famfam': 'shape_square_edit'} setup_queue_transformation_edit = {'text': _(u'edit'), 'view': 'setup_queue_transformation_edit', 'args': 'transformation.pk', 'famfam': 'shape_square_edit'}
setup_queue_transformation_delete = {'text': _(u'delete'), 'view': 'setup_queue_transformation_delete', 'args': 'transformation.pk', 'famfam': 'shape_square_delete'} setup_queue_transformation_delete = {'text': _(u'delete'), 'view': 'setup_queue_transformation_delete', 'args': 'transformation.pk', 'famfam': 'shape_square_delete'}
register_links(Document, [submit_document]) bind_links(Document, [submit_document])
register_multi_item_links(['document_find_duplicates', 'folder_view', 'index_instance_list', 'document_type_document_list', 'search', 'results', 'document_group_view', 'document_list', 'document_list_recent'], [submit_document_multiple]) register_multi_item_links(['document_find_duplicates', 'folder_view', 'index_instance_list', 'document_type_document_list', 'search', 'results', 'document_group_view', 'document_list', 'document_list_recent'], [submit_document_multiple])
register_links(DocumentQueue, [document_queue_disable, document_queue_enable, setup_queue_transformation_list]) bind_links(DocumentQueue, [document_queue_disable, document_queue_enable, setup_queue_transformation_list])
register_links(QueueTransformation, [setup_queue_transformation_edit, setup_queue_transformation_delete]) bind_links(QueueTransformation, [setup_queue_transformation_edit, setup_queue_transformation_delete])
register_multi_item_links(['queue_document_list'], [re_queue_multiple_document, queue_document_multiple_delete]) register_multi_item_links(['queue_document_list'], [re_queue_multiple_document, queue_document_multiple_delete])
register_links(['setup_queue_transformation_create', 'setup_queue_transformation_edit', 'setup_queue_transformation_delete', 'document_queue_disable', 'document_queue_enable', 'queue_document_list', 'setup_queue_transformation_list'], [queue_document_list], menu_name='secondary_menu') bind_links(['setup_queue_transformation_create', 'setup_queue_transformation_edit', 'setup_queue_transformation_delete', 'document_queue_disable', 'document_queue_enable', 'queue_document_list', 'setup_queue_transformation_list'], [queue_document_list], menu_name='secondary_menu')
register_links(['setup_queue_transformation_edit', 'setup_queue_transformation_delete', 'setup_queue_transformation_list', 'setup_queue_transformation_create'], [setup_queue_transformation_create], menu_name='sidebar') bind_links(['setup_queue_transformation_edit', 'setup_queue_transformation_delete', 'setup_queue_transformation_list', 'setup_queue_transformation_create'], [setup_queue_transformation_create], menu_name='sidebar')
register_maintenance_links([all_document_ocr_cleanup], namespace='ocr', title=_(u'OCR')) register_maintenance_links([all_document_ocr_cleanup], namespace='ocr', title=_(u'OCR'))

View File

@@ -5,7 +5,7 @@ from django.db.models.signals import post_save
from django.core.exceptions import ObjectDoesNotExist from django.core.exceptions import ObjectDoesNotExist
from django.utils.translation import ugettext_lazy as _ from django.utils.translation import ugettext_lazy as _
from navigation.api import register_links, register_multi_item_links from navigation.api import bind_links, register_multi_item_links, Link
from project_setup.api import register_setup from project_setup.api import register_setup
from .conf.settings import DEFAULT_ROLES from .conf.settings import DEFAULT_ROLES
@@ -14,20 +14,21 @@ from .permissions import (PERMISSION_ROLE_VIEW, PERMISSION_ROLE_EDIT,
PERMISSION_ROLE_CREATE, PERMISSION_ROLE_DELETE, PERMISSION_ROLE_CREATE, PERMISSION_ROLE_DELETE,
PERMISSION_PERMISSION_GRANT, PERMISSION_PERMISSION_REVOKE) 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_list = Link(text=_(u'roles'), view='role_list', sprite='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_create = Link(text=_(u'create new role'), view='role_create', sprite='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_edit = Link(text=_(u'edit'), view='role_edit', args='object.id', sprite='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_members = Link(text=_(u'members'), view='role_members', args='object.id', sprite='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_permissions = Link(text=_(u'role permissions'), view='role_permissions', args='object.id', sprite='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_delete = Link(text=_(u'delete'), view='role_delete', args='object.id', sprite='medal_gold_delete', permissions=[PERMISSION_ROLE_DELETE])
permission_grant = {'text': _(u'grant'), 'view': 'permission_multiple_grant', 'famfam': 'key_add', 'permissions': [PERMISSION_PERMISSION_GRANT]} permission_grant = Link(text=_(u'grant'), view='permission_multiple_grant', sprite='key_add', permissions=[PERMISSION_PERMISSION_GRANT])
permission_revoke = {'text': _(u'revoke'), 'view': 'permission_multiple_revoke', 'famfam': 'key_delete', 'permissions': [PERMISSION_PERMISSION_REVOKE]} permission_revoke = Link(text=_(u'revoke'), view='permission_multiple_revoke', sprite='key_delete', permissions=[PERMISSION_PERMISSION_REVOKE])
register_links(Role, [role_edit, role_delete, role_permissions, role_members]) bind_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') bind_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_multi_item_links(['role_permissions'], [permission_grant, permission_revoke])
# TODO: eliminate this
permission_views = ['role_list', 'role_create', 'role_edit', 'role_members', 'role_permissions', 'role_delete'] permission_views = ['role_list', 'role_create', 'role_edit', 'role_members', 'role_permissions', 'role_delete']

View File

@@ -9,5 +9,5 @@ def register_setup(link):
setup_items.append(link) setup_items.append(link)
# Append the link's children_view_regex to the setup main menu children view regex # Append the link's children_view_regex to the setup main menu children view regex
setup_link.setdefault('children_view_regex', []) #setup_link.setdefault('children_view_regex', [])
setup_link['children_view_regex'].extend(link.get('children_view_regex', [])) #setup_link['children_view_regex'].extend(link.get('children_view_regex', []))

View File

@@ -2,7 +2,7 @@ from __future__ import absolute_import
from django.utils.translation import ugettext_lazy as _ from django.utils.translation import ugettext_lazy as _
from navigation.api import (register_links, from navigation.api import (bind_links,
register_model_list_columns) register_model_list_columns)
from common.utils import encapsulate from common.utils import encapsulate
from project_setup.api import register_setup from project_setup.api import register_setup
@@ -44,34 +44,34 @@ source_list = {'text': _(u'Document sources'), 'view': 'setup_web_form_list', 'f
upload_version = {'text': _(u'upload new version'), 'view': 'upload_version', 'args': 'object.pk', 'famfam': 'page_add', 'permissions': [PERMISSION_DOCUMENT_NEW_VERSION]} upload_version = {'text': _(u'upload new version'), 'view': 'upload_version', 'args': 'object.pk', 'famfam': 'page_add', 'permissions': [PERMISSION_DOCUMENT_NEW_VERSION]}
register_links(StagingFile, [staging_file_delete]) bind_links(StagingFile, [staging_file_delete])
register_links(SourceTransformation, [setup_source_transformation_edit, setup_source_transformation_delete]) bind_links(SourceTransformation, [setup_source_transformation_edit, setup_source_transformation_delete])
register_links(['setup_imap_email_list', 'setup_pop3_email_list', 'setup_web_form_list', 'setup_staging_folder_list', 'setup_watch_folder_list', 'setup_source_create'], [setup_web_form_list, setup_staging_folder_list, setup_pop3_email_list, setup_imap_email_list], menu_name='form_header') bind_links(['setup_imap_email_list', 'setup_pop3_email_list', 'setup_web_form_list', 'setup_staging_folder_list', 'setup_watch_folder_list', 'setup_source_create'], [setup_web_form_list, setup_staging_folder_list, setup_pop3_email_list, setup_imap_email_list], menu_name='form_header')
register_links([WebForm, StagingFolder, POP3Email, IMAPEmail, 'setup_web_form_list', 'setup_staging_folder_list', 'setup_watch_folder_list', 'setup_source_create', 'setup_pop3_email_list', 'setup_imap_email_list'], [setup_source_create], menu_name='secondary_menu') bind_links([WebForm, StagingFolder, POP3Email, IMAPEmail, 'setup_web_form_list', 'setup_staging_folder_list', 'setup_watch_folder_list', 'setup_source_create', 'setup_pop3_email_list', 'setup_imap_email_list'], [setup_source_create], menu_name='secondary_menu')
register_links(WebForm, [setup_web_form_list, setup_staging_folder_list, setup_pop3_email_list, setup_imap_email_list], menu_name='form_header') bind_links(WebForm, [setup_web_form_list, setup_staging_folder_list, setup_pop3_email_list, setup_imap_email_list], menu_name='form_header')
register_links(WebForm, [setup_source_transformation_list, setup_source_edit, setup_source_delete]) bind_links(WebForm, [setup_source_transformation_list, setup_source_edit, setup_source_delete])
register_links(StagingFolder, [setup_web_form_list, setup_staging_folder_list, setup_pop3_email_list, setup_imap_email_list], menu_name='form_header') bind_links(StagingFolder, [setup_web_form_list, setup_staging_folder_list, setup_pop3_email_list, setup_imap_email_list], menu_name='form_header')
register_links(StagingFolder, [setup_source_transformation_list, setup_source_edit, setup_source_delete]) bind_links(StagingFolder, [setup_source_transformation_list, setup_source_edit, setup_source_delete])
register_links(POP3Email, [setup_web_form_list, setup_staging_folder_list, setup_pop3_email_list, setup_imap_email_list], menu_name='form_header') bind_links(POP3Email, [setup_web_form_list, setup_staging_folder_list, setup_pop3_email_list, setup_imap_email_list], menu_name='form_header')
register_links(POP3Email, [setup_source_transformation_list, setup_source_edit, setup_source_delete]) bind_links(POP3Email, [setup_source_transformation_list, setup_source_edit, setup_source_delete])
register_links(POP3Email, [setup_source_log_list]) bind_links(POP3Email, [setup_source_log_list])
register_links(IMAPEmail, [setup_web_form_list, setup_staging_folder_list, setup_pop3_email_list, setup_imap_email_list], menu_name='form_header') bind_links(IMAPEmail, [setup_web_form_list, setup_staging_folder_list, setup_pop3_email_list, setup_imap_email_list], menu_name='form_header')
register_links(IMAPEmail, [setup_source_transformation_list, setup_source_edit, setup_source_delete]) bind_links(IMAPEmail, [setup_source_transformation_list, setup_source_edit, setup_source_delete])
register_links(IMAPEmail, [setup_source_log_list]) bind_links(IMAPEmail, [setup_source_log_list])
register_links(WatchFolder, [setup_web_form_list, setup_staging_folder_list, setup_watch_folder_list, setup_imap_email_list], menu_name='form_header') bind_links(WatchFolder, [setup_web_form_list, setup_staging_folder_list, setup_watch_folder_list, setup_imap_email_list], menu_name='form_header')
register_links(WatchFolder, [setup_source_transformation_list, setup_source_edit, setup_source_delete]) bind_links(WatchFolder, [setup_source_transformation_list, setup_source_edit, setup_source_delete])
# Document version # Document version
register_links(['document_version_list', 'upload_version', 'document_version_revert'], [upload_version], menu_name='sidebar') bind_links(['document_version_list', 'upload_version', 'document_version_revert'], [upload_version], menu_name='sidebar')
register_links(['setup_source_transformation_create', 'setup_source_transformation_edit', 'setup_source_transformation_delete', 'setup_source_transformation_list'], [setup_source_transformation_create], menu_name='sidebar') bind_links(['setup_source_transformation_create', 'setup_source_transformation_edit', 'setup_source_transformation_delete', 'setup_source_transformation_list'], [setup_source_transformation_create], menu_name='sidebar')
source_views = ['setup_web_form_list', 'setup_staging_folder_list', 'setup_watch_folder_list', 'setup_source_edit', 'setup_source_delete', 'setup_source_create', 'setup_source_transformation_list', 'setup_source_transformation_edit', 'setup_source_transformation_delete', 'setup_source_transformation_create'] source_views = ['setup_web_form_list', 'setup_staging_folder_list', 'setup_watch_folder_list', 'setup_source_edit', 'setup_source_delete', 'setup_source_create', 'setup_source_transformation_list', 'setup_source_transformation_edit', 'setup_source_transformation_delete', 'setup_source_transformation_create']

View File

@@ -2,7 +2,7 @@ from __future__ import absolute_import
from django.utils.translation import ugettext_lazy as _ from django.utils.translation import ugettext_lazy as _
from navigation.api import (register_links, register_top_menu, from navigation.api import (bind_links, register_top_menu,
register_model_list_columns, register_multi_item_links) register_model_list_columns, register_multi_item_links)
from common.utils import encapsulate from common.utils import encapsulate
from documents.models import Document from documents.models import Document
@@ -46,13 +46,13 @@ register_model_list_columns(Document, [
}, },
]) ])
register_links(Tag, [tag_tagged_item_list, tag_edit, tag_delete, tag_acl_list]) bind_links(Tag, [tag_tagged_item_list, tag_edit, tag_delete, tag_acl_list])
register_multi_item_links(['tag_list'], [tag_multiple_delete]) register_multi_item_links(['tag_list'], [tag_multiple_delete])
register_links([Tag, 'tag_list', 'tag_create'], [tag_list, tag_create], menu_name='secondary_menu') bind_links([Tag, 'tag_list', 'tag_create'], [tag_list, tag_create], menu_name='secondary_menu')
register_top_menu('tags', link={'text': _(u'tags'), 'view': 'tag_list', 'famfam': 'tag_blue'}, children_view_regex=[r'^tag_(list|create|delete|edit|tagged|acl)']) register_top_menu('tags', link={'text': _(u'tags'), 'view': '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') bind_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') bind_links(['document_tags', 'tag_remove', 'tag_multiple_remove', 'tag_attach'], [tag_attach], menu_name='sidebar')
register_multi_item_links(['document_tags'], [tag_document_remove_multiple]) register_multi_item_links(['document_tags'], [tag_document_remove_multiple])
class_permissions(Document, [ class_permissions(Document, [

View File

@@ -3,7 +3,7 @@ from __future__ import absolute_import
from django.utils.translation import ugettext_lazy as _ from django.utils.translation import ugettext_lazy as _
from django.contrib.auth.models import User, Group from django.contrib.auth.models import User, Group
from navigation.api import register_links, register_multi_item_links from navigation.api import bind_links, register_multi_item_links
from project_setup.api import register_setup from project_setup.api import register_setup
from .permissions import (PERMISSION_USER_CREATE, PERMISSION_USER_EDIT, from .permissions import (PERMISSION_USER_CREATE, PERMISSION_USER_EDIT,
@@ -27,12 +27,12 @@ group_delete = {u'text': _('delete'), 'view': 'group_delete', 'args': 'object.id
group_multiple_delete = {u'text': _('delete'), 'view': 'group_multiple_delete', '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_members = {'text': _(u'members'), 'view': 'group_members', 'args': 'object.id', 'famfam': 'group_link', 'permissions': [PERMISSION_GROUP_EDIT]}
register_links(User, [user_edit, user_set_password, user_delete]) bind_links([User], [user_edit, user_set_password, user_delete])
register_links(['user_multiple_set_password', 'user_set_password', 'user_multiple_delete', 'user_delete', 'user_edit', 'user_list', 'user_add'], [user_list, user_add], menu_name=u'secondary_menu') bind_links(['user_multiple_set_password', 'user_set_password', 'user_multiple_delete', 'user_delete', 'user_edit', '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_multi_item_links(['user_list'], [user_multiple_set_password, user_multiple_delete])
register_links(Group, [group_edit, group_members, group_delete]) bind_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') bind_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_multi_item_links(['group_list'], [group_multiple_delete])
user_management_views = [ user_management_views = [

View File

@@ -2,8 +2,9 @@ from __future__ import absolute_import
from django.utils.translation import ugettext_lazy as _ from django.utils.translation import ugettext_lazy as _
from navigation.api import register_links, register_multi_item_links #from navigation.api import bind_links, register_multi_item_links
from project_setup.api import register_setup from project_setup.api import register_setup
from navigation.api import Link, bind_links
from .permissions import (PERMISSION_WORKFLOW_SETUP_VIEW, from .permissions import (PERMISSION_WORKFLOW_SETUP_VIEW,
PERMISSION_WORKFLOW_SETUP_CREATE, PERMISSION_WORKFLOW_SETUP_EDIT, PERMISSION_WORKFLOW_SETUP_CREATE, PERMISSION_WORKFLOW_SETUP_EDIT,
@@ -12,10 +13,10 @@ from .permissions import (PERMISSION_WORKFLOW_SETUP_VIEW,
PERMISSION_STATE_SETUP_DELETE) PERMISSION_STATE_SETUP_DELETE)
from .models import Workflow, State, Transition, WorkflowState from .models import Workflow, State, Transition, WorkflowState
setup_workflow_link = {'text': _(u'workflows'), 'view': 'setup_workflow_list', 'icon': 'chart_organisation.png', 'permissions': [PERMISSION_WORKFLOW_SETUP_VIEW]}
setup_workflow_list_link = {'text': _(u'workflow list'), 'view': 'setup_workflow_list', 'famfam': 'chart_organisation', 'permissions': [PERMISSION_WORKFLOW_SETUP_VIEW]} setup_workflow_list_link = {'text': _(u'workflow list'), 'view': 'setup_workflow_list', 'famfam': 'chart_organisation', 'permissions': [PERMISSION_WORKFLOW_SETUP_VIEW]}
setup_workflow_create_link = {'text': _(u'create new workflow'), 'view': 'setup_workflow_create', 'famfam': 'chart_organisation_add', 'permissions': [PERMISSION_WORKFLOW_SETUP_CREATE]} setup_workflow_create_link = {'text': _(u'create new workflow'), 'view': 'setup_workflow_create', 'famfam': 'chart_organisation_add', 'permissions': [PERMISSION_WORKFLOW_SETUP_CREATE]}
setup_workflow_create_link2 = Link(text=_(u'create new workflow'), view='setup_workflow_create', sprite='chart_organisation_add', permissions=[PERMISSION_WORKFLOW_SETUP_CREATE])
setup_workflow_edit_link = {'text': _(u'edit'), 'view': 'setup_workflow_edit', 'args': 'workflow.pk', 'famfam': 'chart_organisation', 'permissions': [PERMISSION_WORKFLOW_SETUP_EDIT]} setup_workflow_edit_link = {'text': _(u'edit'), 'view': 'setup_workflow_edit', 'args': 'workflow.pk', 'famfam': 'chart_organisation', 'permissions': [PERMISSION_WORKFLOW_SETUP_EDIT]}
setup_workflow_delete_link = {'text': _(u'delete'), 'view': 'setup_workflow_delete', 'args': 'workflow.pk', 'famfam': 'chart_organisation_delete', 'permissions': [PERMISSION_WORKFLOW_SETUP_DELETE]} setup_workflow_delete_link = {'text': _(u'delete'), 'view': 'setup_workflow_delete', 'args': 'workflow.pk', 'famfam': 'chart_organisation_delete', 'permissions': [PERMISSION_WORKFLOW_SETUP_DELETE]}
setup_workflow_states_list_link = {'text': _(u'states'), 'view': 'setup_workflow_states_list', 'args': 'workflow.pk', 'famfam': 'transmit_go', 'permissions': [PERMISSION_WORKFLOW_SETUP_EDIT]} setup_workflow_states_list_link = {'text': _(u'states'), 'view': 'setup_workflow_states_list', 'args': 'workflow.pk', 'famfam': 'transmit_go', 'permissions': [PERMISSION_WORKFLOW_SETUP_EDIT]}
@@ -27,15 +28,17 @@ setup_state_create_link = {'text': _(u'create new state'), 'view': 'setup_state_
setup_state_edit_link = {'text': _(u'edit'), 'view': 'setup_state_edit', 'args': 'object.pk', 'famfam': 'transmit_edit', 'permissions': [PERMISSION_STATE_SETUP_EDIT]} setup_state_edit_link = {'text': _(u'edit'), 'view': 'setup_state_edit', 'args': 'object.pk', 'famfam': 'transmit_edit', 'permissions': [PERMISSION_STATE_SETUP_EDIT]}
setup_state_delete_link = {'text': _(u'delete'), 'view': 'setup_state_delete', 'args': 'object.pk', 'famfam': 'transmit_delete', 'permissions': [PERMISSION_STATE_SETUP_DELETE]} setup_state_delete_link = {'text': _(u'delete'), 'view': 'setup_state_delete', 'args': 'object.pk', 'famfam': 'transmit_delete', 'permissions': [PERMISSION_STATE_SETUP_DELETE]}
register_links(Workflow, [setup_workflow_states_list_link, setup_workflow_edit_link, setup_workflow_delete_link]) #bind_links(Workflow, [setup_workflow_states_list_link, setup_workflow_edit_link, setup_workflow_delete_link])
register_links([Workflow, State, 'setup_workflow_list', 'setup_workflow_create', 'setup_state_list'], [setup_workflow_list_link], menu_name=u'form_header') #bind_links([Workflow, State, 'setup_workflow_list', 'setup_workflow_create', 'setup_state_list'], [setup_workflow_list_link], menu_name=u'form_header')
register_links([Workflow, 'setup_workflow_list', 'setup_workflow_create'], [setup_workflow_create_link], menu_name=u'secondary_menu') #bind_links([Workflow, 'setup_workflow_list', 'setup_workflow_create'], [setup_workflow_create_link], menu_name=u'secondary_menu')
register_links(['setup_workflow_states_list', 'setup_workflow_states_add'], [setup_workflow_states_add_link], menu_name=u'sidebar') #bind_links(['setup_workflow_states_list', 'setup_workflow_states_add'], [setup_workflow_states_add_link], menu_name=u'sidebar')
register_links(State, [setup_state_edit_link, setup_state_delete_link]) bind_links([Workflow, 'setup_workflow_list', 'setup_workflow_create'], [setup_workflow_create_link2], menu_name=u'secondary_menu')
register_links([State, Workflow, 'setup_state_list', 'setup_workflow_list', 'setup_workflow_create'], [setup_state_list_link], menu_name=u'form_header')
register_links([State, 'setup_state_list', 'setup_state_create'], [setup_state_create_link], menu_name=u'secondary_menu')
register_links([WorkflowState], [setup_workflow_states_edit_link]) #bind_links(State, [setup_state_edit_link, setup_state_delete_link])
#bind_links([State, Workflow, 'setup_state_list', 'setup_workflow_list', 'setup_workflow_create'], [setup_state_list_link], menu_name=u'form_header')
#bind_links([State, 'setup_state_list', 'setup_state_create'], [setup_state_create_link], menu_name=u'secondary_menu')
register_setup(setup_workflow_link) #bind_links([WorkflowState], [setup_workflow_states_edit_link])
register_setup({'text': _(u'workflows'), 'view': 'setup_workflow_list', 'icon': 'chart_organisation.png', 'permissions': [PERMISSION_WORKFLOW_SETUP_VIEW]})