Split search field registration to their respective apps

This commit is contained in:
Roberto Rosario
2015-06-24 15:19:51 -04:00
parent 579b369d07
commit e9282132e5
6 changed files with 26 additions and 16 deletions

View File

@@ -18,7 +18,7 @@ from django.views.generic.detail import SingleObjectMixin
from django.views.generic.edit import CreateView, DeleteView, UpdateView
from django.views.generic.list import ListView
from dynamic_search.classes import SearchModel
from documents.search import document_search
from .api import tools
from .classes import MissingItem
@@ -195,7 +195,7 @@ class HomeView(TemplateView):
def get(self, request, *args, **kwargs):
context = self.get_context_data(**kwargs)
queryset, ids, timedelta = SearchModel.get('documents.Document').search(request.GET, request.user)
queryset, ids, timedelta = document_search.search(request.GET, request.user)
# Update the context with the search results
context.update({

View File

@@ -22,7 +22,6 @@ from converter.permissions import (
PERMISSION_TRANSFORMATION_DELETE, PERMISSION_TRANSFORMATION_EDIT,
PERMISSION_TRANSFORMATION_VIEW,
)
from dynamic_search.classes import SearchModel
from events.permissions import PERMISSION_EVENTS_VIEW
from navigation import SourceColumn
from rest_api.classes import APIEndPoint
@@ -99,19 +98,6 @@ class DocumentsApp(MayanAppConfig):
PERMISSION_TRANSFORMATION_VIEW,
])
document_search = SearchModel('documents', 'Document', permission=PERMISSION_DOCUMENT_VIEW, serializer_string='documents.serializers.DocumentSerializer')
# TODO: move these to their respective apps
# Moving these to other apps cause an ImportError; circular import?
document_search.add_model_field('document_type__name', label=_('Document type'))
document_search.add_model_field('versions__mimetype', label=_('MIME type'))
document_search.add_model_field('label', label=_('Label'))
document_search.add_model_field('metadata__metadata_type__name', label=_('Metadata type'))
document_search.add_model_field('metadata__value', label=_('Metadata value'))
document_search.add_model_field('versions__pages__ocr_content__content', label=_('Content'))
document_search.add_model_field('description', label=_('Description'))
document_search.add_model_field('tags__label', label=_('Tags'))
menu_front_page.bind_links(links=[link_document_list_recent, link_document_list])
menu_setup.bind_links(links=[link_document_type_setup])

View File

@@ -0,0 +1,14 @@
from __future__ import absolute_import, unicode_literals
from django.utils.translation import ugettext_lazy as _
from dynamic_search.classes import SearchModel
from .permissions import PERMISSION_DOCUMENT_VIEW
document_search = SearchModel('documents', 'Document', permission=PERMISSION_DOCUMENT_VIEW, serializer_string='documents.serializers.DocumentSerializer')
document_search.add_model_field(field='document_type__name', label=_('Document type'))
document_search.add_model_field(field='versions__mimetype', label=_('MIME type'))
document_search.add_model_field(field='label', label=_('Label'))
document_search.add_model_field(field='description', label=_('Description'))

View File

@@ -13,6 +13,7 @@ from common import (
from common.classes import ModelAttribute
from common.utils import encapsulate
from documents.models import Document, DocumentType
from documents.search import document_search
from documents.signals import post_document_type_change
from navigation import SourceColumn
from rest_api.classes import APIEndPoint
@@ -64,6 +65,9 @@ class MetadataApp(MayanAppConfig):
PERMISSION_METADATA_DOCUMENT_REMOVE, PERMISSION_METADATA_DOCUMENT_VIEW,
])
document_search.add_model_field(field='metadata__metadata_type__name', label=_('Metadata type'))
document_search.add_model_field(field='metadata__value', label=_('Metadata value'))
menu_facet.bind_links(links=[link_metadata_view], sources=[Document])
menu_multi_item.bind_links(links=[link_metadata_multiple_add, link_metadata_multiple_edit, link_metadata_multiple_remove], sources=[Document])
menu_object.bind_links(links=[link_setup_document_type_metadata, link_setup_document_type_metadata_required], sources=[DocumentType])

View File

@@ -13,6 +13,7 @@ from common import (
)
from common.utils import encapsulate
from documents.models import Document, DocumentType, DocumentVersion
from documents.search import document_search
from documents.signals import post_version_upload
from documents.widgets import document_link
from installation import PropertyNamespace
@@ -67,6 +68,8 @@ class OCRApp(MayanAppConfig):
]
)
document_search.add_model_field(field='versions__pages__ocr_content__content', label=_('Content'))
menu_facet.bind_links(links=[link_document_content], sources=[Document])
menu_multi_item.bind_links(links=[link_document_submit_multiple], sources=[Document])
menu_multi_item.bind_links(links=[link_entry_re_queue_multiple, link_entry_delete_multiple], sources=[DocumentVersionOCRError])

View File

@@ -9,6 +9,7 @@ from common import (
)
from common.utils import encapsulate
from documents.models import Document
from documents.search import document_search
from navigation import CombinedSource, SourceColumn
from rest_api.classes import APIEndPoint
@@ -47,6 +48,8 @@ class TagsApp(MayanAppConfig):
PERMISSION_TAG_DELETE, PERMISSION_TAG_EDIT, PERMISSION_TAG_VIEW,
])
document_search.add_model_field(field='tags__label', label=_('Tags'))
menu_facet.bind_links(links=[link_tag_document_list], sources=[Document])
menu_main.bind_links(links=[link_tag_list])
menu_multi_item.bind_links(links=[link_multiple_documents_attach_tag, link_multiple_documents_tag_remove], sources=[Document])