From: Thierry Parmentelat <thierry.parmentelat@inria.fr>
Date: Tue, 9 Apr 2013 06:43:09 +0000 (+0200)
Subject: default for 'togglable' can be defined on a per-class basis
X-Git-Tag: myslice-0.2-1~171
X-Git-Url: http://git.onelab.eu/?a=commitdiff_plain;h=2d8d2976d8dba26159f42d10152715160c0c1770;p=unfold.git

default for 'togglable' can be defined on a per-class basis
---

diff --git a/unfold/plugin.py b/unfold/plugin.py
index cc2eaeba..f9e1ea41 100644
--- a/unfold/plugin.py
+++ b/unfold/plugin.py
@@ -66,7 +66,7 @@ class Plugin:
     # 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):
+                  visible=True, togglable=None, toggled=None, **settings):
         self.page = page
         self.title=title
         # callers can provide their domid for css'ing 
@@ -75,9 +75,10 @@ class Plugin:
         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)
@@ -250,6 +251,7 @@ class Plugin:
     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>)