Index: main/waeup.kofa/trunk/src/waeup/kofa/configuration.py
===================================================================
--- main/waeup.kofa/trunk/src/waeup/kofa/configuration.py	(revision 17742)
+++ main/waeup.kofa/trunk/src/waeup/kofa/configuration.py	(revision 17755)
@@ -21,9 +21,14 @@
 import grok
 from zope.component.interfaces import IFactory
-from zope.interface import implementedBy
+from zope.interface import implementedBy, Interface
+from waeup.kofa.utils.batching import ExporterBase
+from waeup.kofa.interfaces import ICSVExporter
 from waeup.kofa.interfaces import (
     ISessionConfiguration, IConfigurationContainer, ISessionConfigurationAdd,
+    IBatchProcessor,
     academic_sessions_vocab)
-from waeup.kofa.utils.helpers import attrs_to_fields
+from waeup.kofa.utils.helpers import attrs_to_fields, iface_names
+from waeup.kofa.utils.batching import BatchProcessor
+from waeup.kofa.interfaces import MessageFactory as _
 
 class ConfigurationContainer(grok.Container):
@@ -74,2 +79,78 @@
     def getInterfaces(self):
         return implementedBy(SessionConfiguration)
+
+class ConfigurationExporter(grok.GlobalUtility, ExporterBase):
+    """The Configuration Exporter exports all configuration data. It iterates over all
+    objects of the ``configuration`` container.
+    """
+    grok.implements(ICSVExporter)
+    grok.name('configurations')
+
+    title = _(u'Session Configurations')
+
+    fields = tuple(sorted(iface_names(ISessionConfiguration)))
+
+    def export(self, configurations, filepath=None):
+        """Export `configurations`, an iterable, as CSV file.
+
+        If `filepath` is ``None``, a raw string with CSV data is returned.
+        """
+        writer, outfile = self.get_csv_writer(filepath)
+        for configuration in configurations:
+            self.write_item(configuration, writer)
+        return self.close_outfile(filepath, outfile)
+
+    def export_all(self, site, filepath=None):
+        """Export configurations into filepath as CSV data.
+
+        If `filepath` is ``None``, a raw string with CSV data is returned.
+        """
+        configurations = site.get('configuration', {})
+        return self.export(configurations.values(), filepath)
+
+class ConfigurationProcessor(BatchProcessor):
+    """The Configuration Processor processes session configuration objects in
+    the ``configuration`` container.
+
+    """
+    grok.implements(IBatchProcessor)
+    grok.provides(IBatchProcessor)
+    grok.context(Interface)
+    util_name = 'configurationprocessor'
+    grok.name(util_name)
+
+    name = u'SessionConfiguration Processor'
+    iface = ISessionConfiguration
+    factory_name = 'waeup.SessionConfiguration'
+
+    mode = None
+
+    def parentsExist(self, row, site):
+        return 'configuration' in site.keys()
+
+    def entryExists(self, row, site):
+        return row['academic_session'] in site['configuration'].keys()
+
+    def getParent(self, row, site):
+        return site['configuration']
+
+    def getEntry(self, row, site):
+        if not self.entryExists(row, site):
+            return None
+        parent = self.getParent(row, site)
+        return parent.get(row['academic_session'])
+
+    def addEntry(self, obj, row, site):
+        parent = self.getParent(row, site)
+        parent.addSessionConfiguration(obj)
+        return
+
+    def delEntry(self, row, site):
+        configuration = self.getEntry(row, site)
+        if user is not None:
+            parent = self.getParent(row, site)
+            grok.getSite().logger.info(
+                '%s - %s - Session configuration removed' % (self.name, row['academic_session']))
+            del parent[configuration.academic_session]
+        pass
+
Index: main/waeup.kofa/trunk/src/waeup/kofa/doctests/batchprocessing_browser.txt
===================================================================
--- main/waeup.kofa/trunk/src/waeup/kofa/doctests/batchprocessing_browser.txt	(revision 17742)
+++ main/waeup.kofa/trunk/src/waeup/kofa/doctests/batchprocessing_browser.txt	(revision 17755)
@@ -104,4 +104,5 @@
     'CertificateCourse Processor',
     'Certificate Processor',
+    'SessionConfiguration Processor',
     'Course Processor',
     'CourseTicket Processor',
