Index: main/waeup.ikoba/trunk/src/waeup/ikoba/documents/browser.py
===================================================================
--- main/waeup.ikoba/trunk/src/waeup/ikoba/documents/browser.py	(revision 12226)
+++ main/waeup.ikoba/trunk/src/waeup/ikoba/documents/browser.py	(revision 12227)
@@ -32,4 +32,5 @@
 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.interfaces import MessageFactory as _
@@ -48,5 +49,5 @@
 
 from waeup.ikoba.documents.interfaces import (
-    IDocumentsContainer, IPublicDocument, IDocumentsUtils)
+    IDocumentsContainer, IPublicDocument, IHTMLDocument, IDocumentsUtils)
 
 grok.context(IIkobaObject) # Make IKofaObject the default context
@@ -165,4 +166,25 @@
 
 
+class HTMLDocumentDisplayFormPage(DocumentDisplayFormPage):
+    """ Page to display html document data
+    """
+    grok.context(IHTMLDocument)
+    grok.template('htmldocumentpage')
+
+    @property
+    def form_fields(self):
+        return grok.AutoFields(self.context.form_fields_interface).omit(
+            'html_dict', 'html_multilang')
+
+    @property
+    def html(self):
+        lang = self.request.cookies.get('ikoba.language')
+        html = self.context.html_dict.get(lang,'')
+        if html =='':
+            portal_language = getUtility(IIkobaUtils).PORTAL_LANGUAGE
+            html = self.context.html_dict.get(portal_language,'')
+        return html
+
+
 class DocumentManageFormPage(IkobaEditFormPage,
                             LocalRoleAssignmentUtilityView):
@@ -176,6 +198,6 @@
 
     taboneactions = [_('Save'),_('Cancel')]
-    tabtwoactions1 = [_('Remove selected local roles')]
-    tabtwoactions2 = [_('Add local role')]
+    tabthreeactions1 = [_('Remove selected local roles')]
+    tabthreeactions2 = [_('Add local role')]
 
     deletion_warning = _('Are you sure?')
@@ -204,4 +226,33 @@
     def delLocalRoles(self, **data):
         return del_local_roles(self,2,**data)
+
+
+class HTMLDocumentManageFormPage(DocumentManageFormPage):
+    """ View to manage htmldocument data
+    """
+    grok.context(IHTMLDocument)
+
+    def _html_dict(self):
+        value = getattr(self.context, 'html_multilang', '')
+        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()
+        return
 
 
Index: main/waeup.ikoba/trunk/src/waeup/ikoba/documents/browser_templates/documentmanagepage.pt
===================================================================
--- main/waeup.ikoba/trunk/src/waeup/ikoba/documents/browser_templates/documentmanagepage.pt	(revision 12226)
+++ main/waeup.ikoba/trunk/src/waeup/ikoba/documents/browser_templates/documentmanagepage.pt	(revision 12227)
@@ -4,5 +4,5 @@
   <ul class="tabs nav nav-tabs" data-tabs="tabs">
     <li class="active">
-      <a href="#tab1" data-toggle="tab" i18n:translate="">Settings</a>
+      <a href="#tab1" data-toggle="tab" i18n:translate="">Metadata</a>
     </li>
     <li>
@@ -64,5 +64,5 @@
       <div tal:condition="view/availableActions">
         <span tal:repeat="action view/actions" tal:omit-tag="">
-          <input tal:condition="python:action.label in view.tabtwoactions1"
+          <input tal:condition="python:action.label in view.tabthreeactions1"
                  tal:replace="structure action/render"/>
         </span>
@@ -91,5 +91,5 @@
           <div tal:condition="view/availableActions">
                 <span tal:repeat="action view/actions" tal:omit-tag="">
-                  <input tal:condition="python:action.label in view.tabtwoactions2"
+                  <input tal:condition="python:action.label in view.tabthreeactions2"
                          tal:replace="structure action/render"/>
                 </span>
Index: main/waeup.ikoba/trunk/src/waeup/ikoba/documents/browser_templates/htmldocumentpage.pt
===================================================================
--- main/waeup.ikoba/trunk/src/waeup/ikoba/documents/browser_templates/htmldocumentpage.pt	(revision 12227)
+++ main/waeup.ikoba/trunk/src/waeup/ikoba/documents/browser_templates/htmldocumentpage.pt	(revision 12227)
@@ -0,0 +1,33 @@
+<div class="wfstatus-sub"  i18n:domain="waeup.ikoba">
+  Document State: <span tal:replace="context/translated_state">
+    STATE</span>
+</div>
+
+<div class="workflow">
+  <div tal:repeat="msg context/history/messages">
+    <span tal:replace="msg">MESSAGE</span><br />
+  </div>
+</div>
+
+<table class="form-table" i18n:domain="waeup.ikoba"
+  tal:define="files provider:files">
+  <tbody>
+    <tr>
+      <td i18n:translate="" class="fieldname">
+        Document Type:
+      </td>
+      <td>
+        <span tal:content="context/translated_class_name">CLASSNAME</span>
+      </td>
+    </tr>
+    <tal:widgets content="structure provider:widgets" />
+    <tr>
+      <td i18n:translate="" class="fieldname">
+        Rendered Content:
+      </td>
+      <td>
+        <span tal:content="structure view/html">HTML</span>
+      </td>
+    </tr>
+  </tbody>
+</table>
Index: main/waeup.ikoba/trunk/src/waeup/ikoba/documents/document.py
===================================================================
--- main/waeup.ikoba/trunk/src/waeup/ikoba/documents/document.py	(revision 12226)
+++ main/waeup.ikoba/trunk/src/waeup/ikoba/documents/document.py	(revision 12227)
@@ -153,4 +153,8 @@
     form_fields_interface = IHTMLDocument
 
+    def __init__(self, *args, **kw):
+        super(HTMLDocument, self).__init__(*args, **kw)
+        self.html_dict = None
+
 HTMLDocument = attrs_to_fields(HTMLDocument)
 
Index: main/waeup.ikoba/trunk/src/waeup/ikoba/documents/interfaces.py
===================================================================
--- main/waeup.ikoba/trunk/src/waeup/ikoba/documents/interfaces.py	(revision 12226)
+++ main/waeup.ikoba/trunk/src/waeup/ikoba/documents/interfaces.py	(revision 12227)
@@ -70,4 +70,8 @@
         """
 
+    description = schema.Text(
+        title = _(u'Description'),
+        required = False,
+        )
 
 
@@ -83,4 +87,11 @@
     """
 
+    html_dict = Attribute('Content as language dictionary with values in html format')
+
+    html_multilang = schema.Text(
+        title = _(u'Content in HTML format'),
+        required = False,
+        )
+
 
 class IDocumentsUtils(Interface):
