setup_staging_folder_list, setup_watch_folder_list, setup_source_edit, setup_source_delete, setup_source_create, setup_source_transformation_list, setup_source_transformation_create, setup_source_transformation_edit, setup_source_transformation_delete, upload_version, ) from .models import WebForm, StagingFolder, SourceTransformation, WatchFolder from .urls import api_urls from .widgets import staging_file_thumbnail register_links([StagingFile], [staging_file_delete]) register_links(SourceTransformation, [setup_source_transformation_edit, setup_source_transformation_delete]) register_links( ["setup_web_form_list", "setup_staging_folder_list", "setup_watch_folder_list", "setup_source_create"], [setup_web_form_list, setup_staging_folder_list], menu_name="form_header", ) register_links(WebForm, [setup_web_form_list, setup_staging_folder_list], menu_name="form_header") register_links(WebForm, [setup_source_transformation_list, setup_source_edit, setup_source_delete]) register_links( [ "setup_web_form_list",
from __future__ import absolute_import from acls.api import class_permissions from acls.permissions import ACLS_VIEW_ACL, ACLS_EDIT_ACL from documents.models import Document from navigation.api import register_links from .links import acl_list register_links(Document, [acl_list], menu_name='form_header') class_permissions(Document, [ACLS_VIEW_ACL, ACLS_EDIT_ACL])
from .permissions import ( PERMISSION_DOCUMENT_PROPERTIES_EDIT, PERMISSION_DOCUMENT_VIEW, PERMISSION_DOCUMENT_DELETE, PERMISSION_DOCUMENT_DOWNLOAD, PERMISSION_DOCUMENT_TRANSFORM, PERMISSION_DOCUMENT_EDIT, PERMISSION_DOCUMENT_VERSION_REVERT, PERMISSION_DOCUMENT_NEW_VERSION) from .statistics import DocumentStatistics, DocumentUsageStatistics from .urls import api_urls from .widgets import document_thumbnail # History setup register_history_type(HISTORY_DOCUMENT_CREATED) register_history_type(HISTORY_DOCUMENT_EDITED) register_history_type(HISTORY_DOCUMENT_DELETED) # Register document type links register_links(DocumentType, [document_type_edit, document_type_delete, document_type_filename_list]) register_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_edit', 'document_type_delete'], [document_type_list, document_type_create], menu_name='secondary_menu') register_links([DocumentTypeFilename, 'document_type_filename_list', 'document_type_filename_create'], [document_type_filename_create], menu_name='sidebar') # Register document links register_links(Document, [document_view_simple, document_edit, document_print, document_delete, document_download, document_find_duplicates, document_clear_transformations]) register_multi_item_links(['document_find_duplicates', 'folder_view', 'index_instance_node_view', 'search', 'results', 'document_group_view', 'document_list', 'document_list_recent', 'tag_tagged_item_list'], [document_multiple_clear_transformations, document_multiple_delete, document_multiple_download]) # Document Version links register_links(DocumentVersion, [document_version_revert, document_version_download]) secondary_menu_links = [document_list_recent, document_list] register_links(['document_list_recent', 'document_list', 'document_create', 'document_create_multiple', 'upload_interactive', 'staging_file_delete'], secondary_menu_links, menu_name='secondary_menu')
from __future__ import absolute_import from django.contrib.auth.models import User from django.db.models.signals import post_save from django.core.exceptions import ObjectDoesNotExist from navigation.api import register_links, register_multi_item_links from project_setup.api import register_setup from .conf.settings import DEFAULT_ROLES from .models import Role from .links import (role_list, role_create, role_edit, role_members, role_permissions, role_delete, permission_grant, permission_revoke) register_links(Role, [role_edit, role_delete, role_permissions, role_members]) register_links([Role, 'role_list', 'role_create'], [role_list, role_create], menu_name='secondary_menu') register_multi_item_links(['role_permissions'], [permission_grant, permission_revoke]) permission_views = ['role_list', 'role_create', 'role_edit', 'role_members', 'role_permissions', 'role_delete'] def user_post_save(sender, instance, **kwargs): if kwargs.get('created', False): for default_role in DEFAULT_ROLES: if isinstance(default_role, Role): # If a model is passed, execute method default_role.add_member(instance) else: # If a role name is passed, lookup the corresponding model try: role = Role.objects.get(name=default_role)
from __future__ import absolute_import from hkp import Key as KeyServerKey from navigation.api import register_links from project_setup.api import register_setup from .api import Key from .links import (public_keys, key_delete, key_query, key_receive, key_setup) # register_links(['key_delete', 'key_private_list', 'key_public_list', 'key_query'], [private_keys, public_keys, key_query], menu_name='sidebar') register_links(['key_delete', 'key_public_list', 'key_query'], [public_keys, key_query], menu_name='sidebar') register_links(Key, [key_delete]) register_links(KeyServerKey, [key_receive]) register_setup(key_setup)
from navigation.api import register_links, register_multi_item_links from project_setup.api import register_setup from south.signals import post_migrate from .classes import (AccessHolder, AccessObjectClass, ClassAccessHolder, AccessObject) from .links import (acl_detail, acl_grant, acl_revoke, acl_holder_new, acl_setup_valid_classes, acl_class_list, acl_class_acl_list, acl_class_acl_detail, acl_class_new_holder_for, acl_class_grant, acl_class_revoke) from .models import CreatorSingleton register_links(AccessHolder, [acl_detail]) register_multi_item_links(['acl_detail'], [acl_grant, acl_revoke]) register_links([AccessObject], [acl_holder_new], menu_name='sidebar') register_setup(acl_setup_valid_classes) register_links([ 'acl_setup_valid_classes', 'acl_class_acl_list', 'acl_class_new_holder_for', 'acl_class_acl_detail', 'acl_class_multiple_grant', 'acl_class_multiple_revoke' ], [acl_class_list], menu_name='secondary_menu') register_links(ClassAccessHolder, [acl_class_acl_detail]) register_links(AccessObjectClass,
from .models import ( Document, DocumentPage, DocumentPageTransformation, DocumentType, DocumentTypeFilename, DocumentVersion ) from .permissions import ( PERMISSION_DOCUMENT_DELETE, PERMISSION_DOCUMENT_DOWNLOAD, PERMISSION_DOCUMENT_EDIT, PERMISSION_DOCUMENT_NEW_VERSION, PERMISSION_DOCUMENT_PROPERTIES_EDIT, PERMISSION_DOCUMENT_TRANSFORM, PERMISSION_DOCUMENT_VERSION_REVERT, PERMISSION_DOCUMENT_VIEW ) from .settings import THUMBNAIL_SIZE from .statistics import DocumentStatistics, DocumentUsageStatistics from .widgets import document_thumbnail # Register document type links register_links(DocumentType, [document_type_edit, document_type_filename_list, document_type_delete]) register_links([DocumentType, 'documents:document_type_create', 'documents:document_type_list'], [document_type_list, document_type_create], menu_name='secondary_menu') register_links(DocumentTypeFilename, [document_type_filename_edit, document_type_filename_delete]) register_links([DocumentTypeFilename, 'documents:document_type_filename_list', 'documents:document_type_filename_create'], [document_type_filename_create], menu_name='sidebar') # Register document links register_links(Document, [document_edit, document_document_type_edit, document_print, document_delete, document_download, document_clear_transformations, document_update_page_count]) register_links([Document], [document_multiple_clear_transformations, document_multiple_delete, document_multiple_download, document_multiple_update_page_count, document_multiple_document_type_edit, link_spacer], menu_name='multi_item_links') register_links(Document, [document_preview], menu_name='form_header', position=0) register_links(Document, [document_content], menu_name='form_header', position=1) register_links(Document, [document_properties], menu_name='form_header', position=2) register_links(Document, [document_events_view, document_version_list, document_acl_list], menu_name='form_header') # Document Version links register_links(DocumentVersion, [document_version_revert, document_version_download]) register_links(['documents:document_list_recent', 'documents:document_list'], [document_list_recent, document_list], menu_name='secondary_menu')
from .exceptions import AlreadyQueued from .links import (submit_document, submit_document_multiple, re_queue_multiple_document, queue_document_multiple_delete, document_queue_disable, document_queue_enable, all_document_ocr_cleanup, queue_document_list, ocr_tool_link) from .literals import QUEUEDOCUMENT_STATE_PENDING, QUEUEDOCUMENT_STATE_PROCESSING from .models import DocumentQueue from .permissions import PERMISSION_OCR_DOCUMENT from .statistics import OCRStatistics from .tasks import task_process_document_queues logger = logging.getLogger(__name__) register_links(Document, [submit_document]) register_multi_item_links(['document_find_duplicates', 'folder_view', 'index_instance_node_view', 'document_type_document_list', 'search', 'results', 'document_group_view', 'document_list', 'document_list_recent', 'tag_tagged_item_list'], [submit_document_multiple]) register_links(DocumentQueue, [document_queue_disable, document_queue_enable]) register_multi_item_links(['queue_document_list'], [re_queue_multiple_document, queue_document_multiple_delete]) register_links(['document_queue_disable', 'document_queue_enable', 'queue_document_list'], [queue_document_list], menu_name='secondary_menu') register_maintenance_links([all_document_ocr_cleanup], namespace='ocr', title=_(u'OCR')) @receiver(post_save, dispatch_uid='document_post_save', sender=DocumentVersion) def document_post_save(sender, instance, **kwargs): logger.debug('received post save signal') logger.debug('instance: %s' % instance)
register_model_list_columns(PropertyNamespace, [ { 'name': _(u'label'), 'attribute': 'label' }, { 'name': _(u'items'), 'attribute': encapsulate(lambda entry: len(entry.get_properties())) } ]) register_model_list_columns(Property, [ { 'name': _(u'label'), 'attribute': 'label' }, { 'name': _(u'value'), 'attribute': 'value' } ]) register_links(PropertyNamespace, [link_namespace_details]) register_links(['namespace_list', PropertyNamespace], [link_namespace_list], menu_name='secondary_menu') register_tool(link_menu_link) check_first_run()
from south.signals import post_migrate from navigation.api import register_links, register_top_menu from .conf import settings as common_settings from .conf.settings import (AUTO_ADMIN_USERNAME, AUTO_ADMIN_PASSWORD, AUTO_CREATE_ADMIN, TEMPORARY_DIRECTORY) from .links import (link_about, link_current_user_details, link_current_user_edit, link_license, link_password_change) from .models import AnonymousUserSingleton, AutoAdminSingleton from .utils import validate_path logger = logging.getLogger(__name__) register_links( ['current_user_details', 'current_user_edit', 'password_change_view'], [link_current_user_details, link_current_user_edit, link_password_change], menu_name='secondary_menu') register_links(['about_view', 'license_view', 'form_view'], [link_about, link_license], menu_name='secondary_menu') register_top_menu('about', link_about, position=-1) @receiver(post_migrate, dispatch_uid='create_superuser_and_anonymous_user') def create_superuser_and_anonymous_user(sender, **kwargs): """ From https://github.com/lambdalisue/django-qwert/blob/master/qwert/autoscript/__init__.py From http://stackoverflow.com/questions/1466827/ -- Prevent interactive question about wanting a superuser created. (This code
from django.contrib.auth.models import User from django.core.exceptions import ObjectDoesNotExist from django.db.models.signals import post_save from navigation.api import register_links from project_setup.api import register_setup from rest_api.classes import APIEndPoint from .models import Permission, Role from .links import (permission_grant, permission_revoke, role_create, role_delete, role_edit, role_list, role_members, role_permissions) from .settings import DEFAULT_ROLES register_links(Role, [role_edit, role_members, role_permissions, role_delete]) register_links([Role, 'permissions:role_create', 'permissions:role_list'], [role_list, role_create], menu_name='secondary_menu') register_links(['permissions:role_permissions'], [permission_grant, permission_revoke], menu_name='multi_item_links') def user_post_save(sender, instance, **kwargs): if kwargs.get('created', False): for default_role in DEFAULT_ROLES: if isinstance(default_role, Role): # If a model is passed, execute method default_role.add_member(instance) else:
from acls.permissions import ACLS_EDIT_ACL, ACLS_VIEW_ACL from documents.models import Document from navigation.api import register_links, register_sidebar_template from project_setup.api import register_setup from .links import (smart_link_instances_for_document, smart_link_setup, smart_link_list, smart_link_create, smart_link_edit, smart_link_delete, smart_link_condition_list, smart_link_condition_create, smart_link_condition_edit, smart_link_condition_delete, smart_link_acl_list) from .models import SmartLink, SmartLinkCondition from .permissions import (PERMISSION_SMART_LINK_VIEW, PERMISSION_SMART_LINK_DELETE, PERMISSION_SMART_LINK_EDIT) register_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 ]) register_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]) register_links([ 'smart_link_condition_list', 'smart_link_condition_create', 'smart_link_condition_edit', 'smart_link_condition_delete' ], [smart_link_condition_create],
from .widgets import staging_file_thumbnail register_model_list_columns(StagingFile, [ { 'name': _('Thumbnail'), 'attribute': encapsulate(lambda x: staging_file_thumbnail(x, gallery_name= 'sources:staging_list', title=x.filename, size='100')) }, ]) register_links([StagingFile], [staging_file_delete]) register_links( [Source, 'sources:setup_source_list', 'sources:setup_source_create'], [ setup_sources, setup_source_create_webform, setup_source_create_staging_folder, setup_source_create_pop3_email, setup_source_create_imap_email, setup_source_create_watch_folder ], menu_name='secondary_menu') register_links( [Source], [setup_source_edit, setup_source_transformation_list, setup_source_delete]) register_links( SourceTransformation, [setup_source_transformation_edit, setup_source_transformation_delete]) register_links([ SourceTransformation, 'sources:setup_source_transformation_create',
from __future__ import absolute_import from navigation.api import register_links, register_multi_item_links from project_setup.api import register_setup from .classes import (AccessHolder, AccessObjectClass, ClassAccessHolder, AccessObject) from .links import (acl_detail, acl_grant, acl_revoke, acl_holder_new, acl_setup_valid_classes, acl_class_list, acl_class_acl_list, acl_class_acl_detail, acl_class_new_holder_for, acl_class_grant, acl_class_revoke) register_links(AccessHolder, [acl_detail]) register_multi_item_links(['acl_detail'], [acl_grant, acl_revoke]) register_links([AccessObject], [acl_holder_new], menu_name='sidebar') register_setup(acl_setup_valid_classes) register_links(['acl_setup_valid_classes', 'acl_class_acl_list', 'acl_class_new_holder_for', 'acl_class_acl_detail', 'acl_class_multiple_grant', 'acl_class_multiple_revoke'], [acl_class_list], menu_name='secondary_menu') register_links(ClassAccessHolder, [acl_class_acl_detail]) register_links(AccessObjectClass, [acl_class_acl_list, acl_class_new_holder_for]) register_multi_item_links(['acl_class_acl_detail'], [acl_class_grant, acl_class_revoke])
from project_setup.api import register_setup from .classes import ResolvedSmartLink from .links import (smart_link_acl_list, smart_link_create, smart_link_condition_create, smart_link_condition_delete, smart_link_condition_edit, smart_link_condition_list, smart_link_delete, smart_link_document_types, smart_link_edit, smart_link_instance_view, smart_link_instances_for_document, smart_link_list, smart_link_setup) from .models import SmartLink, SmartLinkCondition from .permissions import (PERMISSION_SMART_LINK_DELETE, PERMISSION_SMART_LINK_EDIT, PERMISSION_SMART_LINK_VIEW) register_links(Document, [smart_link_instances_for_document], menu_name='form_header') register_links(SmartLink, [ smart_link_edit, smart_link_document_types, smart_link_condition_list, smart_link_acl_list, smart_link_delete ]) register_links( [SmartLink, 'linking:smart_link_list', 'linking:smart_link_create'], [smart_link_list, smart_link_create], menu_name='secondary_menu') register_links(SmartLinkCondition, [smart_link_condition_edit, smart_link_condition_delete]) register_links(ResolvedSmartLink, [smart_link_instance_view]) register_links([ 'linking:smart_link_condition_list', 'linking:smart_link_condition_create', 'linking:smart_link_condition_edit', 'linking:smart_link_condition_delete' ], [smart_link_condition_create],
from django.utils.translation import ugettext_lazy as _ from navigation.api import register_sidebar_template, register_links search = {'text': _(u'search'), 'view': 'search', 'famfam': 'zoom'} search_advanced = {'text': _(u'advanced search'), 'view': 'search_advanced', 'famfam': 'zoom_in'} search_again = {'text': _(u'search again'), 'view': 'search_again', 'famfam': 'arrow_undo'} register_sidebar_template(['search', 'search_advanced'], 'search_help.html') register_links(['search', 'search_advanced', 'results'], [search, search_advanced], menu_name='form_header') register_links(['results'], [search_again], menu_name='sidebar') register_sidebar_template(['search', 'search_advanced', 'results'], 'recent_searches.html')
metadata.delete(enforce_required=False) # Add new document type metadata types to document for document_type_metadata_type in instance.document_type.metadata.filter( required=True): DocumentMetadata.objects.create( document=instance, metadata_type=document_type_metadata_type.metadata_type, value=None) Document.add_to_class('metadata_value_of', DocumentMetadataHelper.constructor) register_links([ 'metadata:metadata_add', 'metadata:metadata_edit', 'metadata:metadata_remove', 'metadata:metadata_view' ], [metadata_add, metadata_edit, metadata_remove], menu_name='sidebar') register_links(Document, [metadata_view], menu_name='form_header') register_links([Document], [ metadata_multiple_add, metadata_multiple_edit, metadata_multiple_remove, link_spacer ], menu_name='multi_item_links') register_links( DocumentType, [setup_document_type_metadata, setup_document_type_metadata_required]) register_links(MetadataType, [setup_metadata_type_edit, setup_metadata_type_delete]) register_links([ MetadataType, 'metadata:setup_metadata_type_list',
from __future__ import absolute_import from django.dispatch import receiver from south.signals import post_migrate from navigation.api import register_links from .links import form_view from .models import RegistrationSingleton register_links(['form_view', 'about_view', 'license_view'], [form_view], menu_name='secondary_menu') @receiver(post_migrate, dispatch_uid='create_registration_instance') def create_registration_instance(sender, **kwargs): if kwargs['app'] == 'registration': RegistrationSingleton.objects.get_or_create()
'attribute': encapsulate(lambda x: single_tag_widget(x)) }, { 'name': _(u'tagged items'), 'attribute': encapsulate(lambda x: x.taggit_taggeditem_items.count()) } ]) register_model_list_columns(Document, [ { 'name': _(u'tags'), 'attribute': encapsulate(lambda x: get_tags_inline_widget_simple(x)) }, ]) register_links(Tag, [tag_tagged_item_list, tag_edit, tag_delete, tag_acl_list]) register_multi_item_links(['tag_list'], [tag_multiple_delete]) register_links([Tag, 'tag_list', 'tag_create'], [tag_list, tag_create], menu_name='secondary_menu') register_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') register_links(['document_tags', 'tag_remove', 'tag_multiple_remove', 'tag_attach'], [tag_attach], menu_name='sidebar') register_multi_item_links(['document_tags'], [single_document_multiple_tag_remove]) register_multi_item_links(['document_find_duplicates', 'folder_view', 'index_instance_node_view', 'document_type_document_list', 'search', 'results', 'document_group_view', 'document_list', 'document_list_recent', 'tag_tagged_item_list'], [tag_multiple_attach, multiple_documents_selection_tag_remove]) class_permissions(Document, [ PERMISSION_TAG_ATTACH, PERMISSION_TAG_REMOVE, ])
from __future__ import unicode_literals from navigation.api import register_links from .links import link_setup register_links(['common:current_user_details', 'common:current_user_edit', 'common:current_user_locale_profile_details', 'common:current_user_locale_profile_edit', 'common:password_change_view'], [link_setup], menu_name='secondary_menu')
APIEndPoint('tags') register_model_list_columns(Tag, [ { 'name': _('Preview'), 'attribute': encapsulate(lambda x: single_tag_widget(x)) }, { 'name': _('Tagged items'), 'attribute': encapsulate(lambda x: x.documents.count()) } ]) register_model_list_columns(Document, [ { 'name': _('Tags'), 'attribute': encapsulate(lambda x: get_tags_inline_widget_simple(x)) }, ]) register_top_menu('tags', link={'text': _('Tags'), 'view': 'tags:tag_list', 'famfam': 'tag_blue'}) register_links(Tag, [tag_tagged_item_list, tag_edit, tag_acl_list, tag_delete]) register_links([Tag], [tag_multiple_delete], menu_name='multi_item_links') register_links([Tag, 'tags:tag_list', 'tags:tag_create'], [tag_list, tag_create], menu_name='secondary_menu') register_links(Document, [tag_document_list], menu_name='form_header') register_links(['tags:document_tags', 'tags:tag_remove', 'tags:tag_multiple_remove', 'tags:tag_attach'], [tag_attach], menu_name='sidebar') register_links(['tags:document_tags'], [single_document_multiple_tag_remove], menu_name='multi_item_links') register_links([Document], [tag_multiple_attach, multiple_documents_selection_tag_remove, link_spacer], menu_name='multi_item_links')
'famfam': 'shape_square_add' } 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' } register_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_links(DocumentQueue, [ document_queue_disable, document_queue_enable, setup_queue_transformation_list ]) register_links( QueueTransformation, [setup_queue_transformation_edit, setup_queue_transformation_delete]) register_multi_item_links(
register_top_menu) from navigation.links import link_spacer from rest_api.classes import APIEndPoint from .links import (document_folder_list, folder_acl_list, folder_add_document, folder_add_multiple_documents, folder_create, folder_delete, folder_document_multiple_remove, folder_edit, folder_list, folder_view, folders_main_menu_link) from .models import Folder from .permissions import (PERMISSION_FOLDER_ADD_DOCUMENT, PERMISSION_FOLDER_DELETE, PERMISSION_FOLDER_EDIT, PERMISSION_FOLDER_REMOVE_DOCUMENT, PERMISSION_FOLDER_VIEW) register_links(Folder, [folder_view, folder_edit, folder_acl_list, folder_delete]) register_links([Folder, 'folders:folder_list', 'folders:folder_create'], [folder_list, folder_create], menu_name='secondary_menu') register_links(['folders:document_folder_list', 'folders:folder_add_document'], [folder_add_document], menu_name="sidebar") register_links(Document, [document_folder_list], menu_name='form_header') register_links([Document], [ folder_add_multiple_documents, folder_document_multiple_remove, link_spacer ], menu_name='multi_item_links') register_top_menu(name='folders', link=folders_main_menu_link) class_permissions(Folder, [
rebuild_index_instances = { 'text': _('rebuild indexes'), 'view': 'rebuild_index_instances', 'famfam': 'folder_page', 'permissions': [PERMISSION_DOCUMENT_INDEXING_REBUILD_INDEXES], 'description': _(u'Deletes and creates from scratch all the document indexes.') } register_maintenance_links([rebuild_index_instances], namespace='document_indexing', title=_(u'Indexes')) register_sidebar_template(['index_instance_list'], 'indexing_help.html') register_links(IndexInstanceNode, [index_parent]) register_links(Document, [document_index_list], menu_name='form_header') register_setup(index_setup) register_links([ Index, 'index_setup_list', 'index_setup_create', 'template_node_edit', 'template_node_delete' ], [index_setup_list, index_setup_create], menu_name='secondary_menu') register_links(Index, [index_setup_edit, index_setup_delete, index_setup_view]) register_links( IndexTemplateNode,
document_queue_disable = {'text': _(u'stop queue'), 'view': 'document_queue_disable', 'args': 'queue.id', 'famfam': 'control_stop_blue', 'permissions': [PERMISSION_OCR_QUEUE_ENABLE_DISABLE]} document_queue_enable = {'text': _(u'activate queue'), 'view': 'document_queue_enable', 'args': 'queue.id', 'famfam': 'control_play_blue', 'permissions': [PERMISSION_OCR_QUEUE_ENABLE_DISABLE]} all_document_ocr_cleanup = {'text': _(u'clean up pages content'), 'view': 'all_document_ocr_cleanup', 'famfam': 'text_strikethrough', 'permissions': [PERMISSION_OCR_CLEAN_ALL_PAGES], 'description': _(u'Runs a language filter to remove common OCR mistakes from document pages content.')} queue_document_list = {'text': _(u'queue document list'), 'view': 'queue_document_list', 'famfam': 'hourglass', 'permissions': [PERMISSION_OCR_DOCUMENT]} ocr_tool_link = {'text': _(u'OCR'), 'view': 'queue_document_list', 'famfam': 'hourglass', 'icon': 'text.png', 'permissions': [PERMISSION_OCR_DOCUMENT]} node_active_list = {'text': _(u'active tasks'), 'view': 'node_active_list', 'famfam': 'server_chart', 'permissions': [PERMISSION_OCR_DOCUMENT]} setup_queue_transformation_list = {'text': _(u'transformations'), 'view': 'setup_queue_transformation_list', 'args': 'queue.pk', 'famfam': 'shape_move_front'} setup_queue_transformation_create = {'text': _(u'add transformation'), 'view': 'setup_queue_transformation_create', 'args': 'queue.pk', 'famfam': 'shape_square_add'} 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'} register_links(Document, [submit_document]) register_links(DocumentQueue, [document_queue_disable, document_queue_enable, setup_queue_transformation_list]) register_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_links(['setup_queue_transformation_create', 'setup_queue_transformation_edit', 'setup_queue_transformation_delete', 'document_queue_disable', 'document_queue_enable', 'queue_document_list', 'node_active_list', 'setup_queue_transformation_list'], [queue_document_list, node_active_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') register_maintenance(all_document_ocr_cleanup, namespace='ocr', title=_(u'OCR')) @transaction.commit_manually def create_default_queue(): try: default_queue, created = DocumentQueue.objects.get_or_create(name='default')
from django.utils.translation import ugettext_lazy as _ from django.db import transaction, DatabaseError from navigation.api import register_links from common import about_view, license_view from .models import RegistrationSingleton def is_not_registered(context): return RegistrationSingleton.registration_state() == False form_view = { 'text': _('Registration'), 'view': 'form_view', 'famfam': 'telephone', 'condition': is_not_registered } register_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') with transaction.commit_on_success(): try: RegistrationSingleton.objects.get() except DatabaseError: transaction.rollback()
smart_link_delete, smart_link_condition_list, smart_link_condition_create, smart_link_condition_edit, smart_link_condition_delete, smart_link_acl_list, ) from .models import SmartLink, SmartLinkCondition from .permissions import ( PERMISSION_SMART_LINK_VIEW, PERMISSION_SMART_LINK_CREATE, PERMISSION_SMART_LINK_DELETE, PERMISSION_SMART_LINK_EDIT, ) register_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]) register_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]) register_links( [ "smart_link_condition_list", "smart_link_condition_create", "smart_link_condition_edit", "smart_link_condition_delete",
except GPGDecryptionError: # At least return the original raw content descriptor.seek(0) return descriptor else: descriptor.close() return StringIO(result.data) else: return descriptor def document_post_save_hook(instance): if not instance.pk: document_signature, created = DocumentVersionSignature.objects.get_or_create( document_version=instance.latest_version, ) register_links(Document, [document_verify], menu_name='form_header') register_links(['signatures:document_verify', 'signatures:document_signature_upload', 'signatures:document_signature_download', 'signatures:document_signature_delete'], [document_signature_upload, document_signature_download, document_signature_delete], menu_name='sidebar') DocumentVersion.register_pre_open_hook(1, document_pre_open_hook) DocumentVersion.register_post_save_hook(1, document_post_save_hook) class_permissions(Document, [ PERMISSION_DOCUMENT_VERIFY, PERMISSION_SIGNATURE_DELETE, PERMISSION_SIGNATURE_DOWNLOAD, PERMISSION_SIGNATURE_UPLOAD, ])
setup_watch_folder_list = {'text': _(u'watch folders'), 'view': 'setup_watch_folder_list', 'famfam': 'folder_magnify', 'children_classes': [WatchFolder], 'permissions': [PERMISSION_SOURCES_SETUP_VIEW]} setup_source_edit = {'text': _(u'edit'), 'view': 'setup_source_edit', 'args': ['source.source_type', 'source.pk'], 'famfam': 'application_form_edit', 'permissions': [PERMISSION_SOURCES_SETUP_EDIT]} setup_source_delete = {'text': _(u'delete'), 'view': 'setup_source_delete', 'args': ['source.source_type', 'source.pk'], 'famfam': 'application_form_delete', 'permissions': [PERMISSION_SOURCES_SETUP_DELETE]} setup_source_create = {'text': _(u'add new source'), 'view': 'setup_source_create', 'args': 'source_type', 'famfam': 'application_form_add', 'permissions': [PERMISSION_SOURCES_SETUP_CREATE]} setup_source_transformation_list = {'text': _(u'transformations'), 'view': 'setup_source_transformation_list', 'args': ['source.source_type', 'source.pk'], 'famfam': 'shape_move_front', 'permissions': [PERMISSION_SOURCES_SETUP_EDIT]} setup_source_transformation_create = {'text': _(u'add transformation'), 'view': 'setup_source_transformation_create', 'args': ['source.source_type', 'source.pk'], 'famfam': 'shape_square_add', 'permissions': [PERMISSION_SOURCES_SETUP_EDIT]} setup_source_transformation_edit = {'text': _(u'edit'), 'view': 'setup_source_transformation_edit', 'args': 'transformation.pk', 'famfam': 'shape_square_edit', 'permissions': [PERMISSION_SOURCES_SETUP_EDIT]} setup_source_transformation_delete = {'text': _(u'delete'), 'view': 'setup_source_transformation_delete', 'args': 'transformation.pk', 'famfam': 'shape_square_delete', 'permissions': [PERMISSION_SOURCES_SETUP_EDIT]} source_list = {'text': _(u'Document sources'), 'view': 'setup_web_form_list', 'famfam': 'page_add', 'children_url_regex': [r'sources/setup'], 'permissions': [PERMISSION_SOURCES_SETUP_VIEW]} 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]) register_links(SourceTransformation, [setup_source_transformation_edit, setup_source_transformation_delete]) #register_links(['setup_web_form_list', 'setup_staging_folder_list', 'setup_watch_folder_list', 'setup_source_create'], [setup_web_form_list, setup_staging_folder_list, setup_watch_folder_list], menu_name='form_header') register_links(['setup_web_form_list', 'setup_staging_folder_list', 'setup_watch_folder_list', 'setup_source_create'], [setup_web_form_list, setup_staging_folder_list], menu_name='form_header') #register_links(WebForm, [setup_web_form_list, setup_staging_folder_list, setup_watch_folder_list], menu_name='form_header') register_links(WebForm, [setup_web_form_list, setup_staging_folder_list], menu_name='form_header') register_links(WebForm, [setup_source_transformation_list, setup_source_edit, setup_source_delete]) register_links(['setup_web_form_list', 'setup_staging_folder_list', 'setup_watch_folder_list', 'setup_source_edit', 'setup_source_delete', 'setup_source_create'], [setup_sources, setup_source_create], menu_name='sidebar') #register_links(StagingFolder, [setup_web_form_list, setup_staging_folder_list, setup_watch_folder_list], menu_name='form_header') register_links(StagingFolder, [setup_web_form_list, setup_staging_folder_list], menu_name='form_header') register_links(StagingFolder, [setup_source_transformation_list, setup_source_edit, setup_source_delete])
register_model_list_columns(Comment, [ { 'name': _(u'date'), 'attribute': 'submit_date' }, { 'name': _(u'user'), 'attribute': encapsulate(lambda x: x.user.get_full_name() if x.user.get_full_name() else x.user) }, { 'name': _(u'comment'), 'attribute': 'comment' } ]) register_links(['comments_for_document', 'comment_add', 'comment_delete', 'comment_multiple_delete'], [comment_add], menu_name='sidebar') register_links(Comment, [comment_delete]) register_links(Document, [comments_for_document], menu_name='form_header') Document.add_to_class( 'comments', generic.GenericRelation( Comment, content_type_field='content_type', object_id_field='object_pk' ) ) class_permissions(Document, [ PERMISSION_COMMENT_CREATE, PERMISSION_COMMENT_DELETE,
reminder_add = {'text': _(u'create reminder (calendar)'), 'view': 'reminder_add', 'famfam': 'hourglass_add', 'permissions': [PERMISSION_REMINDER_CREATE]} reminder_add_days = {'text': _(u'create reminder (days)'), 'view': 'reminder_add_days', 'famfam': 'hourglass_add', 'permissions': [PERMISSION_REMINDER_CREATE]} reminder_edit = {'text': _(u'edit (calendar)'), 'view': 'reminder_edit', 'args': 'object.pk', 'famfam': 'hourglass_go', 'permissions': [PERMISSION_REMINDER_EDIT]} reminder_edit_days = {'text': _(u'edit (days)'), 'view': 'reminder_edit_days', 'args': 'object.pk', 'famfam': 'hourglass_go', 'permissions': [PERMISSION_REMINDER_EDIT]} future_expired_remider_list = {'text': _(u'future expired reminders'), 'view': 'future_expired_remider_list', 'famfam': 'calendar', 'permissions': [PERMISSION_REMINDER_VIEW]} future_expired_remider_list_all = {'text': _(u'future expired reminders (all)'), 'view': 'future_expired_remider_list_all', 'famfam': 'calendar', 'permissions': [PERMISSION_REMINDER_VIEW_ALL]} reminder_view = {'text': _(u'details'), 'view': 'reminder_view', 'args': 'object.pk', 'famfam': 'hourglass', 'permissions': [PERMISSION_REMINDER_VIEW]} reminder_delete = {'text': _(u'delete'), 'view': 'reminder_delete', 'args': 'object.id', 'famfam': 'hourglass_delete', 'permissions': [PERMISSION_REMINDER_DELETE]} reminder_multiple_delete = {'text': _(u'delete'), 'view': 'reminder_multiple_delete', 'famfam': 'hourglass_delete', 'permissions': [PERMISSION_REMINDER_DELETE]} reminder_participant_add = {'text': _(u'add participant'), 'view': 'participant_add', 'args': 'object.pk', 'famfam': 'user_add', 'permissions': [PERMISSION_REMINDER_EDIT]} reminder_participant_remove = {'text': _(u'remove'), 'view': 'participant_remove', 'args': 'object.pk', 'famfam': 'user_delete', 'permissions': [PERMISSION_REMINDER_EDIT]} reminder_participant_list = {'text': _(u'participants'), 'view': 'participant_list', 'args': 'object.pk', 'famfam': 'group', 'permissions': [PERMISSION_REMINDER_VIEW]} register_links(['participant_list'], [reminder_participant_add], menu_name='sidebar') register_links( [ 'comments_for_object', 'comment_add', 'comment_delete', 'comment_multiple_delete', 'participant_remove', 'reminder_participant_add', 'participant_list', 'future_expired_remider_list', 'future_expired_remider_list_all', 'reminder_view', 'reminder_list_all', 'reminder_edit', 'reminder_edit_days', 'reminder_delete', 'reminder_list', 'expired_remider_list', 'expired_remider_list_all', 'reminder_add', 'reminder_add_days', 'participant_add'], [ reminder_list, reminder_list_all, expired_remider_list, expired_remider_list_all, future_expired_remider_list, future_expired_remider_list_all, reminder_add, reminder_add_days ], menu_name='sidebar'
from __future__ import unicode_literals from navigation.api import register_links from rest_api.classes import APIEndPoint from .links import search, search_advanced, search_again register_links(['search:search', 'search:search_advanced', 'search:results'], [search, search_advanced], menu_name='form_header') register_links(['search:results'], [search_again], menu_name='sidebar') APIEndPoint('search', app_name='dynamic_search')
} permission_grant = { 'text': _(u'grant'), 'view': 'permission_multiple_grant', 'famfam': 'key_add', 'permissions': [PERMISSION_PERMISSION_GRANT] } permission_revoke = { 'text': _(u'revoke'), 'view': 'permission_multiple_revoke', 'famfam': 'key_delete', 'permissions': [PERMISSION_PERMISSION_REVOKE] } register_links(Role, [role_edit, role_delete, role_permissions, role_members]) register_links([Role, 'role_list', 'role_create'], [role_list, role_create], menu_name='secondary_menu') register_multi_item_links(['role_permissions'], [permission_grant, permission_revoke]) permission_views = [ 'role_list', 'role_create', 'role_edit', 'role_members', 'role_permissions', 'role_delete' ] def user_post_save(sender, instance, **kwargs): if kwargs.get('created', False): for default_role in DEFAULT_ROLES: if isinstance(default_role, Role):
from django.utils.translation import ugettext_lazy as _ from navigation.api import register_links from documents.literals import PERMISSION_DOCUMENT_VIEW from documents.models import Document document_group_link = {'text': _(u'group actions'), 'view': 'document_group_view', 'famfam': 'page_go', 'permissions': [PERMISSION_DOCUMENT_VIEW]} groups_for_document = {'text': _(u'groups'), 'view': 'groups_for_document', 'args': 'object.pk', 'famfam': 'page_go', 'permissions': [PERMISSION_DOCUMENT_VIEW]} register_links(Document, [groups_for_document], menu_name='form_header')
index_setup_view = {'text': _(u'tree template'), 'view': 'index_setup_view', 'args': 'index.pk', 'famfam': 'textfield', 'permissions': [PERMISSION_DOCUMENT_INDEXING_SETUP]} template_node_create = {'text': _(u'new child node'), 'view': 'template_node_create', 'args': 'node.pk', 'famfam': 'textfield_add', 'permissions': [PERMISSION_DOCUMENT_INDEXING_SETUP]} template_node_edit = {'text': _(u'edit'), 'view': 'template_node_edit', 'args': 'node.pk', 'famfam': 'textfield', 'permissions': [PERMISSION_DOCUMENT_INDEXING_SETUP], 'conditional_disable': is_root_node} template_node_delete = {'text': _(u'delete'), 'view': 'template_node_delete', 'args': 'node.pk', 'famfam': 'textfield_delete', 'permissions': [PERMISSION_DOCUMENT_INDEXING_SETUP], 'conditional_disable': is_root_node} index_list = {'text': _(u'index list'), 'view': 'index_list', 'famfam': 'tab', 'permissions': [PERMISSION_DOCUMENT_INDEXING_VIEW]} index_parent = {'text': _(u'go up one level'), 'view': 'index_instance_node_view', 'args': 'object.parent.pk', 'famfam': 'arrow_up', 'permissions': [PERMISSION_DOCUMENT_INDEXING_VIEW], 'dont_mark_active': True, 'condition': is_not_instance_root_node} document_index_list = {'text': _(u'indexes'), 'view': 'document_index_list', 'args': 'object.pk', 'famfam': 'folder_page', 'permissions': [PERMISSION_DOCUMENT_INDEXING_VIEW, PERMISSION_DOCUMENT_VIEW]} register_top_menu('indexes', link={'text': _('indexes'), 'famfam': 'tab', 'view': 'index_list', 'children_view_regex': [r'^index_[i,l]']}) rebuild_index_instances = {'text': _('rebuild indexes'), 'view': 'rebuild_index_instances', 'famfam': 'folder_page', 'permissions': [PERMISSION_DOCUMENT_INDEXING_REBUILD_INDEXES], 'description': _(u'Deletes and creates from scratch all the document indexes.')} register_maintenance_links([rebuild_index_instances], namespace='document_indexing', title=_(u'Indexes')) register_sidebar_template(['index_instance_list'], 'indexing_help.html') register_links(IndexInstanceNode, [index_parent]) register_links(Document, [document_index_list], menu_name='form_header') register_setup(index_setup) register_links([Index, 'index_setup_list', 'index_setup_create', 'template_node_edit', 'template_node_delete'], [index_setup_list, index_setup_create], menu_name='secondary_menu') register_links(Index, [index_setup_edit, index_setup_delete, index_setup_view]) register_links(IndexTemplateNode, [template_node_create, template_node_edit, template_node_delete])
user_add, user_delete, user_multiple_delete, user_set_password, user_multiple_set_password, user_groups, group_list, group_setup, group_edit, group_add, group_delete, group_multiple_delete, group_members, ) register_links(User, [user_edit, user_set_password, user_groups, user_delete]) register_links( [User, "user_multiple_set_password", "user_multiple_delete", "user_list", "user_add"], [user_list, user_add], menu_name=u"secondary_menu", ) register_multi_item_links(["user_list"], [user_multiple_set_password, user_multiple_delete]) register_links(Group, [group_edit, group_members, group_delete]) register_links( ["group_multiple_delete", "group_delete", "group_edit", "group_list", "group_add", "group_members"], [group_list, group_add], menu_name=u"secondary_menu", ) register_multi_item_links(["group_list"], [group_multiple_delete])
from django.dispatch import receiver from south.signals import post_migrate from navigation.api import register_links from .links import form_view from .models import RegistrationSingleton register_links( ['registration:form_view', 'common:about_view', 'common:license_view'], [form_view], menu_name='secondary_menu') @receiver(post_migrate, dispatch_uid='create_registration_instance') def create_registration_instance(sender, **kwargs): if kwargs['app'] == 'registration': RegistrationSingleton.objects.get_or_create()
link_current_user_locale_profile_details, link_current_user_locale_profile_edit, link_license, link_logout, link_password_change) from .models import (AnonymousUserSingleton, AutoAdminSingleton, UserLocaleProfile) from .settings import (AUTO_ADMIN_USERNAME, AUTO_ADMIN_PASSWORD, AUTO_CREATE_ADMIN, TEMPORARY_DIRECTORY) from .utils import validate_path logger = logging.getLogger(__name__) register_links([ 'common:current_user_details', 'common:current_user_edit', 'common:current_user_locale_profile_details', 'common:current_user_locale_profile_edit', 'common:password_change_view' ], [ link_current_user_details, link_current_user_edit, link_current_user_locale_profile_details, link_current_user_locale_profile_edit, link_password_change, link_logout ], menu_name='secondary_menu') register_links(['common:about_view', 'common:license_view'], [link_about, link_license], menu_name='secondary_menu') register_top_menu('about', link_about, position=-1) @receiver(post_migrate, dispatch_uid='create_superuser_and_anonymous_user') def create_superuser_and_anonymous_user(sender, **kwargs): """ From https://github.com/lambdalisue/django-qwert/blob/master/qwert/autoscript/__init__.py
def initialize_document_checkout_extra_methods(): Document.add_to_class('is_checked_out', lambda document: DocumentCheckout.objects.is_document_checked_out(document)) Document.add_to_class('check_in', lambda document, user=None: DocumentCheckout.objects.check_in_document(document, user)) Document.add_to_class('checkout_info', lambda document: DocumentCheckout.objects.document_checkout_info(document)) Document.add_to_class('checkout_state', lambda document: DocumentCheckout.objects.document_checkout_state(document)) Document.add_to_class('is_new_versions_allowed', lambda document, user=None: DocumentCheckout.objects.is_document_new_versions_allowed(document, user)) app.conf.CELERYBEAT_SCHEDULE.update({ 'check_expired_check_outs': { 'task': 'checkouts.tasks.task_check_expired_check_outs', 'schedule': timedelta(seconds=CHECK_EXPIRED_CHECK_OUTS_INTERVAL), 'options': {'queue': 'checkouts'} }, }) class_permissions(Document, [ PERMISSION_DOCUMENT_CHECKOUT, PERMISSION_DOCUMENT_CHECKIN, PERMISSION_DOCUMENT_CHECKIN_OVERRIDE, PERMISSION_DOCUMENT_RESTRICTIONS_OVERRIDE ]) initialize_document_checkout_extra_methods() register_links(Document, [checkout_info], menu_name='form_header') register_links(['checkouts:checkout_info', 'checkouts:checkout_document', 'checkouts:checkin_document'], [checkout_document, checkin_document], menu_name="sidebar") register_top_menu(name='checkouts', link=checkout_list) APIEndPoint('checkouts')
user_list = {'text': _(u'user list'), 'view': 'user_list', 'famfam': 'user', 'permissions': [PERMISSION_USER_VIEW]} user_edit = {'text': _(u'edit'), 'view': 'user_edit', 'args': 'object.id', 'famfam': 'user_edit', 'permissions': [PERMISSION_USER_EDIT]} user_add = {'text': _(u'create new user'), 'view': 'user_add', 'famfam': 'user_add', 'permissions': [PERMISSION_USER_CREATE]} user_delete = {u'text': _('delete'), 'view': 'user_delete', 'args': 'object.id', 'famfam': 'user_delete', 'permissions': [PERMISSION_USER_DELETE]} user_multiple_delete = {u'text': _('delete'), 'view': 'user_multiple_delete', 'famfam': 'user_delete', 'permissions': [PERMISSION_USER_DELETE]} user_set_password = {u'text': _('reset password'), 'view': 'user_set_password', 'args': 'object.id', 'famfam': 'lock_edit', 'permissions': [PERMISSION_USER_EDIT]} user_multiple_set_password = {u'text': _('reset password'), 'view': 'user_multiple_set_password', 'famfam': 'lock_edit', 'permissions': [PERMISSION_USER_EDIT]} group_list = {'text': _(u'group list'), 'view': 'group_list', 'famfam': 'group', 'permissions': [PERMISSION_GROUP_VIEW]} group_edit = {'text': _(u'edit'), 'view': 'group_edit', 'args': 'object.id', 'famfam': 'group_edit', 'permissions': [PERMISSION_GROUP_EDIT]} group_add = {'text': _(u'create new group'), 'view': 'group_add', 'famfam': 'group_add', 'permissions': [PERMISSION_GROUP_CREATE]} group_delete = {u'text': _('delete'), 'view': 'group_delete', 'args': 'object.id', 'famfam': 'group_delete', 'permissions': [PERMISSION_GROUP_DELETE]} group_multiple_delete = {u'text': _('delete'), 'view': 'group_multiple_delete', 'famfam': 'group_delete', 'permissions': [PERMISSION_GROUP_DELETE]} group_members = {'text': _(u'members'), 'view': 'group_members', 'args': 'object.id', 'famfam': 'group_link', 'permissions': [PERMISSION_GROUP_EDIT]} register_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_add], menu_name=u'sidebar') register_multi_item_links(['user_list'], [user_multiple_set_password, user_multiple_delete]) register_links(Group, [group_edit, group_members, group_delete]) register_links(['group_multiple_delete', 'group_delete', 'group_edit', 'group_list', 'group_add', 'group_members'], [group_add], menu_name=u'sidebar') register_multi_item_links(['group_list'], [group_multiple_delete]) user_management_views = [ 'user_list', 'user_edit', 'user_add', 'user_delete', 'user_multiple_delete', 'user_set_password', 'user_multiple_set_password', 'group_list', 'group_edit', 'group_add', 'group_delete', 'group_multiple_delete', 'group_members' ]
'famfam': 'folder_page', 'permissions': [PERMISSION_DOCUMENT_INDEXING_VIEW, PERMISSION_DOCUMENT_VIEW] } register_top_menu('indexes', link={ 'text': _('indexes'), 'famfam': 'folder_page', 'view': 'index_instance_list' }) rebuild_index_instances = { 'text': _('rebuild indexes'), 'view': 'rebuild_index_instances', 'famfam': 'folder_page', 'permissions': [PERMISSION_DOCUMENT_INDEXING_REBUILD_INDEXES], 'description': _(u'Deletes and creates from scratch all the document indexes.') } register_maintenance_links([rebuild_index_instances], namespace='document_indexing', title=_(u'Indexes')) register_sidebar_template(['index_instance_list'], 'indexing_help.html') register_links(IndexInstance, [index_parent]) register_links(Document, [document_index_list], menu_name='form_header')
link_current_user_locale_profile_details, link_current_user_locale_profile_edit, link_license, link_logout, link_password_change ) from .models import ( AnonymousUserSingleton, AutoAdminSingleton, UserLocaleProfile ) from .settings import ( AUTO_ADMIN_USERNAME, AUTO_ADMIN_PASSWORD, AUTO_CREATE_ADMIN, TEMPORARY_DIRECTORY ) from .utils import validate_path logger = logging.getLogger(__name__) register_links(['common:current_user_details', 'common:current_user_edit', 'common:current_user_locale_profile_details', 'common:current_user_locale_profile_edit', 'common:password_change_view'], [link_current_user_details, link_current_user_edit, link_current_user_locale_profile_details, link_current_user_locale_profile_edit, link_password_change, link_logout], menu_name='secondary_menu') register_links(['common:about_view', 'common:license_view'], [link_about, link_license], menu_name='secondary_menu') register_top_menu('about', link_about, position=-1) @receiver(post_migrate, dispatch_uid='create_superuser_and_anonymous_user') def create_superuser_and_anonymous_user(sender, **kwargs): """ From https://github.com/lambdalisue/django-qwert/blob/master/qwert/autoscript/__init__.py From http://stackoverflow.com/questions/1466827/ -- Prevent interactive question about wanting a superuser created. (This code has to go in this otherwise empty "models" module so that it gets processed by the "syncdb" command during database creation.)
from django.contrib.auth.models import User from django.core.exceptions import ObjectDoesNotExist from django.db.models.signals import post_save from navigation.api import register_links from project_setup.api import register_setup from rest_api.classes import APIEndPoint from .models import Permission, Role from .links import ( permission_grant, permission_revoke, role_create, role_delete, role_edit, role_list, role_members, role_permissions ) from .settings import DEFAULT_ROLES register_links(Role, [role_edit, role_members, role_permissions, role_delete]) register_links([Role, 'permissions:role_create', 'permissions:role_list'], [role_list, role_create], menu_name='secondary_menu') register_links(['permissions:role_permissions'], [permission_grant, permission_revoke], menu_name='multi_item_links') def user_post_save(sender, instance, **kwargs): if kwargs.get('created', False): for default_role in DEFAULT_ROLES: if isinstance(default_role, Role): # If a model is passed, execute method default_role.add_member(instance) else: # If a role name is passed, lookup the corresponding model try: role = Role.objects.get(name=default_role) role.add_member(instance)
metadata_remove = {'text': _(u'remove metadata'), 'view': 'metadata_remove', 'args': 'object.pk', 'famfam': '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]} 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_edit = {'text': _(u'edit'), 'view': 'setup_metadata_type_edit', 'args': 'object.pk', 'famfam': '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_create = {'text': _(u'create new'), 'view': 'setup_metadata_type_create', 'famfam': '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_edit = {'text': _(u'edit'), 'view': 'setup_metadata_set_edit', 'args': 'object.pk', 'famfam': '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_create = {'text': _(u'create new'), 'view': 'setup_metadata_set_create', 'famfam': '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]} register_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') 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]) register_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]) register_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]) 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'] register_sidebar_template(['setup_metadata_type_list'], 'metadata_type_help.html')
from __future__ import absolute_import from navigation.api import register_links from .classes import Statistic, StatisticNamespace from .links import link_execute, link_namespace_details, link_namespace_list register_links(StatisticNamespace, [link_namespace_details]) register_links([StatisticNamespace, 'statistics:namespace_list', 'statistics:execute'], [link_namespace_list], menu_name='secondary_menu') register_links(Statistic, [link_execute])
PERMISSION_DOCUMENT_PROPERTIES_EDIT, PERMISSION_DOCUMENT_VIEW, PERMISSION_DOCUMENT_DELETE, PERMISSION_DOCUMENT_DOWNLOAD, PERMISSION_DOCUMENT_TRANSFORM, PERMISSION_DOCUMENT_EDIT, PERMISSION_DOCUMENT_VERSION_REVERT, PERMISSION_DOCUMENT_NEW_VERSION) from .statistics import DocumentStatistics, DocumentUsageStatistics from .urls import api_urls from .widgets import document_thumbnail # History setup register_history_type(HISTORY_DOCUMENT_CREATED) register_history_type(HISTORY_DOCUMENT_EDITED) register_history_type(HISTORY_DOCUMENT_DELETED) # Register document type links register_links( DocumentType, [document_type_edit, document_type_delete, document_type_filename_list]) register_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_edit', 'document_type_delete' ], [document_type_list, document_type_create], menu_name='secondary_menu') register_links([ DocumentTypeFilename, 'document_type_filename_list', 'document_type_filename_create' ], [document_type_filename_create],
from __future__ import unicode_literals from navigation.api import register_links from project_tools.api import register_tool from .classes import Statistic, StatisticNamespace from .links import (link_execute, link_namespace_details, link_namespace_list, link_statistics) register_links(StatisticNamespace, [link_namespace_details]) register_links( [StatisticNamespace, 'statistics:namespace_list', 'statistics:execute'], [link_namespace_list], menu_name='secondary_menu') register_links(Statistic, [link_execute]) register_tool(link_statistics)
from menu_manager.models import MenuEntry #PERMISSION_USER_CREATE = {'namespace': 'user_management', 'name': 'user_create', 'label': _(u'Create new users')} #PERMISSION_USER_EDIT = {'namespace': 'user_management', 'name': 'user_edit', 'label': _(u'Edit existing users')} #PERMISSION_USER_VIEW = {'namespace': 'user_management', 'name': 'user_view', 'label': _(u'View existing users')} #PERMISSION_USER_DELETE = {'namespace': 'user_management', 'name': 'user_delete', 'label': _(u'Delete existing users')} #set_namespace_title('user_management', _(u'User management')) #register_permission(PERMISSION_USER_CREATE) #register_permission(PERMISSION_USER_EDIT) #register_permission(PERMISSION_USER_VIEW) #register_permission(PERMISSION_USER_DELETE) menu_list = {'text': _(u'root menu list'), 'view': 'menu_list', 'famfam': 'tab_go'}#, 'permissions': [PERMISSION_USER_VIEW]} menu_add = {'text': _(u'new root menu'), 'view': 'menu_add', 'famfam': 'tab_add'}#, 'permissions': [PERMISSION_USER_CREATE]} menu_edit = {'text': _(u'edit'), 'view': 'menu_edit', 'args': 'object.id', 'famfam': 'tab_edit'}#, 'permissions': [PERMISSION_USER_EDIT]} menu_delete = {u'text': _('delete'), 'view': 'menu_delete', 'args': 'object.id', 'famfam': 'tab_delete'}#, 'permissions': [PERMISSION_USER_DELETE]} menu_multiple_delete = {u'text': _('delete'), 'view': 'menu_multiple_delete', 'famfam': 'tab_delete'}#, 'permissions': [PERMISSION_USER_DELETE]} menu_add_child = {'text': _(u'new menu entry'), 'view': 'menu_add_child', 'args': 'object.id', 'famfam': 'tab_add'}#, 'permissions': [PERMISSION_USER_CREATE]} menu_setup = {'text': _(u'menus'), 'view': 'menu_list', 'icon': 'menu.png'}#, 'permissions': [PERMISSION_USER_VIEW]} menu_promote = {'text': _(u'up'), 'view': 'menu_promote', 'args': 'object.id', 'famfam': 'arrow_up'}#, 'permissions': [PERMISSION_USER_CREATE]} menu_demote = {'text': _(u'down'), 'view': 'menu_demote', 'args': 'object.id', 'famfam': 'arrow_down'}#, 'permissions': [PERMISSION_USER_CREATE]} register_links(MenuEntry, [menu_edit, menu_delete, menu_add_child]) register_links(['menu_list', 'menu_details', 'menu_add', 'menu_add_child', 'menu_edit', 'menu_delete', 'menu_multiple_delete'], [menu_list, menu_add], menu_name=u'sidebar') register_multi_item_links(['menu_list'], [menu_multiple_delete]) register_setup(menu_setup)
document_type_list = {'text': _(u'document type list'), 'view': 'document_type_list', 'famfam': 'layout', 'permissions': [PERMISSION_DOCUMENT_VIEW]} document_type_document_list = {'text': _(u'documents of this type'), 'view': 'document_type_document_list', 'args': 'object.id', 'famfam': 'page_go', 'permissions': [PERMISSION_DOCUMENT_VIEW]} document_type_edit = {'text': _(u'edit'), 'view': 'document_type_edit', 'args': 'object.id', 'famfam': 'layout_edit', 'permissions': [PERMISSION_DOCUMENT_TYPE_EDIT]} document_type_delete = {'text': _(u'delete'), 'view': 'document_type_delete', 'args': 'object.id', 'famfam': '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_filename_list = {'text': _(u'filenames'), 'view': 'document_type_filename_list', 'args': 'object.id', 'famfam': 'database', 'permissions': [PERMISSION_DOCUMENT_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_edit = {'text': _(u'edit'), 'view': 'document_type_filename_edit', 'args': 'object.id', 'famfam': 'database_edit', 'permissions': [PERMISSION_DOCUMENT_TYPE_EDIT]} document_type_filename_delete = {'text': _(u'delete'), 'view': 'document_type_filename_delete', 'args': 'object.id', 'famfam': 'database_delete', 'permissions': [PERMISSION_DOCUMENT_TYPE_EDIT]} document_type_filename_return_to_document_type = {'text': _(u'return to document type filenames'), 'view': 'document_type_filename_list', 'args': 'object.document_type.id', 'famfam': 'database', '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'] # Register document type links register_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]) 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_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') register_links(['document_type_filename_edit', 'document_type_filename_delete'], [document_type_filename_return_to_document_type], menu_name='sidebar') # Register document links register_links(Document, [document_edit, document_print, document_delete, document_download, document_find_duplicates, document_clear_transformations, document_create_siblings]) register_multi_item_links(['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]) register_links(['document_list_recent', 'document_list', 'document_create', 'document_create_multiple', 'upload_document', 'upload_document_from_local', 'upload_document_from_staging', 'upload_document_from_user_staging', 'document_find_duplicates'], [document_list_recent, document_list, document_create_multiple], menu_name='secondary_menu') # Document page links register_links(DocumentPage, [ document_page_transformation_list, document_page_view,
def create_installation_instance(sender, **kwargs): if kwargs['app'] == 'installation': Installation.objects.get_or_create() register_model_list_columns(PropertyNamespace, [ { 'name': _('Label'), 'attribute': 'label' }, { 'name': _('Items'), 'attribute': encapsulate(lambda entry: len(entry.get_properties())) } ]) register_model_list_columns(Property, [ { 'name': _('Label'), 'attribute': 'label' }, { 'name': _('Value'), 'attribute': 'value' } ]) register_links(PropertyNamespace, [link_namespace_details]) register_links(['installation:namespace_list', PropertyNamespace], [link_namespace_list], menu_name='secondary_menu') register_tool(link_menu_link)
register_model_list_columns(Document, [ { 'name': _('Tags'), 'attribute': encapsulate(lambda x: get_tags_inline_widget_simple(x)) }, ]) register_top_menu('tags', link={ 'text': _('Tags'), 'view': 'tags:tag_list', 'famfam': 'tag_blue' }) register_links(Tag, [tag_tagged_item_list, tag_edit, tag_acl_list, tag_delete]) register_links([Tag], [tag_multiple_delete], menu_name='multi_item_links') register_links([Tag, 'tags:tag_list', 'tags:tag_create'], [tag_list, tag_create], menu_name='secondary_menu') register_links(Document, [tag_document_list], menu_name='form_header') register_links([ 'tags:document_tags', 'tags:tag_remove', 'tags:tag_multiple_remove', 'tags:tag_attach' ], [tag_attach], menu_name='sidebar') register_links(['tags:document_tags'], [single_document_multiple_tag_remove], menu_name='multi_item_links') register_links([Document], [ tag_multiple_attach, multiple_documents_selection_tag_remove, link_spacer
from navigation.api import (register_links, register_top_menu, register_multi_item_links, register_sidebar_template) from .links import (folder_list, folder_create, folder_edit, folder_delete, folder_document_multiple_remove, folder_view, folder_add_document, folder_add_multiple_documents, document_folder_list, folder_acl_list, folders_main_menu_link) from .models import Folder from .permissions import (PERMISSION_FOLDER_CREATE, PERMISSION_FOLDER_EDIT, PERMISSION_FOLDER_DELETE, PERMISSION_FOLDER_REMOVE_DOCUMENT, PERMISSION_FOLDER_VIEW, PERMISSION_FOLDER_ADD_DOCUMENT) register_multi_item_links(['folder_view'], [folder_document_multiple_remove]) register_links(Folder, [folder_view, folder_edit, folder_delete, folder_acl_list]) register_links([Folder, 'folder_list', 'folder_create'], [folder_list, folder_create], menu_name='secondary_menu') register_top_menu(name='folders', link=folders_main_menu_link, children_views=['folder_list', 'folder_create', 'folder_edit', 'folder_delete', 'folder_view', 'folder_document_multiple_remove']) register_links(Document, [document_folder_list], menu_name='form_header') register_sidebar_template(['folder_list'], 'folders_help.html') register_links(['document_folder_list', 'folder_add_document'], [folder_add_document], menu_name="sidebar") register_multi_item_links(['document_find_duplicates', 'folder_view', 'index_instance_node_view', 'document_type_document_list', 'search', 'results', 'document_group_view', 'document_list', 'document_list_recent', 'tag_tagged_item_list'], [folder_add_multiple_documents]) class_permissions(Folder, [ PERMISSION_FOLDER_EDIT,
from acls.api import class_permissions from documents.models import Document from navigation.api import register_links from .links import send_document_link, send_document from .permissions import ( PERMISSION_MAILING_LINK, PERMISSION_MAILING_SEND_DOCUMENT ) register_links([Document], [send_document_link, send_document]) class_permissions(Document, [ PERMISSION_MAILING_LINK, PERMISSION_MAILING_SEND_DOCUMENT ])
from .conf.settings import (AUTO_CREATE_ADMIN, AUTO_ADMIN_USERNAME, AUTO_ADMIN_PASSWORD, TEMPORARY_DIRECTORY) from .conf import settings as common_settings from .utils import validate_path from .models import AutoAdminSingleton def has_usable_password(context): return context['request'].user.has_usable_password password_change_view = {'text': _(u'change password'), 'view': 'password_change_view', 'famfam': 'computer_key', 'condition': has_usable_password} 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'} register_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'} license_view = {'text': _('license'), 'view': 'license_view', 'famfam': 'script'} register_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) @receiver(post_migrate, dispatch_uid='create_superuser') def create_superuser(sender, **kwargs): """ From https://github.com/lambdalisue/django-qwert/blob/master/qwert/autoscript/__init__.py From http://stackoverflow.com/questions/1466827/ --
PERMISSION_COMMENT_CREATE, PERMISSION_COMMENT_DELETE, PERMISSION_COMMENT_VIEW ]) register_model_list_columns(Comment, [{ 'name': _('Date'), 'attribute': 'submit_date' }, { 'name': _('User'), 'attribute': encapsulate(lambda x: x.user.get_full_name() if x.user.get_full_name() else x.user) }, { 'name': _('Comment'), 'attribute': 'comment' }]) register_links([ 'comments:comments_for_document', 'comments:comment_add', 'comments:comment_delete', 'comments:comment_multiple_delete' ], [comment_add], menu_name='sidebar') register_links(Comment, [comment_delete]) register_links(Document, [comments_for_document], menu_name='form_header') ModelAttribute(Document, label=_('Comments'), name='comments', type_name='related')
from __future__ import unicode_literals from navigation.api import register_links from .links import link_tools register_links(['common:current_user_details', 'common:current_user_edit', 'common:current_user_locale_profile_details', 'common:current_user_locale_profile_edit', 'common:password_change_view'], [link_tools], menu_name='secondary_menu')
from __future__ import unicode_literals from hkp import Key as KeyServerKey from navigation.api import register_links from project_setup.api import register_setup from .api import Key from .links import ( key_delete, key_query, key_receive, key_setup, public_keys ) register_links(['django_gpg:key_delete', 'django_gpg:key_public_list', 'django_gpg:key_query'], [public_keys, key_query], menu_name='sidebar') register_links(Key, [key_delete]) register_links(KeyServerKey, [key_receive]) register_setup(key_setup)
from project_tools.api import register_tool from rest_api.classes import APIEndPoint from .links import ( link_document_all_ocr_cleanup, link_document_submit, link_document_submit_multiple, link_entry_delete, link_entry_delete_multiple, link_entry_list, link_entry_re_queue, link_entry_re_queue_multiple ) from .models import DocumentVersionOCRError from .permissions import PERMISSION_OCR_DOCUMENT from .tasks import task_do_ocr logger = logging.getLogger(__name__) register_links(Document, [link_document_submit]) register_links([Document], [link_document_submit_multiple, link_spacer], menu_name='multi_item_links') register_links([DocumentVersionOCRError], [link_entry_re_queue_multiple, link_entry_delete_multiple], menu_name='multi_item_links') register_links([DocumentVersionOCRError], [link_entry_re_queue, link_entry_delete]) register_links(['ocr:entry_list', 'ocr:entry_delete_multiple', 'ocr:entry_re_queue_multiple', DocumentVersionOCRError], [link_entry_list], menu_name='secondary_menu') register_maintenance_links([link_document_all_ocr_cleanup], namespace='ocr', title=_('OCR')) def document_ocr_submit(self): task_do_ocr.apply_async(args=[self.latest_version.pk], queue='ocr') def document_version_ocr_submit(self): task_do_ocr.apply_async(args=[self.pk], queue='ocr')
reminder_participant_remove = { 'text': _(u'remove'), 'view': 'participant_remove', 'args': 'object.pk', 'famfam': 'user_delete', 'permissions': [PERMISSION_REMINDER_EDIT] } reminder_participant_list = { 'text': _(u'participants'), 'view': 'participant_list', 'args': 'object.pk', 'famfam': 'group', 'permissions': [PERMISSION_REMINDER_VIEW] } register_links(['participant_list'], [reminder_participant_add], menu_name='sidebar') register_links([ 'comments_for_object', 'comment_add', 'comment_delete', 'comment_multiple_delete', 'participant_remove', 'reminder_participant_add', 'participant_list', 'future_expired_remider_list', 'future_expired_remider_list_all', 'reminder_view', 'reminder_list_all', 'reminder_edit', 'reminder_edit_days', 'reminder_delete', 'reminder_list', 'expired_remider_list', 'expired_remider_list_all', 'reminder_add', 'reminder_add_days', 'participant_add' ], [ reminder_list, reminder_list_all, expired_remider_list, expired_remider_list_all, future_expired_remider_list, future_expired_remider_list_all, reminder_add, reminder_add_days ],