Cleanups, permissions separation into explicit module, absolute import update
This commit is contained in:
@@ -1,31 +1,22 @@
|
||||
from __future__ import absolute_import
|
||||
|
||||
from django.utils.translation import ugettext_lazy as _
|
||||
|
||||
from navigation.api import register_links, register_multi_item_links, \
|
||||
register_sidebar_template
|
||||
from permissions.models import Permission, PermissionNamespace
|
||||
from documents.models import Document, DocumentType
|
||||
from documents.literals import PERMISSION_DOCUMENT_TYPE_EDIT
|
||||
from documents.permissions import PERMISSION_DOCUMENT_TYPE_EDIT
|
||||
from project_setup.api import register_setup
|
||||
from acls.models import class_permissions
|
||||
|
||||
from metadata.models import MetadataType, MetadataSet
|
||||
|
||||
metadata_namespace = PermissionNamespace('metadata', _(u'Metadata'))
|
||||
PERMISSION_METADATA_DOCUMENT_EDIT = Permission.objects.register(metadata_namespace, 'metadata_document_edit', _(u'Edit a document\'s metadata'))
|
||||
PERMISSION_METADATA_DOCUMENT_ADD = Permission.objects.register(metadata_namespace, 'metadata_document_add', _(u'Add metadata to a document'))
|
||||
PERMISSION_METADATA_DOCUMENT_REMOVE = Permission.objects.register(metadata_namespace, 'metadata_document_remove', _(u'Remove metadata from a document'))
|
||||
PERMISSION_METADATA_DOCUMENT_VIEW = Permission.objects.register(metadata_namespace, 'metadata_document_view', _(u'View metadata from a document'))
|
||||
|
||||
metadata_setup_namespace = PermissionNamespace('metadata_setup', _(u'Metadata setup'))
|
||||
PERMISSION_METADATA_TYPE_EDIT = Permission.objects.register(metadata_setup_namespace, 'metadata_type_edit', _(u'Edit metadata types'))
|
||||
PERMISSION_METADATA_TYPE_CREATE = Permission.objects.register(metadata_setup_namespace, 'metadata_type_create', _(u'Create new metadata types'))
|
||||
PERMISSION_METADATA_TYPE_DELETE = Permission.objects.register(metadata_setup_namespace, 'metadata_type_delete', _(u'Delete metadata types'))
|
||||
PERMISSION_METADATA_TYPE_VIEW = Permission.objects.register(metadata_setup_namespace, 'metadata_type_view', _(u'View metadata types'))
|
||||
|
||||
PERMISSION_METADATA_SET_EDIT = Permission.objects.register(metadata_setup_namespace, 'metadata_set_edit', _(u'Edit metadata sets'))
|
||||
PERMISSION_METADATA_SET_CREATE = Permission.objects.register(metadata_setup_namespace, 'metadata_set_create', _(u'Create new metadata sets'))
|
||||
PERMISSION_METADATA_SET_DELETE = Permission.objects.register(metadata_setup_namespace, 'metadata_set_delete', _(u'Delete metadata sets'))
|
||||
PERMISSION_METADATA_SET_VIEW = Permission.objects.register(metadata_setup_namespace, 'metadata_set_view', _(u'View metadata sets'))
|
||||
from .models import MetadataType, MetadataSet
|
||||
from .permissions import (PERMISSION_METADATA_DOCUMENT_EDIT,
|
||||
PERMISSION_METADATA_DOCUMENT_ADD, PERMISSION_METADATA_DOCUMENT_REMOVE,
|
||||
PERMISSION_METADATA_DOCUMENT_VIEW, PERMISSION_METADATA_TYPE_EDIT,
|
||||
PERMISSION_METADATA_TYPE_CREATE, PERMISSION_METADATA_TYPE_DELETE,
|
||||
PERMISSION_METADATA_TYPE_VIEW, PERMISSION_METADATA_SET_EDIT,
|
||||
PERMISSION_METADATA_SET_CREATE, PERMISSION_METADATA_SET_DELETE,
|
||||
PERMISSION_METADATA_SET_VIEW)
|
||||
|
||||
metadata_edit = {'text': _(u'edit metadata'), 'view': 'metadata_edit', 'args': 'object.pk', 'famfam': 'xhtml_go', 'permissions': [PERMISSION_METADATA_DOCUMENT_EDIT]}
|
||||
metadata_view = {'text': _(u'metadata'), 'view': 'metadata_view', 'args': 'object.pk', 'famfam': 'xhtml_go', 'permissions': [PERMISSION_METADATA_DOCUMENT_EDIT], 'children_view_regex': ['metadata']}
|
||||
@@ -47,9 +38,8 @@ setup_metadata_set_create = {'text': _(u'create new'), 'view': 'setup_metadata_s
|
||||
|
||||
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(Document, [metadata_add, metadata_edit, metadata_remove])
|
||||
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') #, metadata_edit, metadata_remove])
|
||||
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])
|
||||
@@ -69,7 +59,6 @@ register_sidebar_template(['setup_metadata_set_list'], 'metadata_set_help.html')
|
||||
register_setup(setup_metadata_type_list)
|
||||
register_setup(setup_metadata_set_list)
|
||||
|
||||
|
||||
class_permissions(Document, [
|
||||
PERMISSION_METADATA_DOCUMENT_EDIT,
|
||||
PERMISSION_METADATA_DOCUMENT_ADD,
|
||||
|
||||
@@ -1,7 +1,9 @@
|
||||
from __future__ import absolute_import
|
||||
|
||||
from django.contrib import admin
|
||||
|
||||
from metadata.models import MetadataType, MetadataSet, MetadataSetItem, \
|
||||
DocumentMetadata, DocumentTypeDefaults
|
||||
from .models import (MetadataType, MetadataSet, MetadataSetItem,
|
||||
DocumentMetadata, DocumentTypeDefaults)
|
||||
|
||||
|
||||
class MetadataTypeAdmin(admin.ModelAdmin):
|
||||
|
||||
@@ -1,14 +1,17 @@
|
||||
"""Metadata handling commonalities"""
|
||||
'''Metadata handling commonalities'''
|
||||
from __future__ import absolute_import
|
||||
|
||||
from urllib import unquote_plus
|
||||
|
||||
from django.shortcuts import get_object_or_404
|
||||
|
||||
from metadata.models import DocumentMetadata, MetadataType
|
||||
from .models import DocumentMetadata, MetadataType
|
||||
|
||||
|
||||
def decode_metadata_from_url(url_dict):
|
||||
"""Parse a URL query string to a list of metadata"""
|
||||
'''
|
||||
Parse a URL query string to a list of metadata
|
||||
'''
|
||||
metadata_dict = {
|
||||
'id': {},
|
||||
'value': {}
|
||||
@@ -32,19 +35,19 @@ def decode_metadata_from_url(url_dict):
|
||||
|
||||
|
||||
def save_metadata_list(metadata_list, document, create=False):
|
||||
"""
|
||||
'''
|
||||
Take a list of metadata dictionaries and associate them to a
|
||||
document
|
||||
"""
|
||||
'''
|
||||
for item in metadata_list:
|
||||
save_metadata(item, document, create)
|
||||
|
||||
|
||||
def save_metadata(metadata_dict, document, create=False):
|
||||
"""
|
||||
'''
|
||||
Take a dictionary of metadata type & value and associate it to a
|
||||
document
|
||||
"""
|
||||
'''
|
||||
if create:
|
||||
# Use matched metadata now to create document metadata
|
||||
document_metadata, created = DocumentMetadata.objects.get_or_create(
|
||||
@@ -78,14 +81,16 @@ def save_metadata(metadata_dict, document, create=False):
|
||||
|
||||
|
||||
def metadata_repr(metadata_list):
|
||||
"""Return a printable representation of a metadata list"""
|
||||
'''
|
||||
Return a printable representation of a metadata list
|
||||
'''
|
||||
return u', '.join(metadata_repr_as_list(metadata_list))
|
||||
|
||||
|
||||
def metadata_repr_as_list(metadata_list):
|
||||
"""
|
||||
'''
|
||||
Turn a list of metadata into a list of printable representations
|
||||
"""
|
||||
'''
|
||||
output = []
|
||||
for metadata_dict in metadata_list:
|
||||
try:
|
||||
@@ -98,7 +103,7 @@ def metadata_repr_as_list(metadata_list):
|
||||
|
||||
|
||||
def get_metadata_string(document):
|
||||
"""
|
||||
'''
|
||||
Return a formated representation of a document's metadata values
|
||||
"""
|
||||
'''
|
||||
return u', '.join([u'%s - %s' % (metadata.metadata_type, metadata.value) for metadata in DocumentMetadata.objects.filter(document=document).select_related('metadata_type')])
|
||||
|
||||
@@ -1,13 +1,13 @@
|
||||
from __future__ import absolute_import
|
||||
|
||||
from django import forms
|
||||
from django.utils.translation import ugettext_lazy as _
|
||||
from django.forms.formsets import formset_factory
|
||||
|
||||
from common.widgets import ScrollableCheckboxSelectMultiple
|
||||
|
||||
from metadata.conf.settings import AVAILABLE_MODELS
|
||||
from metadata.conf.settings import AVAILABLE_FUNCTIONS
|
||||
from metadata.models import MetadataSet, MetadataType, \
|
||||
DocumentTypeDefaults
|
||||
from .conf.settings import (AVAILABLE_MODELS, AVAILABLE_FUNCTIONS)
|
||||
from .models import (MetadataSet, MetadataType, DocumentTypeDefaults)
|
||||
|
||||
|
||||
class MetadataForm(forms.Form):
|
||||
|
||||
@@ -1,10 +1,11 @@
|
||||
from __future__ import absolute_import
|
||||
|
||||
from django.db import models
|
||||
from django.utils.translation import ugettext_lazy as _
|
||||
|
||||
from documents.models import Document, DocumentType
|
||||
|
||||
from metadata.conf.settings import AVAILABLE_MODELS
|
||||
from metadata.conf.settings import AVAILABLE_FUNCTIONS
|
||||
from .conf.settings import (AVAILABLE_MODELS, AVAILABLE_FUNCTIONS)
|
||||
|
||||
available_models_string = (_(u' Available models: %s') % u','.join([name for name, model in AVAILABLE_MODELS.items()])) if AVAILABLE_MODELS else u''
|
||||
available_functions_string = (_(u' Available functions: %s') % u','.join([u'%s()' % name for name, function in AVAILABLE_FUNCTIONS.items()])) if AVAILABLE_FUNCTIONS else u''
|
||||
|
||||
22
apps/metadata/permissions.py
Normal file
22
apps/metadata/permissions.py
Normal file
@@ -0,0 +1,22 @@
|
||||
from __future__ import absolute_import
|
||||
|
||||
from django.utils.translation import ugettext_lazy as _
|
||||
|
||||
from permissions.models import Permission, PermissionNamespace
|
||||
|
||||
metadata_namespace = PermissionNamespace('metadata', _(u'Metadata'))
|
||||
PERMISSION_METADATA_DOCUMENT_EDIT = Permission.objects.register(metadata_namespace, 'metadata_document_edit', _(u'Edit a document\'s metadata'))
|
||||
PERMISSION_METADATA_DOCUMENT_ADD = Permission.objects.register(metadata_namespace, 'metadata_document_add', _(u'Add metadata to a document'))
|
||||
PERMISSION_METADATA_DOCUMENT_REMOVE = Permission.objects.register(metadata_namespace, 'metadata_document_remove', _(u'Remove metadata from a document'))
|
||||
PERMISSION_METADATA_DOCUMENT_VIEW = Permission.objects.register(metadata_namespace, 'metadata_document_view', _(u'View metadata from a document'))
|
||||
|
||||
metadata_setup_namespace = PermissionNamespace('metadata_setup', _(u'Metadata setup'))
|
||||
PERMISSION_METADATA_TYPE_EDIT = Permission.objects.register(metadata_setup_namespace, 'metadata_type_edit', _(u'Edit metadata types'))
|
||||
PERMISSION_METADATA_TYPE_CREATE = Permission.objects.register(metadata_setup_namespace, 'metadata_type_create', _(u'Create new metadata types'))
|
||||
PERMISSION_METADATA_TYPE_DELETE = Permission.objects.register(metadata_setup_namespace, 'metadata_type_delete', _(u'Delete metadata types'))
|
||||
PERMISSION_METADATA_TYPE_VIEW = Permission.objects.register(metadata_setup_namespace, 'metadata_type_view', _(u'View metadata types'))
|
||||
|
||||
PERMISSION_METADATA_SET_EDIT = Permission.objects.register(metadata_setup_namespace, 'metadata_set_edit', _(u'Edit metadata sets'))
|
||||
PERMISSION_METADATA_SET_CREATE = Permission.objects.register(metadata_setup_namespace, 'metadata_set_create', _(u'Create new metadata sets'))
|
||||
PERMISSION_METADATA_SET_DELETE = Permission.objects.register(metadata_setup_namespace, 'metadata_set_delete', _(u'Delete metadata sets'))
|
||||
PERMISSION_METADATA_SET_VIEW = Permission.objects.register(metadata_setup_namespace, 'metadata_set_view', _(u'View metadata sets'))
|
||||
@@ -1,3 +1,5 @@
|
||||
from __future__ import absolute_import
|
||||
|
||||
from django.shortcuts import render_to_response
|
||||
from django.template import RequestContext
|
||||
from django.utils.translation import ugettext_lazy as _
|
||||
@@ -7,7 +9,7 @@ from django.http import HttpResponseRedirect
|
||||
from django.core.urlresolvers import reverse
|
||||
from django.utils.http import urlencode
|
||||
|
||||
from documents.literals import PERMISSION_DOCUMENT_TYPE_EDIT
|
||||
from documents.permissions import PERMISSION_DOCUMENT_TYPE_EDIT
|
||||
from documents.models import Document, RecentDocument, DocumentType
|
||||
from permissions.models import Permission
|
||||
from document_indexing.api import update_indexes, delete_indexes
|
||||
@@ -15,18 +17,18 @@ from document_indexing.api import update_indexes, delete_indexes
|
||||
from common.utils import generate_choices_w_labels, encapsulate
|
||||
from common.views import assign_remove
|
||||
|
||||
from metadata import PERMISSION_METADATA_DOCUMENT_VIEW, \
|
||||
PERMISSION_METADATA_DOCUMENT_EDIT, \
|
||||
PERMISSION_METADATA_DOCUMENT_ADD, PERMISSION_METADATA_DOCUMENT_REMOVE, \
|
||||
PERMISSION_METADATA_TYPE_EDIT, PERMISSION_METADATA_TYPE_CREATE, \
|
||||
PERMISSION_METADATA_TYPE_DELETE, PERMISSION_METADATA_TYPE_VIEW, \
|
||||
PERMISSION_METADATA_SET_EDIT, PERMISSION_METADATA_SET_CREATE, \
|
||||
PERMISSION_METADATA_SET_DELETE, PERMISSION_METADATA_SET_VIEW
|
||||
from metadata.forms import MetadataFormSet, AddMetadataForm, \
|
||||
MetadataRemoveFormSet, MetadataTypeForm, MetadataSetForm
|
||||
from metadata.api import save_metadata_list
|
||||
from metadata.models import DocumentMetadata, MetadataType, MetadataSet, \
|
||||
MetadataSetItem, DocumentTypeDefaults
|
||||
from .permissions import (PERMISSION_METADATA_DOCUMENT_EDIT,
|
||||
PERMISSION_METADATA_DOCUMENT_ADD, PERMISSION_METADATA_DOCUMENT_REMOVE,
|
||||
PERMISSION_METADATA_DOCUMENT_VIEW, PERMISSION_METADATA_TYPE_EDIT,
|
||||
PERMISSION_METADATA_TYPE_CREATE, PERMISSION_METADATA_TYPE_DELETE,
|
||||
PERMISSION_METADATA_TYPE_VIEW, PERMISSION_METADATA_SET_EDIT,
|
||||
PERMISSION_METADATA_SET_CREATE, PERMISSION_METADATA_SET_DELETE,
|
||||
PERMISSION_METADATA_SET_VIEW)
|
||||
from .forms import (MetadataFormSet, AddMetadataForm,
|
||||
MetadataRemoveFormSet, MetadataTypeForm, MetadataSetForm)
|
||||
from .api import save_metadata_list
|
||||
from .models import (DocumentMetadata, MetadataType, MetadataSet,
|
||||
MetadataSetItem, DocumentTypeDefaults)
|
||||
|
||||
|
||||
def metadata_edit(request, document_id=None, document_id_list=None):
|
||||
|
||||
Reference in New Issue
Block a user