Update the index information colums to show the
total number of documents and nodes contained in a level. Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
This commit is contained in:
@@ -86,8 +86,16 @@ class DocumentIndexingApp(MayanAppConfig):
|
|||||||
)
|
)
|
||||||
|
|
||||||
SourceColumn(
|
SourceColumn(
|
||||||
source=IndexInstance, label=_('Items'),
|
source=IndexInstance, label=_('Total nodes'),
|
||||||
func=lambda context: context['object'].get_item_count(
|
func=lambda context: context[
|
||||||
|
'object'
|
||||||
|
].instance_root.get_descendants_count()
|
||||||
|
)
|
||||||
|
SourceColumn(
|
||||||
|
source=IndexInstance, label=_('Total documents'),
|
||||||
|
func=lambda context: context[
|
||||||
|
'object'
|
||||||
|
].instance_root.get_descendants_document_count(
|
||||||
user=context['request'].user
|
user=context['request'].user
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
@@ -116,8 +124,14 @@ class DocumentIndexingApp(MayanAppConfig):
|
|||||||
func=lambda context: index_instance_item_link(context['object'])
|
func=lambda context: index_instance_item_link(context['object'])
|
||||||
)
|
)
|
||||||
SourceColumn(
|
SourceColumn(
|
||||||
source=IndexInstanceNode, label=_('Items'),
|
source=IndexInstanceNode, label=_('Nodes'),
|
||||||
func=lambda context: context['object'].get_item_count(
|
func=lambda context: context['object'].get_descendants_count()
|
||||||
|
)
|
||||||
|
SourceColumn(
|
||||||
|
source=IndexInstanceNode, label=_('Documents'),
|
||||||
|
func=lambda context: context[
|
||||||
|
'object'
|
||||||
|
].get_descendants_document_count(
|
||||||
user=context['request'].user
|
user=context['request'].user
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
@@ -129,8 +143,14 @@ class DocumentIndexingApp(MayanAppConfig):
|
|||||||
)
|
)
|
||||||
)
|
)
|
||||||
SourceColumn(
|
SourceColumn(
|
||||||
source=DocumentIndexInstanceNode, label=_('Items'),
|
source=DocumentIndexInstanceNode, label=_('Nodes'),
|
||||||
func=lambda context: context['object'].get_item_count(
|
func=lambda context: context['object'].get_descendants_count()
|
||||||
|
)
|
||||||
|
SourceColumn(
|
||||||
|
source=DocumentIndexInstanceNode, label=_('Documents'),
|
||||||
|
func=lambda context: context[
|
||||||
|
'object'
|
||||||
|
].get_descendants_document_count(
|
||||||
user=context['request'].user
|
user=context['request'].user
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
|
|||||||
@@ -308,8 +308,21 @@ class IndexInstanceNode(MPTTModel):
|
|||||||
# Convenience method for serializer
|
# Convenience method for serializer
|
||||||
return self.get_children()
|
return self.get_children()
|
||||||
|
|
||||||
def index(self):
|
def get_children_count(self):
|
||||||
return IndexInstance.objects.get(pk=self.index_template_node.index.pk)
|
return self.get_children().count()
|
||||||
|
|
||||||
|
def get_descendants_count(self):
|
||||||
|
return self.get_descendants().count()
|
||||||
|
|
||||||
|
def get_descendants_document_count(self, user):
|
||||||
|
return AccessControlList.objects.filter_by_access(
|
||||||
|
permission=permission_document_view, user=user,
|
||||||
|
queryset=Document.objects.filter(
|
||||||
|
index_instance_nodes__in=self.get_descendants(
|
||||||
|
include_self=True
|
||||||
|
)
|
||||||
|
)
|
||||||
|
).count()
|
||||||
|
|
||||||
def get_item_count(self, user):
|
def get_item_count(self, user):
|
||||||
if self.index_template_node.link_documents:
|
if self.index_template_node.link_documents:
|
||||||
@@ -356,6 +369,9 @@ class IndexInstanceNode(MPTTModel):
|
|||||||
if acquire_lock:
|
if acquire_lock:
|
||||||
lock.release()
|
lock.release()
|
||||||
|
|
||||||
|
def index(self):
|
||||||
|
return IndexInstance.objects.get(pk=self.index_template_node.index.pk)
|
||||||
|
|
||||||
def remove_document(self, document, acquire_lock=True):
|
def remove_document(self, document, acquire_lock=True):
|
||||||
"""
|
"""
|
||||||
The argument `acquire_lock` controls whether or not this method
|
The argument `acquire_lock` controls whether or not this method
|
||||||
|
|||||||
@@ -65,23 +65,20 @@ def node_tree(node, user):
|
|||||||
for ancestor in node.get_ancestors(include_self=True):
|
for ancestor in node.get_ancestors(include_self=True):
|
||||||
if ancestor.is_root_node():
|
if ancestor.is_root_node():
|
||||||
element = node.index()
|
element = node.index()
|
||||||
level = 0
|
|
||||||
icon = 'fa fa-list-ul'
|
icon = 'fa fa-list-ul'
|
||||||
else:
|
else:
|
||||||
element = ancestor
|
element = ancestor
|
||||||
level = element.get_level()
|
|
||||||
if element.index_template_node.link_documents:
|
if element.index_template_node.link_documents:
|
||||||
icon = 'fa fa-folder'
|
icon = 'fa fa-folder'
|
||||||
else:
|
else:
|
||||||
icon = 'fa fa-level-up fa-rotate-90'
|
icon = 'fa fa-level-up fa-rotate-90'
|
||||||
|
|
||||||
result.append(
|
result.append(
|
||||||
'<a href="{url}" class="list-group-item {active}"><span class="badge">{count}</span><i class="{icon}"></i>{space} {text}</a>'.format(
|
'<a href="{url}" class="list-group-item {active}"><span class="badge">{count}</span><i class="{icon}"></i> {text}</a>'.format(
|
||||||
url=element.get_absolute_url(),
|
url=element.get_absolute_url(),
|
||||||
active='active' if element == node or node.get_ancestors(include_self=True).count() == 1 else '',
|
active='active' if element == node or node.get_ancestors(include_self=True).count() == 1 else '',
|
||||||
count=element.get_item_count(user=user),
|
count=element.get_item_count(user=user),
|
||||||
icon=icon,
|
icon=icon,
|
||||||
space=' ' * level,
|
|
||||||
text=escape(element)
|
text=escape(element)
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
|
|||||||
Reference in New Issue
Block a user