# p=Plugin(foo='bar')
# which will result in 'foo' being accessible to the template engine
#
- def __init__ (self, page, title, domid=None,
- visible=True, togglable=True, toggled=None, **settings):
+ def __init__ (self, page, title=None, domid=None,
+ visible=True, togglable=None, toggled=None, **settings):
self.page = page
- self.title=title
# callers can provide their domid for css'ing
if not domid: domid=Plugin.newdomid()
self.domid=domid
+ # title is shown when togglable
+ if not title: title="Plugin title for %s"%domid
+ self.title=title
self.classname=self._py_classname()
self.plugin_classname=self._js_classname()
self.visible=visible
- self.togglable=togglable
- if toggled is not None: self.toggled=toggled
- else: self.toggled=self.default_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
# what comes from subclasses
for (k,v) in settings.iteritems():
setattr(self,k,v)
self.need_spin=self.start_with_spin()
env.update(self.__dict__)
# translate high-level 'toggled' into 4 different booleans
- print "domid",self.domid,"toggled",self.toggled
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})
def template_file (self): return "undefined_template"
def template_env (self, request): return {}
+ def default_togglable (self): return True
def default_toggled (self): return 'persistent'
# # tell the framework about requirements (for the document <header>)