From b81db8797a04236ba8ae8f7d76dc55848781acc1 Mon Sep 17 00:00:00 2001 From: legac <renaud.legac@free.fr> Date: Sun, 1 Sep 2013 11:23:37 +0200 Subject: [PATCH] None node can be added in the ViewportModifier. --- models/widgets_viewport.py | 7 ++++++- modules/plugin_dbui/viewportmodifier.py | 22 ++++++++++++++++++---- static/plugin_dbui/CHANGELOG | 1 + 3 files changed, 25 insertions(+), 5 deletions(-) diff --git a/models/widgets_viewport.py b/models/widgets_viewport.py index 8a2986a8..2a84acb8 100644 --- a/models/widgets_viewport.py +++ b/models/widgets_viewport.py @@ -2,6 +2,11 @@ """ widgets viewport """ +# +# the CAS node +# +casNode = None + # # The form node # @@ -48,6 +53,6 @@ reportNode.add_child(T('report_3'), leaf_3) viewportModifier = dbui.ViewportModifier() viewportModifier.append_plugins('pViewportLogin') viewportModifier.configure(logged=True) -viewportModifier.add_node(helpNode, formNode, gridNode, reportNode) +viewportModifier.add_node(helpNode, casNode, formNode, gridNode, reportNode) viewportModifier.default_node(T('Tables'), T('publications')) diff --git a/modules/plugin_dbui/viewportmodifier.py b/modules/plugin_dbui/viewportmodifier.py index c84f2611..15f0af32 100644 --- a/modules/plugin_dbui/viewportmodifier.py +++ b/modules/plugin_dbui/viewportmodifier.py @@ -50,17 +50,31 @@ class ViewportModifier(Modifier): def add_node(self, *args): - """Add L{Node}s to the navigation tree. + """Add a list of L{Node}s to the navigation tree. - @type args: L{Node} + @type args: list of L{Node} @param args: + @note: Elements of the list equal to C{None} are ignored. + This feature is useful when the list of nodes depend on user role. + + @raise ViewportModifierException: at least one element of the list + is not a C{Node} or C{None}. + """ + li = [] for el in args: - if not isinstance(el, Node): + + if isinstance(el, Node): + li.append(el) + + elif el == None: + continue + + else: raise ViewportModifierException(MSG_INVALID_NODE) - self.data.nodes.extend(args) + self.data.nodes.extend(li) def default_node(self, *args): diff --git a/static/plugin_dbui/CHANGELOG b/static/plugin_dbui/CHANGELOG index b37a4b22..814c7d30 100644 --- a/static/plugin_dbui/CHANGELOG +++ b/static/plugin_dbui/CHANGELOG @@ -4,6 +4,7 @@ HEAD - The viewport can open a tab at startup. - Automatic loggout when the page is refreshed and closed. - In the App.GridPanel a new record is inserted after the selected one. + - None node can be added in the ViewportModifier. 0.4.13.2 (Jul 2013) - Table callback _before_delete, _before_insert and _before_update -- GitLab