Index: /main/waeup.kofa/trunk/CHANGES.txt
===================================================================
--- /main/waeup.kofa/trunk/CHANGES.txt	(revision 17822)
+++ /main/waeup.kofa/trunk/CHANGES.txt	(revision 17823)
@@ -4,4 +4,6 @@
 1.8.2.dev0 (unreleased)
 =======================
+
+* Make `_set_exporter_values` customizable.
 
 * Limit the file name length to 65 characters.
Index: /main/waeup.kofa/trunk/src/waeup/kofa/students/browser.py
===================================================================
--- /main/waeup.kofa/trunk/src/waeup/kofa/students/browser.py	(revision 17822)
+++ /main/waeup.kofa/trunk/src/waeup/kofa/students/browser.py	(revision 17823)
@@ -4344,27 +4344,10 @@
 
     def _set_exporter_values(self):
-        # We provide all student exporters, nothing else, yet.
-        # Bursary, Department or Accommodation Officers don't
-        # have the general exportData
-        # permission and are only allowed to export bursary, payments
-        # overview or accommodation data respectively.
-        # This is the only place where waeup.exportAccommodationData,
-        # waeup.exportBursaryData and waeup.exportPaymentsOverview
-        # are used.
+        kofa_utils = getUtility(IKofaUtils)
+        exporters = kofa_utils.collect_exporters(self.context)
+        if exporters:
+            self.exporters = exporters
+            return
         exporters = []
-        if not checkPermission('waeup.exportData', self.context):
-            if checkPermission('waeup.exportBursaryData', self.context):
-                exporters += [('Bursary Data', 'bursary')]
-            if checkPermission('waeup.exportPaymentsOverview', self.context):
-                exporters += [('School Fee Payments Overview',
-                               'sfpaymentsoverview'),
-                              ('Session Payments Overview',
-                               'sessionpaymentsoverview')]
-            if checkPermission('waeup.exportAccommodationData', self.context):
-                exporters += [('Bed Tickets', 'bedtickets'),
-                              ('Accommodation Payments',
-                               'accommodationpayments')]
-            self.exporters = exporters
-            return
         STUDENT_EXPORTER_NAMES = getUtility(
             IStudentsUtils).STUDENT_EXPORTER_NAMES
Index: /main/waeup.kofa/trunk/src/waeup/kofa/utils/utils.py
===================================================================
--- /main/waeup.kofa/trunk/src/waeup/kofa/utils/utils.py	(revision 17822)
+++ /main/waeup.kofa/trunk/src/waeup/kofa/utils/utils.py	(revision 17823)
@@ -26,4 +26,5 @@
 from random import SystemRandom as r
 from zope.i18n import translate
+from zope.security import checkPermission
 from waeup.kofa.interfaces import IKofaUtils
 from waeup.kofa.interfaces import MessageFactory as _
@@ -567,2 +568,27 @@
         value = int(pow(10, prec)*value) / (1.0*pow(10, prec))
         return '{:{width}.{prec}f}'.format(value, width=0, prec=prec)
+
+    def collect_exporters(self, context):
+        # Used for `ExportJobContainerJobConfig`.
+        # We provide all student exporters, nothing else, yet.
+        # Bursary, Department or Accommodation Officers don't
+        # have the general exportData
+        # permission and are only allowed to export bursary, payments
+        # overview or accommodation data respectively.
+        # This is the only place where waeup.exportAccommodationData,
+        # waeup.exportBursaryData and waeup.exportPaymentsOverview
+        # are used.
+        exporters = []
+        if not checkPermission('waeup.exportData', context):
+            if checkPermission('waeup.exportBursaryData', context):
+                exporters += [('Bursary Data', 'bursary')]
+            if checkPermission('waeup.exportPaymentsOverview', context):
+                exporters += [('School Fee Payments Overview',
+                               'sfpaymentsoverview'),
+                              ('Session Payments Overview',
+                               'sessionpaymentsoverview')]
+            if checkPermission('waeup.exportAccommodationData', context):
+                exporters += [('Bed Tickets', 'bedtickets'),
+                              ('Accommodation Payments',
+                               'accommodationpayments')]
+            return exporters
