Cleanups, permissions separation into explicit module, absolute import update

This commit is contained in:
Roberto Rosario
2012-01-02 03:48:26 -04:00
parent 2781a211ec
commit 34311fb17e
107 changed files with 693 additions and 468 deletions

View File

@@ -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,

View File

@@ -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):

View File

@@ -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')])

View File

@@ -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):

View File

@@ -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''

View 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'))

View File

@@ -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):