Index: /main/waeup.kofa/trunk/docs/source/userdocs/applicants/workflow.rst
===================================================================
--- /main/waeup.kofa/trunk/docs/source/userdocs/applicants/workflow.rst	(revision 13143)
+++ /main/waeup.kofa/trunk/docs/source/userdocs/applicants/workflow.rst	(revision 13144)
@@ -63,5 +63,5 @@
 ===================
 
-All transitions are automatically logged in applicants.log and the
+All transitions are automatically logged in ``applicants.log`` and the
 applicant's history. And also the import of workflow states is
 recorded in the logfile and the history, see :ref:`student_history`
Index: /main/waeup.kofa/trunk/docs/source/userdocs/datacenter/export.rst
===================================================================
--- /main/waeup.kofa/trunk/docs/source/userdocs/datacenter/export.rst	(revision 13143)
+++ /main/waeup.kofa/trunk/docs/source/userdocs/datacenter/export.rst	(revision 13144)
@@ -125,4 +125,11 @@
   .. autoattribute:: waeup.kofa.hostels.export.BedExporter.title
 
+Document Exporter
+-----------------
+
+.. autoclass:: waeup.kofa.documents.export.DocumentExporterBase()
+
+  .. automethod:: waeup.kofa.documents.export.DocumentExporterBase.mangle_value()
+
 Application Data Exporters
 ==========================
Index: /main/waeup.kofa/trunk/docs/source/userdocs/datacenter/import_processors.rst
===================================================================
--- /main/waeup.kofa/trunk/docs/source/userdocs/datacenter/import_processors.rst	(revision 13143)
+++ /main/waeup.kofa/trunk/docs/source/userdocs/datacenter/import_processors.rst	(revision 13144)
@@ -88,4 +88,10 @@
   :noindex:
 
+Document Processor
+------------------
+
+.. autoclass:: waeup.kofa.documents.batching.DocumentProcessorBase()
+  :noindex:
+
 Application Data Processors
 ===========================
Index: /main/waeup.kofa/trunk/docs/source/userdocs/documents.rst
===================================================================
--- /main/waeup.kofa/trunk/docs/source/userdocs/documents.rst	(revision 13143)
+++ /main/waeup.kofa/trunk/docs/source/userdocs/documents.rst	(revision 13144)
@@ -4,7 +4,14 @@
 ***********************************
 
-The documents section of Kofa is a tiny built-in content management system (CMS), which has been developed mainly for publishing announcements, adverts, instructions or general information provided by the university to inform prospective students about application and registration procedures.
+The documents section of Kofa is a tiny built-in content management
+system (CMS), which has been developed mainly for publishing
+announcements, adverts, instructions or general information provided
+by the university to inform prospective students about application
+and registration procedures.
 
-Technically speaking, the documents section is a container of type `DocumentsContainer` with id ``documents``, which is located in the `IUniversity` instance and which contains documents. There are three types of public documents::
+Technically speaking, the documents section is a container of type
+`DocumentsContainer` with id ``documents``, which is located in the
+`IUniversity` instance and which contains documents. There are three
+types of public documents::
 
   Public Documents (DocumentsContainer)
@@ -16,10 +23,18 @@
   +---> RESTDocument
 
-The first can be used to provide pdf files for download. The second and third can be used to create multilingual static html pages on the portal. HTML documents expect html coded text as input, REST documents expect reStructuredText which is transformed into html. Public documents have a publication workflow with two states: created and published. Only published documents can be seen by anonymous users.
+The first can be used to provide pdf files for download. The second
+and third can be used to create multilingual static html pages on
+the portal. HTML documents expect html coded text as input, REST
+documents expect reStructuredText which is transformed into html.
 
 Interfaces
 ==========
 
-The base for all three document interfaces is `IPublicDocument` which inherits from `IDocument`. All attributes are read-only properties, i.e. attributes with a getter method only. These properties are computed dynamically and can't be set. Only the document id and the title can be entered on form pages or imported.
+The base for all three document interfaces is `IPublicDocument`
+which inherits from `IDocument`. All attributes are read-only
+properties, i.e. attributes with a getter method only. These
+properties are computed dynamically and can't be set. Only the
+document id and the title can be entered on form pages or can be
+imported.
 
 .. literalinclude:: ../../../src/waeup/kofa/documents/interfaces.py
@@ -29,10 +44,16 @@
    :pyobject: IPublicDocument
 
-A PDF Document further specifies which pdf files are connected to the object. Usually, only one filename is in the `filenames` tuple.
+A PDF Document further specifies which pdf files are connected to
+the object. Usually, only one filename is in the `filenames` tuple.
 
 .. literalinclude:: ../../../src/waeup/kofa/documents/interfaces.py
    :pyobject: IPDFDocument
 
