internal fileds of a plugin (the ones from __dict__) are automatically visible in...
[myslice.git] / unfold / plugin.py
index c2bca29..278c362 100644 (file)
@@ -16,7 +16,7 @@ from unfold.prelude import Prelude
 # . True : to debug all plugin
 
 DEBUG= False
-#DEBUG= [ 'SliceList' ]
+#DEBUG= [ 'SimpleList' ]
 #DEBUG=True
 
 # decorator to deflect calls on Plugin to its Prelude through self.page.prelude
@@ -80,6 +80,9 @@ class Plugin:
         # do this only once the structure is fine
         self.page.record_plugin(self)
 
+    def __repr__ (self):
+        return "[%s]:%s"%(self.classname,self.domid)
+
     def _py_classname (self): 
         try:    return self.__class__.__name__
         except: return 'Plugin'
@@ -164,7 +167,12 @@ class Plugin:
     def render_content (self, request):
         """Should return an HTML fragment"""
         template = self.template_file()
-        env=self.template_env(request)
+        # start with a fresh one
+        env={}
+        # add our own settings as defaults
+        env.update(self.__dict__)
+        # then the things explicitly defined in template_env()
+        env.update(self.template_env(request))
         if not isinstance (env,dict):
             raise Exception, "%s.template_env returns wrong type"%self.classname
         result=render_to_string (template, env)