diff --git a/mayan/apps/metadata/__init__.py b/mayan/apps/metadata/__init__.py index e272e08929..38178b6878 100644 --- a/mayan/apps/metadata/__init__.py +++ b/mayan/apps/metadata/__init__.py @@ -46,7 +46,13 @@ def post_post_document_type_change_metadata(sender, instance, **kwargs): instance.metadata.create(metadata_type=metadata_type, value=None) +@property +def document_metadata(document): + return document.document_metadata.select_related('metadata_type') + + DocumentType.add_to_class('metadata_type', DocumentTypeMetadataTypeManager.factory) +Document.add_to_class('metadata', document_metadata) 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') diff --git a/mayan/apps/metadata/api.py b/mayan/apps/metadata/api.py index 49f47e4828..8980f651b5 100644 --- a/mayan/apps/metadata/api.py +++ b/mayan/apps/metadata/api.py @@ -105,7 +105,7 @@ 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')]) + return u', '.join([u'%s - %s' % (document_metadata.metadata_type, document_metadata.value) for document_metadata in document.metadata.all()]) def convert_dict_to_dict_list(dictionary): diff --git a/mayan/apps/metadata/models.py b/mayan/apps/metadata/models.py index e7e61b72a3..f20aa48807 100644 --- a/mayan/apps/metadata/models.py +++ b/mayan/apps/metadata/models.py @@ -45,7 +45,7 @@ class DocumentMetadata(models.Model): Link a document to a specific instance of a metadata type with it's current value """ - document = models.ForeignKey(Document, verbose_name=_(u'Document'), related_name='metadata') + document = models.ForeignKey(Document, verbose_name=_(u'Document'), related_name='document_metadata') metadata_type = models.ForeignKey(MetadataType, verbose_name=_(u'Type')) value = models.CharField(max_length=255, blank=True, null=True, verbose_name=_(u'Value'), db_index=True)