X-Git-Url: http://git.onelab.eu/?a=blobdiff_plain;f=unfold%2Fplugin.py;h=61af0e078d7732a87db44441a7e77f97bafa417b;hb=ceaa4271ec96d47dc4e8d1eb727d82364a9032aa;hp=e15736de52175233081ad50c9345f247b19e1b66;hpb=18710ca42c0eb6c72ab5ce2449a9676dd6d491bd;p=myslice.git diff --git a/unfold/plugin.py b/unfold/plugin.py index e15736de..61af0e07 100644 --- a/unfold/plugin.py +++ b/unfold/plugin.py @@ -61,6 +61,13 @@ class Plugin: # since domid is the key for storing that data in the browser storage space # .. None : if not passed to __init__ at all, then the default_toggled() method is called # .. : anything else, defaults to True + # . outline_complete: whether the overall plugin (body + toggle buttons/title) needs to receive + # a border and extra space + # . outline_body : same but for the plugin body only + # for these 2 outline_ flags, possible values mimick the above behaviour, i.e.: + # .. True: : outline is on + # .. False: : outline is off + # .. None: : calls default_outline_complete() on the plugin object # #### internal data # . domid: created internally, but can be set at creation time if needed @@ -72,7 +79,9 @@ class Plugin: # which will result in 'foo' being accessible to the template engine # def __init__ (self, page, title=None, domid=None, - visible=True, togglable=None, toggled=None, **settings): + visible=True, togglable=None, toggled=None, + outline_complete=None, outline_body=None, + **settings): self.page = page # callers can provide their domid for css'ing if not domid: domid=self.newdomid() @@ -83,10 +92,14 @@ class Plugin: self.classname=self._py_classname() self.plugin_classname=self._js_classname() self.visible=visible - if togglable is None: self.togglable=self.default_togglable() - else: self.togglable=togglable - if toggled is None: self.toggled=self.default_toggled() - else: self.toggled=toggled + if togglable is None: self.togglable=self.default_togglable() + else: self.togglable=togglable + if toggled is None: self.toggled=self.default_toggled() + else: self.toggled=toggled + if outline_complete is None: self.outline_complete=self.default_outline_complete() + else: self.outline_complete=outline_complete + if outline_body is None: self.outline_body=self.default_outline_body() + else: self.outline_body=outline_body # what comes from subclasses for (k,v) in settings.iteritems(): setattr(self,k,v) @@ -169,14 +182,16 @@ class Plugin: self.need_toggle = False if self.toggled=='persistent': # start with everything turned off and let the js callback do its job - env.update({'persistent_toggle':True,'display_hide_button':False,'display_show_button':False,'display_body':False}) + env.update({'persistent_toggle':True,'display_hide_button':False, + 'display_show_button':False,'display_body':False}) elif self.toggled==False: - env.update({'persistent_toggle':False,'display_hide_button':False,'display_show_button':True,'display_body':False}) + env.update({'persistent_toggle':False,'display_hide_button':False, + 'display_show_button':True,'display_body':False}) else: - env.update({'persistent_toggle':False,'display_hide_button':True,'display_show_button':False,'display_body':True}) + env.update({'persistent_toggle':False,'display_hide_button':True, + 'display_show_button':False,'display_body':True}) if self.need_debug(): print "rendering plugin.html with env keys %s"%env.keys() - print "rendering plugin.html with env" for (k,v) in env.items(): if "display" in k or "persistent" in k: print k,'->',v result = render_to_string ('plugin.html',env) @@ -263,6 +278,8 @@ class Plugin: def default_togglable (self): return False def default_toggled (self): return 'persistent' + def default_outline_complete (self):return False + def default_outline_body(self): return False # # tell the framework about requirements (for the document
) # # the notion of 'Media' in django provides for medium-dependant