From 76b89dfb36bbf8e47c2f8b8fcc26086c59f2ffd1 Mon Sep 17 00:00:00 2001 From: Roberto Rosario Date: Tue, 11 Sep 2012 05:20:35 -0400 Subject: [PATCH] Finish updating and reenabling metadata app --- apps/icons/literals.py | 8 ++++++++ apps/icons/sets/fat_cow.py | 8 ++++++++ apps/metadata/__init__.py | 4 ---- apps/metadata/api.py | 5 ++++- apps/metadata/forms.py | 2 +- apps/metadata/icons.py | 16 ++++++++++++++++ apps/metadata/links.py | 37 ++++++++++++++++++++----------------- apps/metadata/models.py | 10 ++++++---- apps/metadata/post_init.py | 13 +++++++++++++ apps/metadata/registry.py | 34 +++++++++++++++++++--------------- settings.py | 2 +- urls.py | 2 +- 12 files changed, 97 insertions(+), 44 deletions(-) create mode 100644 apps/metadata/icons.py create mode 100644 apps/metadata/post_init.py diff --git a/apps/icons/literals.py b/apps/icons/literals.py index 278e7a2131..3d85019064 100644 --- a/apps/icons/literals.py +++ b/apps/icons/literals.py @@ -60,6 +60,10 @@ ROUTING_TURNAROUND_RIGHT = 'routing_turnaround_right' SCRIPT = 'script' STORAGE = 'storage' TABLE = 'table' +TABLE_ADD = 'table_add' +TABLE_EDIT = 'table_edit' +TABLE_DELETE = 'table_delete' +TABLE_REFRESH = 'table_refresh' TABLE_RELATIONSHIP = 'table_relationship' TEXT_DROPCAPS = 'text_dropcaps' TEXT_STRIKETHROUGH = 'text_strikethrough' @@ -71,4 +75,8 @@ USER_DELETE = 'user_delete' VCARD = 'vcard' VCARD_EDIT = 'vcard_edit' WRENCH = 'wrench' +XHTML = 'xhtml' +XHTML_GO = 'xhtml_go' +XHTML_ADD = 'xhtml_add' +XHTML_DELETE = 'xhtml_delete' ZOOM = 'zoom' diff --git a/apps/icons/sets/fat_cow.py b/apps/icons/sets/fat_cow.py index b296e40616..308c320eba 100644 --- a/apps/icons/sets/fat_cow.py +++ b/apps/icons/sets/fat_cow.py @@ -59,6 +59,10 @@ DICTIONARY = { SCRIPT: 'script.png', STORAGE: 'storage.png', TABLE: 'table.png', + TABLE_ADD: 'table_add.png', + TABLE_EDIT: 'table_edit.png', + TABLE_DELETE: 'table_delete.png', + TABLE_REFRESH: 'table_refresh.png', TABLE_RELATIONSHIP: 'table_relationship.png', TEXT_DROPCAPS: 'text_dropcaps.png', TEXT_STRIKETHROUGH: 'text_strikethrough.png', @@ -70,5 +74,9 @@ DICTIONARY = { VCARD: 'vcard.png', VCARD_EDIT: 'vcard_edit.png', WRENCH: 'wrench.png', + XHTML: 'xhtml.png', + XHTML_GO: 'xhtml_go.png', + XHTML_ADD: 'xhtml_add.png', + XHTML_DELETE: 'xhtml_delete.png', ZOOM: 'zoom.png', } diff --git a/apps/metadata/__init__.py b/apps/metadata/__init__.py index 8b1c26ebd9..4f7f01bb76 100644 --- a/apps/metadata/__init__.py +++ b/apps/metadata/__init__.py @@ -7,7 +7,6 @@ from common.utils import encapsulate from documents.models import Document, DocumentType from navigation.api import (bind_links, register_sidebar_template, register_model_list_columns, register_multi_item_links) -from project_setup.api import register_setup from .api import get_metadata_string from .links import (metadata_edit, metadata_view, metadata_add, metadata_remove, @@ -40,9 +39,6 @@ metadata_set_setup_views = ['setup_metadata_set_list', 'setup_metadata_set_edit' register_sidebar_template(['setup_metadata_type_list'], 'metadata_type_help.html') 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, diff --git a/apps/metadata/api.py b/apps/metadata/api.py index 49af3e2c0a..d8a747c6a6 100644 --- a/apps/metadata/api.py +++ b/apps/metadata/api.py @@ -1,4 +1,7 @@ -"""Metadata handling commonalities""" +""" +Metadata handling commonalities +""" + from __future__ import absolute_import from urllib import unquote_plus diff --git a/apps/metadata/forms.py b/apps/metadata/forms.py index 290b05f205..50cafb9430 100644 --- a/apps/metadata/forms.py +++ b/apps/metadata/forms.py @@ -6,7 +6,7 @@ from django.forms.formsets import formset_factory from common.widgets import ScrollableCheckboxSelectMultiple -#from .conf.settings import AVAILABLE_MODELS, AVAILABLE_FUNCTIONS +from .settings import AVAILABLE_MODELS, AVAILABLE_FUNCTIONS from .models import MetadataSet, MetadataType, DocumentTypeDefaults diff --git a/apps/metadata/icons.py b/apps/metadata/icons.py new file mode 100644 index 0000000000..4e15986910 --- /dev/null +++ b/apps/metadata/icons.py @@ -0,0 +1,16 @@ +from __future__ import absolute_import + +from icons.literals import (XHTML, XHTML_GO, XHTML_ADD, XHTML_DELETE, TABLE, + TABLE_ADD, TABLE_EDIT, TABLE_DELETE, TABLE_REFRESH) +from icons import Icon + +icon_metadata_view = Icon(XHTML) +icon_metadata_edit = Icon(XHTML_GO) +icon_metadata_add = Icon(XHTML_ADD) +icon_metadata_remove = Icon(XHTML_DELETE) + +icon_metadata_sets = Icon(TABLE) +icon_metadata_set_create = Icon(TABLE_ADD) +icon_metadata_set_edit = Icon(TABLE_EDIT) +icon_metadata_set_delete = Icon(TABLE_DELETE) +icon_metadata_set_members = Icon(TABLE_REFRESH) diff --git a/apps/metadata/links.py b/apps/metadata/links.py index 5e48b1bcff..e80035a53b 100644 --- a/apps/metadata/links.py +++ b/apps/metadata/links.py @@ -13,24 +13,27 @@ from .permissions import (PERMISSION_METADATA_DOCUMENT_EDIT, PERMISSION_METADATA_TYPE_VIEW, PERMISSION_METADATA_SET_EDIT, PERMISSION_METADATA_SET_CREATE, PERMISSION_METADATA_SET_DELETE, PERMISSION_METADATA_SET_VIEW) +from .icons import (icon_metadata_view, icon_metadata_edit, icon_metadata_add, + icon_metadata_remove, icon_metadata_sets, icon_metadata_set_create, + icon_metadata_set_edit, icon_metadata_set_delete, icon_metadata_set_members) -metadata_edit = Link(text=_(u'edit metadata'), view='metadata_edit', args='object.pk', sprite='xhtml_go', permissions=[PERMISSION_METADATA_DOCUMENT_EDIT]) -metadata_view = Link(text=_(u'metadata'), view='metadata_view', args='object.pk', sprite='xhtml_go', permissions=[PERMISSION_METADATA_DOCUMENT_VIEW]) # children_view_regex=['metadata']) -metadata_multiple_edit = Link(text=_(u'edit metadata'), view='metadata_multiple_edit', sprite='xhtml_go', permissions=[PERMISSION_METADATA_DOCUMENT_EDIT]) -metadata_add = Link(text=_(u'add metadata'), view='metadata_add', args='object.pk', sprite='xhtml_add', permissions=[PERMISSION_METADATA_DOCUMENT_ADD]) -metadata_multiple_add = Link(text=_(u'add metadata'), view='metadata_multiple_add', sprite='xhtml_add', permissions=[PERMISSION_METADATA_DOCUMENT_ADD]) -metadata_remove = Link(text=_(u'remove metadata'), view='metadata_remove', args='object.pk', sprite='xhtml_delete', permissions=[PERMISSION_METADATA_DOCUMENT_REMOVE]) -metadata_multiple_remove = Link(text=_(u'remove metadata'), view='metadata_multiple_remove', sprite='xhtml_delete', permissions=[PERMISSION_METADATA_DOCUMENT_REMOVE]) +metadata_view = Link(text=_(u'metadata'), view='metadata_view', args='object.pk', icon=icon_metadata_view, permissions=[PERMISSION_METADATA_DOCUMENT_VIEW]) # children_view_regex=['metadata']) +metadata_edit = Link(text=_(u'edit metadata'), view='metadata_edit', args='object.pk', icon=icon_metadata_edit, permissions=[PERMISSION_METADATA_DOCUMENT_EDIT]) +metadata_multiple_edit = Link(text=_(u'edit metadata'), view='metadata_multiple_edit', icon=icon_metadata_edit, permissions=[PERMISSION_METADATA_DOCUMENT_EDIT]) +metadata_add = Link(text=_(u'add metadata'), view='metadata_add', args='object.pk', icon=icon_metadata_add, permissions=[PERMISSION_METADATA_DOCUMENT_ADD]) +metadata_multiple_add = Link(text=_(u'add metadata'), view='metadata_multiple_add', icon=icon_metadata_add, permissions=[PERMISSION_METADATA_DOCUMENT_ADD]) +metadata_remove = Link(text=_(u'remove metadata'), view='metadata_remove', args='object.pk', icon=icon_metadata_remove, permissions=[PERMISSION_METADATA_DOCUMENT_REMOVE]) +metadata_multiple_remove = Link(text=_(u'remove metadata'), view='metadata_multiple_remove', icon=icon_metadata_remove, permissions=[PERMISSION_METADATA_DOCUMENT_REMOVE]) -setup_metadata_type_list = Link(text=_(u'metadata types'), view='setup_metadata_type_list', sprite='xhtml_go', icon='xhtml.png', permissions=[PERMISSION_METADATA_TYPE_VIEW]) # children_view_regex=[r'setup_metadata_type']) -setup_metadata_type_edit = Link(text=_(u'edit'), view='setup_metadata_type_edit', args='object.pk', sprite='xhtml', permissions=[PERMISSION_METADATA_TYPE_EDIT]) -setup_metadata_type_delete = Link(text=_(u'delete'), view='setup_metadata_type_delete', args='object.pk', sprite='xhtml_delete', permissions=[PERMISSION_METADATA_TYPE_DELETE]) -setup_metadata_type_create = Link(text=_(u'create new'), view='setup_metadata_type_create', sprite='xhtml_add', permissions=[PERMISSION_METADATA_TYPE_CREATE]) +setup_metadata_type_list = Link(text=_(u'metadata types'), view='setup_metadata_type_list', icon=icon_metadata_view, permissions=[PERMISSION_METADATA_TYPE_VIEW]) # children_view_regex=[r'setup_metadata_type']) +setup_metadata_type_edit = Link(text=_(u'edit'), view='setup_metadata_type_edit', args='object.pk', icon=icon_metadata_view, permissions=[PERMISSION_METADATA_TYPE_EDIT]) +setup_metadata_type_delete = Link(text=_(u'delete'), view='setup_metadata_type_delete', args='object.pk', icon=icon_metadata_remove, permissions=[PERMISSION_METADATA_TYPE_DELETE]) +setup_metadata_type_create = Link(text=_(u'create new'), view='setup_metadata_type_create', icon=icon_metadata_add, permissions=[PERMISSION_METADATA_TYPE_CREATE]) -setup_metadata_set_list = Link(text=_(u'metadata sets'), view='setup_metadata_set_list', sprite='table', icon='table.png', permissions=[PERMISSION_METADATA_SET_VIEW]) # children_view_regex=[r'setup_metadata_set']) -setup_metadata_set_edit = Link(text=_(u'edit'), view='setup_metadata_set_edit', args='object.pk', sprite='table_edit', permissions=[PERMISSION_METADATA_SET_EDIT]) -setup_metadata_set_delete = Link(text=_(u'delete'), view='setup_metadata_set_delete', args='object.pk', sprite='table_delete', permissions=[PERMISSION_METADATA_SET_DELETE]) -setup_metadata_set_create = Link(text=_(u'create new'), view='setup_metadata_set_create', sprite='table_add', permissions=[PERMISSION_METADATA_SET_CREATE]) -setup_metadata_set_members = Link(text=_(u'members'), view='setup_metadata_set_members', args='object.pk', sprite='table_refresh', permissions=[PERMISSION_METADATA_SET_EDIT]) +setup_metadata_set_list = Link(text=_(u'metadata sets'), view='setup_metadata_set_list', sprite='table', icon=icon_metadata_sets, permissions=[PERMISSION_METADATA_SET_VIEW]) # children_view_regex=[r'setup_metadata_set']) +setup_metadata_set_edit = Link(text=_(u'edit'), view='setup_metadata_set_edit', args='object.pk', icon=icon_metadata_set_edit, permissions=[PERMISSION_METADATA_SET_EDIT]) +setup_metadata_set_delete = Link(text=_(u'delete'), view='setup_metadata_set_delete', args='object.pk', icon=icon_metadata_set_delete, permissions=[PERMISSION_METADATA_SET_DELETE]) +setup_metadata_set_create = Link(text=_(u'create new'), view='setup_metadata_set_create', icon=icon_metadata_set_create, permissions=[PERMISSION_METADATA_SET_CREATE]) +setup_metadata_set_members = Link(text=_(u'members'), view='setup_metadata_set_members', args='object.pk', icon=icon_metadata_set_members, permissions=[PERMISSION_METADATA_SET_EDIT]) -setup_document_type_metadata = Link(text=_(u'default metadata'), view='setup_document_type_metadata', args='document_type.pk', sprite='xhtml', permissions=[PERMISSION_DOCUMENT_TYPE_EDIT]) +setup_document_type_metadata = Link(text=_(u'default metadata'), view='setup_document_type_metadata', args='document_type.pk', icon=icon_metadata_view, permissions=[PERMISSION_DOCUMENT_TYPE_EDIT]) diff --git a/apps/metadata/models.py b/apps/metadata/models.py index 456ac0376e..4f3f6454d2 100644 --- a/apps/metadata/models.py +++ b/apps/metadata/models.py @@ -7,8 +7,8 @@ from documents.models import Document, DocumentType #from .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'' +#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'' class MetadataType(models.Model): @@ -19,10 +19,12 @@ class MetadataType(models.Model): title = models.CharField(max_length=48, verbose_name=_(u'title'), blank=True, null=True) default = models.CharField(max_length=128, blank=True, null=True, verbose_name=_(u'default'), - help_text=_(u'Enter a string to be evaluated.%s') % available_functions_string) + #help_text=_(u'Enter a string to be evaluated.%s') % available_functions_string) + help_text=_(u'Enter a string to be evaluated.')) lookup = models.CharField(max_length=128, blank=True, null=True, verbose_name=_(u'lookup'), - help_text=_(u'Enter a string to be evaluated. Example: [user.get_full_name() for user in User.objects.all()].%s') % available_models_string) + #help_text=_(u'Enter a string to be evaluated. Example: [user.get_full_name() for user in User.objects.all()].%s') % available_models_string) + help_text=_(u'Enter a string to be evaluated. Example: [user.get_full_name() for user in User.objects.all()].')) #TODO: datatype? def __unicode__(self): diff --git a/apps/metadata/post_init.py b/apps/metadata/post_init.py new file mode 100644 index 0000000000..6c4b8fbb80 --- /dev/null +++ b/apps/metadata/post_init.py @@ -0,0 +1,13 @@ +from __future__ import absolute_import + +from django.utils.translation import ugettext_lazy as _ + +from .settings import (AVAILABLE_MODELS, AVAILABLE_FUNCTIONS) +from .models import MetadataType + +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'' + +def init_set_metadata_type_help_texts(): + MetadataType._meta.get_field('default').help_text=_(u'Enter a string to be evaluated.%s') % available_functions_string + MetadataType._meta.get_field('lookup').help_text=_(u'Enter a string to be evaluated. Example: [user.get_full_name() for user in User.objects.all()].%s') % available_models_string diff --git a/apps/metadata/registry.py b/apps/metadata/registry.py index 59fc9e5ff1..967d35d6e4 100644 --- a/apps/metadata/registry.py +++ b/apps/metadata/registry.py @@ -5,6 +5,8 @@ import datetime from django.utils.translation import ugettext_lazy as _ from django.contrib.auth.models import User +from smart_settings import LocalScope + default_available_functions = { 'current_date': datetime.datetime.now().date, } @@ -13,22 +15,24 @@ default_available_models = { 'User': User } -#from .icons import icon_history_list -#from .links import history_list +from .icons import icon_metadata_view +from .links import setup_metadata_type_list, setup_metadata_set_list label = _(u'Metadata') -#description = _(u'Handles the events registration and event logging.') +description = _(u'Handles document metadata.') dependencies = ['app_registry', 'icons', 'navigation', 'documents', 'permissions', 'acls', 'common'] -#icon = icon_history_list -#tool_links = [history_list] -""" - app.add_setting( - name=u'AVAILABLE_FUNCTIONS', - default=default_available_functions, - ) +icon = icon_metadata_view +settings = [ + { + 'name': 'AVAILABLE_FUNCTIONS', + 'default': default_available_functions, + 'scopes': [LocalScope()] + }, + { + 'name': 'AVAILABLE_MODELS', + 'default': default_available_models, + 'scopes': [LocalScope()] + } +] +setup_links = [setup_metadata_type_list, setup_metadata_set_list] - app.add_setting( - name=u'AVAILABLE_MODELS', - default=default_available_models, - ) -""" diff --git a/settings.py b/settings.py index 51611c4f3f..33df5909fc 100644 --- a/settings.py +++ b/settings.py @@ -179,7 +179,7 @@ INSTALLED_APPS = ( #'document_comments', #'document_signatures', #'linking', - #'metadata', + 'metadata', #'ocr', 'main', #'installation', diff --git a/urls.py b/urls.py index c1c108f317..d32ea4dfbf 100644 --- a/urls.py +++ b/urls.py @@ -19,7 +19,7 @@ urlpatterns = patterns('', #(r'^tags/', include('tags.urls')), #(r'^comments/', include('document_comments.urls')), (r'^user_management/', include('user_management.urls')), - #(r'^metadata/', include('metadata.urls')), + (r'^metadata/', include('metadata.urls')), #(r'^linking/', include('linking.urls')), #(r'^document_indexing/', include('document_indexing.urls')), (r'^history/', include('history.urls')),