Index: /main/waeup.ikoba/trunk/src/waeup/ikoba/browser/layout.py
===================================================================
--- /main/waeup.ikoba/trunk/src/waeup/ikoba/browser/layout.py	(revision 12228)
+++ /main/waeup.ikoba/trunk/src/waeup/ikoba/browser/layout.py	(revision 12229)
@@ -201,10 +201,7 @@
             if 'address' in widget.name or \
                 'comment' in widget.name or \
+                'description' in widget.name or \
                 'notice' in widget.name:
-                widget.height = 6
-        if self.widgets.get('transcript_comment'):
-            self.widgets['transcript_comment'].height = 12
-        if self.widgets.get('jamb_subjects'):
-            self.widgets['jamb_subjects'].height = 6
+                widget.height = 3
 
 class IkobaAddFormPage(UtilityView,AddForm):
Index: /main/waeup.ikoba/trunk/src/waeup/ikoba/browser/pages.py
===================================================================
--- /main/waeup.ikoba/trunk/src/waeup/ikoba/browser/pages.py	(revision 12228)
+++ /main/waeup.ikoba/trunk/src/waeup/ikoba/browser/pages.py	(revision 12229)
@@ -42,4 +42,5 @@
 from zope.session.interfaces import ISession
 from zope.password.interfaces import IPasswordManager
