from engine.plugin import Plugin
class SimpleList (Plugin) :
+
+ # it would make sense to *not* define any constructor here and let Plugin kick in
+ # however it feels nicer this way as we document the settings used in our own template
+ # plus it's less confusing for any subclass if they can be sure which constructor to call
+ def __init__ (self, list=[], with_datatables=False, **settings):
+ Plugin.__init__ (self, **settings)
+ self.list=list
+ self.with_datatables = with_datatables
+
+ # SimpleList is useless per se anyways
+ def template_file (self): return "simplelist.html"
+
+ def requirements (self):
+ reqs = { 'js_files' : [ "js/plugin.js", "js/query.js",
+ "js/manifold-pubsub.js", "js/simplelist.js" ],
+ 'css_files': [ "css/simplelist.css" ],
+ }
+ if self.with_datatables:
+ reqs['js_files'].append ("datatables/js/dataTables.js")
+ reqs['js_files'].append ("js/with-datatables.js")
+ return reqs
+# for tests
+# 'js_chunks' : "/* a javascript chunk */",
+# 'css_chunks': "/* a css style */ ",
- def render_content (self):
- return """<ul><li>this hard-wired list</li>
-<li>is defined</li>
-<li>in plugins.simplelist.py</li>
-<li>while it should of course</li>
-<li>instead issue a query</li>
-<li>and fill the DOM in js from there</li>
-<li>it would however maybe make sense</li>
-<li>to offer the option to 'datatablify'</li>
-<li>the list from the python code</li>
-<li>just like a standard plugin can be set as visible or not</li>
-<li>IMHO there should be explicit subclasses of SimpleList for slices or testbeds</li>
-</ul>"""
+ def json_settings_list (self): return ['plugin_uuid', 'query','query_uuid','key','value']
+