A first stab at the ‘validatebutton’ plugin
[myslice.git] / plugins / validatebutton / __init__.py
diff --git a/plugins/validatebutton/__init__.py b/plugins/validatebutton/__init__.py
new file mode 100644 (file)
index 0000000..ab143fc
--- /dev/null
@@ -0,0 +1,33 @@
+from unfold.plugin import Plugin
+
+class ValidateButton (Plugin):
+
+    """This plugin is designed to work together with topmenu.
+    
+It will check to see if user has PI rights at least on one authority, 
+and if so will enable corresponding button in topmenu.
+
+A realistic example would have incoming query as
+
+Query.get('ple:user').filter_by('user_hrn', '==', '$user_hrn').select('pi_authorities')
+
+"""
+
+    def __init__ (self, query=None, button_domid=None, **settings):
+        Plugin.__init__ (self, **settings)
+        # set defaults
+        if query is None: 
+            query = Query.get('ple:user').filter_by('user_hrn', '==', '$user_hrn').select('pi_authorities')
+        if button_domid is None: button_domid="topmenu-validate"
+        self.query=query
+        self.button_domid=button_domid
+
+    # this does not have any materialization
+    def render_content (self, request):
+        return ""
+    
+    def requirements (self):
+        return { 'js_files': [ 'js/validatebutton.js', 'js/manifold-query.js', ], }
+
+    def json_settings_list (self):
+        return [ 'query_uuid', 'button_domid', ]