From bc08ada938043ec2f448eddce18777d86d544132 Mon Sep 17 00:00:00 2001 From: Roberto Rosario Date: Mon, 22 Apr 2019 01:16:24 -0400 Subject: [PATCH] Add support for SourceColumn widgets Signed-off-by: Roberto Rosario --- HISTORY.rst | 1 + docs/releases/3.2.rst | 1 + mayan/apps/navigation/classes.py | 7 ++++++- 3 files changed, 8 insertions(+), 1 deletion(-) 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