diff --git a/HISTORY.rst b/HISTORY.rst index c181726d98..148400367c 100644 --- a/HISTORY.rst +++ b/HISTORY.rst @@ -102,6 +102,7 @@ * Improve partial navigation error messages and display. * Add user created and user edited events. * Add group created and group edited events. +* Add support for SourceColumn widgets. 3.1.11 (2019-04-XX) =================== diff --git a/docs/releases/3.2.rst b/docs/releases/3.2.rst index 7c8e81f877..feb3b89caf 100644 --- a/docs/releases/3.2.rst +++ b/docs/releases/3.2.rst @@ -134,6 +134,7 @@ Other changes * Improve partial navigation error messages and display. * Add user created and user edited events. * Add group created and group edited events. +* Add support for SourceColumn widgets. Removals -------- diff --git a/mayan/apps/navigation/classes.py b/mayan/apps/navigation/classes.py index a8f95d7ef2..cbf60fe7cc 100644 --- a/mayan/apps/navigation/classes.py +++ b/mayan/apps/navigation/classes.py @@ -536,7 +536,7 @@ class SourceColumn(object): # unhashable type: list return () - def __init__(self, source, label=None, attribute=None, func=None, order=None): + def __init__(self, source, label=None, attribute=None, func=None, order=None, widget=None): self.source = source self._label = label self.attribute = attribute @@ -544,6 +544,7 @@ class SourceColumn(object): self.order = order or 0 self.__class__._registry.setdefault(source, []) self.__class__._registry[source].append(self) + self.widget = widget @property def label(self): @@ -564,6 +565,10 @@ class SourceColumn(object): elif self.func: result = self.func(context=context) + if self.widget: + widget_instance = self.widget() + return widget_instance.render(name=self.attribute, value=result) + return result