Index: /main/waeup.uniben/trunk/dumper.py
===================================================================
--- /main/waeup.uniben/trunk/dumper.py	(revision 17780)
+++ /main/waeup.uniben/trunk/dumper.py	(revision 17780)
@@ -0,0 +1,102 @@
+#!/usr/bin/env python2
+#
+# $ ./bin/kofactl debug
+# >>> import sys
+# >>> sys.path.append(".")
+# >>> import dumper
+# >>> dumper.export_all(root)
+#
+
+import glob
+import os
+from zope.component.hooks import setSite
+from waeup.kofa.students.export import (
+    FirstStudentStudyCourseExporter,
+    SecondStudentStudyCourseExporter,
+    FirstStudentStudyLevelExporter,
+    SecondStudentStudyLevelExporter,
+    FirstCourseTicketExporter,
+    SecondCourseTicketExporter,
+    BedTicketExporter,
+    get_students,)
+from waeup.kofa.applicants.export import (
+        ApplicantsContainerExporter,
+        ApplicantRefereeReportExporter,)
+from waeup.kofa.hostels.export import (
+        HostelExporter,
+        BedExporter)
+from waeup.kofa.documents.export import (
+        PDFDocumentExporter, HTMLDocumentExporter, RESTDocumentExporter)
+from waeup.kofa.accesscodes.export import (
+        AccessCodeBatchExporter, AccessCodeExporter)
+from waeup.kofa.userscontainer import UserExporter
+
+#from kofacustom.nigeria.applicants.export import (
+#        NigeriaApplicantPaymentExporter)
+
+from waeup.uniben.applicants.export import (
+        CustomApplicantExporter,
+        CustomApplicantPaymentExporter,
+        #CustomApplicantRefereeReportExporter
+        )
+from waeup.uniben.students.export import (
+        CustomStudentExporter,
+        CustomStudentPaymentExporter,
+        CustomStudentStudyCourseExporter,
+        CustomStudentStudyLevelExporter,
+        CustomCourseTicketExporter,
+        )
+from waeup.uniben.configuration import CustomConfigurationExporter
+
+exporter_klasses = [
+
+    HostelExporter,
+    BedExporter,
+    PDFDocumentExporter,
+    HTMLDocumentExporter,
+    RESTDocumentExporter,
+    AccessCodeBatchExporter,
+    AccessCodeExporter,
+    CustomConfigurationExporter,
+    UserExporter,
+
+    ApplicantsContainerExporter,
+    CustomApplicantExporter,
+    CustomApplicantPaymentExporter,
+    ApplicantRefereeReportExporter,
+    CustomApplicantRefereeReportExporter
+
+    CustomStudentExporter,
+    CustomStudentPaymentExporter,
+    CustomStudentStudyCourseExporter,
+    CustomStudentStudyLevelExporter,
+    CustomCourseTicketExporter,
+    BedTicketExporter,
+
+    FirstStudentStudyCourseExporter,
+    SecondStudentStudyCourseExporter,
+    FirstStudentStudyLevelExporter,
+    SecondStudentStudyLevelExporter,
+    FirstCourseTicketExporter,
+    SecondCourseTicketExporter,
+    ]
+
+
+def export_all(root):
+    site = root["uniben"]
+    setSite(site)
+    for klass in exporter_klasses:
+        c_name = "export_" + getattr(klass, "grokcore.component.directive.name")
+        print(c_name)
+        outfile = "csvdata/%s.csv" % c_name
+        exporter = klass()
+        print("Dump data to %s..." % outfile)
+        exporter.export_all(site, outfile)
+        #try:
+        #    exporter.export_all(site, outfile)
+        #except:
+        #    print("CRASHED: " + c_name)
+        #    if outfile in glob.glob("csvdata/*.csv"):
+        #        os.remove(outfile)
+
+
Index: /main/waeup.uniben/trunk/src/waeup/uniben/configuration.py
===================================================================
--- /main/waeup.uniben/trunk/src/waeup/uniben/configuration.py	(revision 17779)
+++ /main/waeup.uniben/trunk/src/waeup/uniben/configuration.py	(revision 17780)
@@ -21,7 +21,10 @@
 import grok
 from zope.interface import implementedBy
-from waeup.kofa.utils.helpers import attrs_to_fields
+from waeup.kofa.utils.helpers import attrs_to_fields, iface_names
+from waeup.uniben.interfaces import (
+    ICustomSessionConfiguration, ICustomSessionConfigurationAdd)
 from waeup.kofa.configuration import (
-    SessionConfigurationFactory, SessionConfiguration)
+    SessionConfigurationFactory, SessionConfiguration,
+    ConfigurationProcessor, ConfigurationExporter)
 from waeup.uniben.interfaces import (
     ICustomSessionConfiguration, ICustomSessionConfigurationAdd)
@@ -46,2 +49,15 @@
     def getInterfaces(self):
         return implementedBy(CustomSessionConfiguration)
+
+class CustomConfigurationExporter(ConfigurationExporter):
+    """The Configuration Exporter exports all configuration data. It iterates over all
+    objects of the ``configuration`` container.
+    """
+    fields = tuple(sorted(iface_names(ICustomSessionConfiguration)))
+
+class CustomConfigurationProcessor(ConfigurationProcessor):
+    """The Configuration Processor processes session configuration objects in
+    the ``configuration`` container.
+
+    """
+    iface = ICustomSessionConfiguration
