diff --git a/mayan/apps/appearance/templates/appearance/calculate_form_title.html b/mayan/apps/appearance/templates/appearance/calculate_form_title.html index e27204e32c..da6f1c075a 100644 --- a/mayan/apps/appearance/templates/appearance/calculate_form_title.html +++ b/mayan/apps/appearance/templates/appearance/calculate_form_title.html @@ -1,7 +1,7 @@ {% load i18n %} {% if title %} - {{ title|striptags }} + {{ title }} {% else %} {% if read_only %} {% blocktrans %}Details for: {{ object }}{% endblocktrans %} diff --git a/mayan/apps/document_indexing/apps.py b/mayan/apps/document_indexing/apps.py index aef05f315d..fed0dadcaa 100644 --- a/mayan/apps/document_indexing/apps.py +++ b/mayan/apps/document_indexing/apps.py @@ -29,7 +29,7 @@ from .links import ( link_template_node_create, link_template_node_delete, link_template_node_edit ) -from .widgets import get_breadcrumbs, index_instance_item_link, node_level +from .widgets import get_instance_link, index_instance_item_link, node_level class DocumentIndexingApp(MayanAppConfig): @@ -107,7 +107,7 @@ OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. SourceColumn( source=IndexInstance, label=_('Items'), - func=lambda context: context['object'].get_items_count( + func=lambda context: context['object'].get_item_count( user=context['request'].user ) ) @@ -144,8 +144,8 @@ OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. SourceColumn( source=DocumentIndexInstanceNode, label=_('Node'), - func=lambda context: get_breadcrumbs( - index_instance_node=context['object'], single_link=True, + func=lambda context: get_instance_link( + index_instance_node=context['object'], ) ) SourceColumn( diff --git a/mayan/apps/document_indexing/managers.py b/mayan/apps/document_indexing/managers.py index c389a108c3..4eea5fd87b 100644 --- a/mayan/apps/document_indexing/managers.py +++ b/mayan/apps/document_indexing/managers.py @@ -11,6 +11,11 @@ from documents.models import Document logger = logging.getLogger(__name__) +class DocumentIndexInstanceNodeManager(models.Manager): + def get_for(self, document): + return self.filter(documents=document) + + class IndexManager(models.Manager): def get_by_natural_key(self, name): return self.get(name=name) diff --git a/mayan/apps/document_indexing/models.py b/mayan/apps/document_indexing/models.py index d57100daed..744d94767e 100644 --- a/mayan/apps/document_indexing/models.py +++ b/mayan/apps/document_indexing/models.py @@ -14,7 +14,9 @@ from documents.models import Document, DocumentType from documents.permissions import permission_document_view from permissions import Permission -from .managers import IndexManager, IndexInstanceNodeManager +from .managers import ( + DocumentIndexInstanceNodeManager, IndexManager, IndexInstanceNodeManager +) @python_2_unicode_compatible @@ -88,7 +90,7 @@ class IndexInstance(Index): except IndexInstanceNode.DoesNotExist: return 0 - def get_items_count(self, user): + def get_item_count(self, user): try: return self.instance_root.get_item_count(user=user) except IndexInstanceNode.DoesNotExist: @@ -171,7 +173,7 @@ class IndexInstanceNode(MPTTModel): return self.get_children() def index(self): - return self.index_template_node.index + return IndexInstance.objects.get(pk=self.index_template_node.index.pk) def get_item_count(self, user): if self.index_template_node.link_documents: @@ -188,16 +190,21 @@ class IndexInstanceNode(MPTTModel): else: return self.get_children().count() + def get_full_path(self): + result = [] + for node in self.get_ancestors(include_self=True): + if node.is_root_node(): + result.append(unicode(self.index())) + else: + result.append(unicode(node)) + + return ' / '.join(result) + class Meta: verbose_name = _('Index node instance') verbose_name_plural = _('Indexes node instances') -class DocumentIndexInstanceNodeManager(models.Manager): - def get_for(self, document): - return self.filter(documents=document) - - class DocumentIndexInstanceNode(IndexInstanceNode): objects = DocumentIndexInstanceNodeManager() diff --git a/mayan/apps/document_indexing/tasks.py b/mayan/apps/document_indexing/tasks.py index 5b115d9d35..e6cfe43bc3 100644 --- a/mayan/apps/document_indexing/tasks.py +++ b/mayan/apps/document_indexing/tasks.py @@ -100,7 +100,7 @@ def task_do_rebuild_all_indexes(self): app_label='lock_manager', model_name='Lock' ) - if Lock.check_existing(name__startswith='document_indexing_task_update_index_document'): + if Lock.objects.check_existing(name__startswith='document_indexing_task_update_index_document'): # A document index update is happening, wait raise self.retry() diff --git a/mayan/apps/document_indexing/templates/document_indexing/node_details.html b/mayan/apps/document_indexing/templates/document_indexing/node_details.html new file mode 100644 index 0000000000..9fa2ffee6c --- /dev/null +++ b/mayan/apps/document_indexing/templates/document_indexing/node_details.html @@ -0,0 +1,25 @@ +{% extends 'appearance/base.html' %} + +{% load i18n %} + +{% load navigation_tags %} + +{% block title %}{% include 'appearance/calculate_form_title.html' %}{% endblock %} + +{% block content %} + {% if title %} +