X-Git-Url: http://git.onelab.eu/?a=blobdiff_plain;f=engine%2Fplugin.py;h=36d60dfc9b29a4ca1ab2d45561332696d0c7bb8a;hb=df482c9a6212b2b7134e8130358d213562b9df44;hp=2088c2702254086043f239543c281e7450268edd;hpb=6c8063e1fcffee77e26340ec6c5143d434c2306a;p=unfold.git diff --git a/engine/plugin.py b/engine/plugin.py index 2088c270..36d60dfc 100644 --- a/engine/plugin.py +++ b/engine/plugin.py @@ -118,10 +118,14 @@ class Plugin: return result # as a first approximation, only plugins that are associated with a query - # need to be prepared for js - others just get displayed and that's it - def is_asynchroneous (self): + # need to be prepared for js - meaning their json settings get exposed to js + # others just get displayed and that's it + def export_json_settings (self): return 'query' in self.__dict__ + def start_with_spin (self): + return self.export_json_settings() + # returns the html code for that plugin # in essence, wraps the results of self.render_content () def render (self, request): @@ -130,11 +134,13 @@ class Plugin: # shove this into plugin.html env = {} env ['plugin_content']= plugin_content + # need_spin is used in plugin.html + self.need_spin=self.start_with_spin() env.update(self.__dict__) result = render_to_string ('plugin.html',env) # export this only for relevant plugins - if self.is_asynchroneous(): + if self.export_json_settings(): env ['settings_json' ] = self.settings_json() # compute plugin-specific initialization js_init = render_to_string ( 'plugin-setenv.js', env ) @@ -232,5 +238,13 @@ class Plugin: # also 'query_uuid' gets replaced with query.uuid def json_settings_list (self): return ['json_settings_list-must-be-redefined'] - # might also define this one; see e.g. slicelist.py that piggybacks simplelist js code - # def plugin_classname (self): + # might also define these ones: + # + # see e.g. slicelist.py that piggybacks simplelist js code + # def plugin_classname (self) + # + # whether we export the json settings to js + # def export_json_settings (self) + # + # whether we show an initial spinner + # def start_with_spin (self)