Support exclusions from source columns

Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
This commit is contained in:
Roberto Rosario
2019-06-25 00:16:29 -04:00
parent 7562588c42
commit c967a25f82
4 changed files with 15 additions and 5 deletions

View File

@@ -4,3 +4,4 @@
workflow state.
- Sort module.
- Add link to sort individual indexes.
- Support exclusions from source columns.

View File

@@ -106,11 +106,12 @@ class DocumentIndexingApp(MayanAppConfig):
source=Index
)
SourceColumn(
attribute='slug', is_sortable=True, source=Index
attribute='slug', exclude=(IndexInstance,), is_sortable=True,
source=Index
)
SourceColumn(
attribute='enabled', is_sortable=True, source=Index,
widget=TwoStateWidget
attribute='enabled', exclude=(IndexInstance,), is_sortable=True,
source=Index, widget=TwoStateWidget
)
SourceColumn(

View File

@@ -161,7 +161,8 @@ class DocumentStatesApp(MayanAppConfig):
attribute='label', is_sortable=True, source=Workflow
)
SourceColumn(
attribute='internal_name', is_sortable=True, source=Workflow
attribute='internal_name', exclude=(WorkflowRuntimeProxy,),
is_sortable=True, source=Workflow
)
SourceColumn(
attribute='get_initial_state', empty_value=_('None'),

View File

@@ -1,5 +1,6 @@
from __future__ import unicode_literals
import copy
import inspect
import logging
@@ -615,6 +616,11 @@ class SourceColumn(object):
except (AttributeError, KeyError, IndexError):
pass
columns = copy.copy(columns)
for column in columns:
if source in column.exclude or source.__class__ in column.exclude or source._meta.model in column.exclude:
columns.remove(column)
columns = SourceColumn.sort(columns=columns)
if exclude_identifier:
@@ -654,7 +660,7 @@ class SourceColumn(object):
return final_result
def __init__(
self, source, attribute=None, empty_value=None, func=None,
self, source, attribute=None, empty_value=None, exclude=None, func=None,
include_label=False, is_attribute_absolute_url=False,
is_object_absolute_url=False, is_identifier=False, is_sortable=False,
kwargs=None, label=None, order=None, sort_field=None, views=None,
@@ -664,6 +670,7 @@ class SourceColumn(object):
self._label = label
self.attribute = attribute
self.empty_value = empty_value
self.exclude = exclude or ()
self.func = func
self.is_attribute_absolute_url = is_attribute_absolute_url
self.is_object_absolute_url = is_object_absolute_url