Split search field registration to their respective apps
This commit is contained in:
@@ -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({
|
||||
|
||||
@@ -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])
|
||||
|
||||
|
||||
14
mayan/apps/documents/search.py
Normal file
14
mayan/apps/documents/search.py
Normal 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'))
|
||||
@@ -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])
|
||||
|
||||
@@ -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])
|
||||
|
||||
@@ -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])
|
||||
|
||||
Reference in New Issue
Block a user