-HTML and REST documents have schema field for multi-lingual content in HTML or in REST format respectively, see :ref:`note <multilingual>`. The hidden `html_dict` attributes contain the same information, but the sequence of language translations has been split up and copied into a dictionary for faster processing.
+HTML and REST documents have a schema field for multi-lingual
+content in HTML or in REST format respectively, see :ref:`note
+<multilingual>`. The hidden `html_dict` attributes contain the same
+information after saving the form, but the sequence of language
+translations has been split up and copied into a dictionary for
+faster processing.
 
 .. literalinclude:: ../../../src/waeup/kofa/documents/interfaces.py
@@ -43,21 +64,74 @@
 
 
-Workflow & History
-==================
+Workflow
+========
 
-Browser Pages
-=============
+Public documents have a publication workflow with two states:
+created and published. Only the content or attached files of
+published documents can be seen by anonymous users::
 
-Data Export
+                 a
+    created ----------- published
+
+    a: publish
+   -a: retract
+
+History & Logging
+=================
+
+All transitions are automatically logged in ``main.log`` and the
+document's history. This is a sample history of public document::
+
+  2015-07-05 07:31:32 UTC - Document created by Admin
+  2015-07-05 07:31:53 UTC - Document published by Admin
+  2015-07-05 07:31:57 UTC - Document retracted by Admin
+
+The corresponding logfile excerpt is as follows::
+
+  2015-07-05 09:31:32,848 - INFO - admin - demodoc - Document created
+  2015-07-05 09:31:32,850 - INFO - admin - documents.browser.DocumentAddFormPage - added: HTML Document demodoc
+  2015-07-05 09:31:39,025 - INFO - admin - documents.browser.HTMLDocumentManageFormPage - demodoc - saved: html_multilingual
+  2015-07-05 09:31:43,279 - INFO - admin - documents.browser.HTMLDocumentManageFormPage - added: benny|waeup.local.DocumentManager
+  2015-07-05 09:31:53,152 - INFO - admin - demodoc - Document published
+  2015-07-05 09:31:57,216 - INFO - admin - demodoc - Document retracted
+  2015-07-05 09:32:46,679 - INFO - admin - documents.browser.DocumentsContainerManageFormPage - removed: demodoc
+
+
+Quick Guide
 ===========
 
-Data Import
-===========
+How to add and reference an HTML document
+-----------------------------------------
 
-Logging
-=======
+1. Click *Documents > Manage > Add document*.
+2. Select *HTML Document*, fill fields and press *Add document*.
+3. Enter multilingual content in HTML format and press *Save*.
+4. Click *View > Transition*.
+5. Select *Publish document* and press *Save*.
+
+The document is now published and available to anonymous users.
+
+6. Mark and copy the HTML Element provided on the page:
+   ``<a href= ... /a>``.
+7. Open another HTML document or a page with multilingual content
+   and paste the element where needed.
 
 
+How to add and reference a PDF document
+---------------------------------------
 
+1. Click *Documents > Manage > Add document*.
+2. Select *PDF Document*, fill fields and press *Add document*.
+3. Select *Files* and upload a pdf file from your computer.
+4. Click *View > Transition*.
+5. Select *Publish document* and press *Save*.
 
+The document and the connected pdf file are now published and
+available to anonymous users.
 
+6. Open the HTML source with your browser, search for the ``a``
+   element
+7. Mark and copy the HTML element found:
+   ``<a target="image" href= ... /a>``.
+8. Open another HTML document or a page with multilingual content
+   and paste the element where needed.
Index: /main/waeup.kofa/trunk/src/waeup/kofa/documents/batching.py
===================================================================
--- /main/waeup.kofa/trunk/src/waeup/kofa/documents/batching.py	(revision 13143)
+++ /main/waeup.kofa/trunk/src/waeup/kofa/documents/batching.py	(revision 13144)
@@ -43,5 +43,8 @@
 
 class DocumentProcessorBase(BatchProcessor):
