Exemplo n.º 1
0
    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",
Exemplo n.º 2
0
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])
Exemplo n.º 3
0
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')
Exemplo n.º 4
0
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)
Exemplo n.º 5
0
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)
Exemplo n.º 6
0
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,
Exemplo n.º 7
0
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')
Exemplo n.º 8
0
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)
Exemplo n.º 9
0

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()
Exemplo n.º 10
0
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
Exemplo n.º 11
0
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:
Exemplo n.º 12
0
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],
Exemplo n.º 13
0
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',
Exemplo n.º 14
0
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])
Exemplo n.º 15
0
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],
Exemplo n.º 16
0
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')
Exemplo n.º 17
0
        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',
Exemplo n.º 18
0
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()
Exemplo n.º 19
0
        '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,
])
Exemplo n.º 20
0
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')
Exemplo n.º 21
0
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')
Exemplo n.º 22
0
    '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(
Exemplo n.º 23
0
                            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, [
Exemplo n.º 24
0
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,
Exemplo n.º 25
0
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')
Exemplo n.º 26
0
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()
Exemplo n.º 27
0
    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",
Exemplo n.º 28
0
        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,
])
Exemplo n.º 29
0
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])
Exemplo n.º 30
0
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,
Exemplo n.º 31
0
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'
Exemplo n.º 32
0
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')
Exemplo n.º 33
0
}

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):
Exemplo n.º 34
0
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')
Exemplo n.º 35
0
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])
Exemplo n.º 36
0
    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])
Exemplo n.º 37
0
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()
Exemplo n.º 38
0
                    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
Exemplo n.º 39
0
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')
Exemplo n.º 40
0
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'
]
Exemplo n.º 41
0
    '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')
Exemplo n.º 42
0
    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.)
Exemplo n.º 43
0
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)
Exemplo n.º 44
0
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')
Exemplo n.º 45
0
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])
Exemplo n.º 46
0
    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],
Exemplo n.º 47
0
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)
Exemplo n.º 48
0
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)

Exemplo n.º 49
0
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,
Exemplo n.º 50
0
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)
Exemplo n.º 51
0
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
Exemplo n.º 52
0
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,
Exemplo n.º 53
0
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
])
Exemplo n.º 54
0
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/ --
Exemplo n.º 55
0
    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')
Exemplo n.º 56
0
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')
Exemplo n.º 57
0
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)
Exemplo n.º 58
0
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')
Exemplo n.º 59
0
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
],