A first stab at the ‘validatebutton’ plugin
[unfold.git] / plugins / validatebutton / __init__.py
1 from unfold.plugin import Plugin
2
3 class ValidateButton (Plugin):
4
5     """This plugin is designed to work together with topmenu.
6     
7 It will check to see if user has PI rights at least on one authority, 
8 and if so will enable corresponding button in topmenu.
9
10 A realistic example would have incoming query as
11
12 Query.get('ple:user').filter_by('user_hrn', '==', '$user_hrn').select('pi_authorities')
13
14 """
15
16     def __init__ (self, query=None, button_domid=None, **settings):
17         Plugin.__init__ (self, **settings)
18         # set defaults
19         if query is None: 
20             query = Query.get('ple:user').filter_by('user_hrn', '==', '$user_hrn').select('pi_authorities')
21         if button_domid is None: button_domid="topmenu-validate"
22         self.query=query
23         self.button_domid=button_domid
24
25     # this does not have any materialization
26     def render_content (self, request):
27         return ""
28     
29     def requirements (self):
30         return { 'js_files': [ 'js/validatebutton.js', 'js/manifold-query.js', ], }
31
32     def json_settings_list (self):
33         return [ 'query_uuid', 'button_domid', ]