-    """A base for batch processors for IDocument objects.
+    """This is the base class for all kinds of document processors.
+    The `checkConversion` method checks whether `class_name` in a row
+    corresponds with the processor chosen. This is to avoid accidentally
+    wrong imports.
     """
     grok.implements(IBatchProcessor)
Index: /main/waeup.kofa/trunk/src/waeup/kofa/documents/browser.py
===================================================================
--- /main/waeup.kofa/trunk/src/waeup/kofa/documents/browser.py	(revision 13143)
+++ /main/waeup.kofa/trunk/src/waeup/kofa/documents/browser.py	(revision 13144)
@@ -36,5 +36,5 @@
 from waeup.kofa.interfaces import MessageFactory as _
 from waeup.kofa.interfaces import (
-    IContactForm, IKofaObject, IKofaUtils)
+    IContactForm, IKofaObject, IKofaUtils, DOCLINK)
 from waeup.kofa.browser.layout import (
     KofaPage, KofaEditFormPage, KofaAddFormPage, KofaDisplayFormPage,
@@ -82,4 +82,5 @@
     pnav = 2
     label = _('Documents')
+    doclink = DOCLINK + '/documents.html'
 
 
@@ -164,4 +165,5 @@
     grok.template('documentpage')
     pnav = 2
+    doclink = DOCLINK + '/documents.html'
 
     @property
Index: /main/waeup.kofa/trunk/src/waeup/kofa/documents/browser_templates/htmldocumentpage.pt
===================================================================
--- /main/waeup.kofa/trunk/src/waeup/kofa/documents/browser_templates/htmldocumentpage.pt	(revision 13143)
+++ /main/waeup.kofa/trunk/src/waeup/kofa/documents/browser_templates/htmldocumentpage.pt	(revision 13144)
@@ -35,7 +35,7 @@
       </td>
       <td>
-        &lt;a href=&quot;
-        <span tal:replace="python: view.url(context, 'display')"></span>
-        &quot;&gt;<span tal:replace="context/title">FILENAME</span>&lt;/a&gt;
+        &lt;a href=&quot;<span tal:replace="python: view.url(context, 'display')"></span>&quot;&gt;<span tal:replace="context/title">
+        FILENAME
+        </span>&lt;/a&gt;
       </td>
     </tr>
Index: /main/waeup.kofa/trunk/src/waeup/kofa/documents/export.py
===================================================================
--- /main/waeup.kofa/trunk/src/waeup/kofa/documents/export.py	(revision 13143)
+++ /main/waeup.kofa/trunk/src/waeup/kofa/documents/export.py	(revision 13144)
@@ -29,5 +29,11 @@
 
 class DocumentExporterBase(grok.GlobalUtility, ExporterBase):
-    """Exporter for documents.
+    """This is the exporter base class for all kinds of document exporters.
+    Derived classes export all documents of type `class_name` inside the
+    documents container.
+
+    All schema fields and the property attributes
+    `history`, `state`, `class_name` and `users_with_local_roles`
+    are being exported.
     """
     grok.implements(ICSVExporter)
@@ -51,5 +57,9 @@
 
     def mangle_value(self, value, name, context=None):
-        """Hook for mangling values in derived classes
+        """The mangler prepares the history messages and computes the
+        `users_with_local_roles` value which is a Python expression like:
+
+        ``[{'user_name': u'bob', 'local_role': u'bobsrole'},
+        {'user_name': u'anna', 'local_role': u'annasrole'}]``
         """
         if name == 'users_with_local_roles':
Index: /main/waeup.kofa/trunk/src/waeup/kofa/documents/interfaces.py
===================================================================
--- /main/waeup.kofa/trunk/src/waeup/kofa/documents/interfaces.py	(revision 13143)
+++ /main/waeup.kofa/trunk/src/waeup/kofa/documents/interfaces.py	(revision 13144)
@@ -38,12 +38,13 @@
     history = Attribute('Object history, a list of messages')
     state = Attribute('Workflow state of a document')
+    class_name = Attribute('Name of the document class')
+
+    local_roles = Attribute('List of local role names')
+    translated_class_name = Attribute('Translatable class name of a document')
     translated_state = Attribute('Translatable workflow state of a document')
-    class_name = Attribute('Name of the document class')
-    translated_class_name = Attribute('Translatable class name of a document')
     formatted_transition_date = Attribute(
         'Last transition formatted date string')
     form_fields_interface = Attribute(
         'Interface which is used in forms for grok.AutoFields')
-    local_roles = Attribute('List of local role names')
 
     document_id = schema.TextLine(
Index: /main/waeup.kofa/trunk/src/waeup/kofa/students/export.py
===================================================================
--- /main/waeup.kofa/trunk/src/waeup/kofa/students/export.py	(revision 13143)
+++ /main/waeup.kofa/trunk/src/waeup/kofa/students/export.py	(revision 13144)
@@ -315,5 +315,5 @@
 
 class CourseTicketExporter(grok.GlobalUtility, StudentExporterBase):
-    """The Course Ticket  Exporter exports course tickets. Usually,
+    """The Course Ticket Exporter exports course tickets. Usually,
     the exporter first filters the set of students by searching the
     students catalog. Then it collects and iterates over all ``studylevel``
Index: /main/waeup.kofa/trunk/src/waeup/kofa/university/export.py
===================================================================
--- /main/waeup.kofa/trunk/src/waeup/kofa/university/export.py	(revision 13143)
+++ /main/waeup.kofa/trunk/src/waeup/kofa/university/export.py	(revision 13144)
@@ -37,5 +37,5 @@
 
     def mangle_value(self, value, name, context=None):
-        """The mangler computes the users_with_local_roles value which
+        """The mangler computes the `users_with_local_roles` value which
         is a Python expression like:
 
