app/soc/views/helper/widgets.py
changeset 1274 5f87d9807b77
parent 1241 5e25cd6abe09
child 1275 75332102f83b
--- a/app/soc/views/helper/widgets.py	Wed Feb 11 23:57:08 2009 +0000
+++ b/app/soc/views/helper/widgets.py	Wed Feb 11 23:59:41 2009 +0000
@@ -31,6 +31,8 @@
 from django.utils import simplejson
 from django.utils import safestring
 
+from soc.logic import dicts
+
 
 class ReadOnlyInput(forms.widgets.Input):
   """Read only input widget.
@@ -45,7 +47,7 @@
     return super(ReadOnlyInput, self).render(name, value, attrs)
 
 
-class TinyMCE(forms.widgets.Textarea):
+class FullTinyMCE(forms.widgets.Textarea):
   """TinyMCE widget. 
   
   Requires to include tiny_mce_src.js in your template. Widget can be
@@ -94,14 +96,9 @@
       mce_settings: dict with TinyMCE widget settings
       *args, **kwargs:  passed through to parent __init__() constructor
     """
+
     super(forms.widgets.Textarea, self).__init__(*args, **kwargs)
-    
-    # copy the class defaults to an instance data member
-    self.mce_settings = copy.deepcopy(self.DEF_MCE_SETTINGS)
-    
-    if mce_settings:
-      # modify the per-instance settings if called supplied customizations
-      self.mce_settings.update(mce_settings)
+    self.mce_settings = self.DEF_MCE_SETTINGS
   
   def render(self, name, value, attrs=None):
     """Render TinyMCE widget as HTML.
@@ -122,6 +119,19 @@
          'settings_json':  mce_json})
 
 
+class TinyMCE(FullTinyMCE):
+  """Regular version of TinyMce
+  """
+
+  def __init__(self, *args, **kwargs):
+    """
+    """
+
+    super(TinyMCE, self).__init__(*args, **kwargs)
+    keys = ['mode', 'theme', 'theme_advanced_toolbar_location',
+            'theme_advanced_toolbar_align']
+    self.mce_settings = dicts.filter(self.mce_settings, keys)
+
 class ReferenceField(forms.CharField):
   """Widget for selecting a reference to an Entity.
   """