+from waeup.ikoba.utils.helpers import html2dict
 from waeup.ikoba.browser.layout import (
     IkobaPage, IkobaForm, IkobaEditFormPage, IkobaAddFormPage,
@@ -60,5 +61,4 @@
 
 from waeup.ikoba.authentication import LocalRoleSetEvent
-from waeup.ikoba.widgets.htmlwidget import HTMLDisplayWidget
 from waeup.ikoba.utils.helpers import get_user_account, check_csv_charset
 from waeup.ikoba.mandates.mandate import PasswordMandate
@@ -723,16 +723,4 @@
 #
 
-class ConfigurationContainerDisplayFormPage(IkobaDisplayFormPage):
-    """View page of the configuration container.
-    """
-    grok.require('waeup.managePortalConfiguration')
-    grok.name('view')
-    grok.context(IConfigurationContainer)
-    pnav = 0
-    label = _(u'View portal configuration')
-    form_fields = grok.AutoFields(IConfigurationContainer)
-    form_fields['frontpage'].custom_widget = HTMLDisplayWidget
-
-
 class ConfigurationContainerManageFormPage(IkobaEditFormPage):
     """Manage page of the configuration container. We always use the
@@ -747,14 +735,10 @@
         'frontpage_dict')
 
-    def _frontpage(self):
-        view = ConfigurationContainerDisplayFormPage(
-            self.context,self.request)
-        view.setUpWidgets()
-        return view.widgets['frontpage']()
-
     @action(_('Save'), style='primary')
     def save(self, **data):
         msave(self, **data)
-        self.context.frontpage_dict = self._frontpage()
+        frontpage = getattr(self.context, 'frontpage', None)
+        portal_language = getUtility(IIkobaUtils).PORTAL_LANGUAGE
+        self.context.frontpage_dict = html2dict(frontpage, portal_language)
         return
 
Index: /main/waeup.ikoba/trunk/src/waeup/ikoba/documents/browser.py
===================================================================
--- /main/waeup.ikoba/trunk/src/waeup/ikoba/documents/browser.py	(revision 12228)
+++ /main/waeup.ikoba/trunk/src/waeup/ikoba/documents/browser.py	(revision 12229)
@@ -32,6 +32,6 @@
 from zope.schema.interfaces import ConstraintNotSatisfied, RequiredMissing
 from zope.formlib.textwidgets import BytesDisplayWidget
-from zope.formlib.widget import renderElement
 from zope.security import checkPermission
+from waeup.ikoba.utils.helpers import html2dict
 from waeup.ikoba.interfaces import MessageFactory as _
 from waeup.ikoba.interfaces import (
@@ -233,27 +233,10 @@
     grok.context(IHTMLDocument)
 
-    def _html_dict(self):
-        value = getattr(self.context, 'html_multilang', None)
-        if not value:
-            return {}
-        parts = value.split('>>')
-        elements = {}
-        lang = getUtility(IIkobaUtils).PORTAL_LANGUAGE
-        for part in parts:
-            if part[2:4] == u'<<':
-                lang = part[0:2].lower()
-                text = part[4:]
-                elements[lang] = renderElement(u'div id="html"',
-                    contents=text)
-            else:
-                text = part
-                elements[lang] = renderElement(u'div id="html"',
-                    contents=text)
-        return elements
-
     @action(_('Save'), style='primary')
     def save(self, **data):
         msave(self, **data)
-        self.context.html_dict = self._html_dict()
+        html_multilang = getattr(self.context, 'html_multilang', None)
+        portal_language = getUtility(IIkobaUtils).PORTAL_LANGUAGE
+        self.context.html_dict = html2dict(html_multilang, portal_language)
         return
 
Index: /main/waeup.ikoba/trunk/src/waeup/ikoba/utils/helpers.py
===================================================================
--- /main/waeup.ikoba/trunk/src/waeup/ikoba/utils/helpers.py	(revision 12228)
+++ /main/waeup.ikoba/trunk/src/waeup/ikoba/utils/helpers.py	(revision 12229)
@@ -39,4 +39,5 @@
 from zope.security.management import getInteraction
 from zope.pluggableauth.interfaces import IAuthenticatorPlugin
+from zope.formlib.widget import renderElement
 
 BUFSIZE = 8 * 1024
@@ -804,2 +805,30 @@
         result[key] = value
     return result
+
+
+def html2dict(value=None,portal_language='en'):
+    """Transforms a localized HTML text string into a dictionary.
+
+    Different languages must be separated by `>>xy<<` whereas
+    xy is the language code. Text parts without correct leading
+    language separator - usually the first part has no language
+    descriptor - are interpreted as texts in the portal's language.
+    The latter can be configured in waeup.srp.utils.utils.IkobaUtils.
+    """
+    try:
+        parts = value.split('>>')
+    except:
+        return {}
+    elements = {}
+    lang = portal_language
+    for part in parts:
+        if part[2:4] == u'<<':
+            lang = part[0:2].lower()
+            text = part[4:]
+            elements[lang] = renderElement(u'div id="html"',
+                contents=text)
+        else:
+            text = part
+            elements[lang] = renderElement(u'div id="html"',
+                contents=text)
+    return elements
Index: in/waeup.ikoba/trunk/src/waeup/ikoba/widgets/htmlwidget.py
===================================================================
--- /main/waeup.ikoba/trunk/src/waeup/ikoba/widgets/htmlwidget.py	(revision 12228)
+++ 	(revision )
@@ -1,58 +1,0 @@
-## $Id$
-##
-## Copyright (C) 2012 Uli Fouquet & Henrik Bettermann
-## This program is free software; you can redistribute it and/or modify
-## it under the terms of the GNU General Public License as published by
-## the Free Software Foundation; either version 2 of the License, or
-## (at your option) any later version.
-##
-## This program is distributed in the hope that it will be useful,
-## but WITHOUT ANY WARRANTY; without even the implied warranty of
-## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-## GNU General Public License for more details.
-##
-## You should have received a copy of the GNU General Public License
-## along with this program; if not, write to the Free Software
-## Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
-##
-"""A widget that renders localized html.
-"""
-from zope.component import getUtility
-from zope.formlib.widget import renderElement, DisplayWidget
-from waeup.ikoba.interfaces import IIkobaUtils
-
-
-class HTMLDisplayWidget(DisplayWidget):
-    """Restructured Text widget.
-    """
-
-    def __call__(self):
-        """The HTMLDisplayWidget transforms an localizez HTML text string into
-        a dictionary.
-
-        Different languages must be separated by `>>xy<<` whereas
-        xy is the language code. Text parts without correct leading
-        language separator - usually the first part has no language
-        descriptor - are interpreted as texts in the portal's language.
-        The latter can be configured in waeup.srp.utils.utils.IkobaUtils.
-        """
-        if self._renderedValueSet():
-            value = self._data
-        else:
-            value = self.context.default
-        if value == self.context.missing_value:
-            return {}
-        parts = value.split('>>')
-        elements = {}
-        lang = getUtility(IIkobaUtils).PORTAL_LANGUAGE
-        for part in parts:
-            if part[2:4] == u'<<':
-                lang = part[0:2].lower()
-                text = part[4:]
-                elements[lang] = renderElement(u'div id="html"',
-                    contents=text)
-            else:
-                text = part
-                elements[lang] = renderElement(u'div id="html"',
-                    contents=text)
-        return elements
