Index: main/waeup.kofa/trunk/src/waeup/kofa/students/export.py
===================================================================
--- main/waeup.kofa/trunk/src/waeup/kofa/students/export.py	(revision 15921)
+++ main/waeup.kofa/trunk/src/waeup/kofa/students/export.py	(revision 15924)
@@ -164,5 +164,5 @@
 
 def get_payments(students, p_states=None, **kw):
-    """Get all payments of `students` within given payment_date period.
+    """Get all payment tickets of `students` within given payment_date period.
     """
     date_format = '%d/%m/%Y'
@@ -196,5 +196,5 @@
 
 def get_bedtickets(students):
-    """Get all bedtickets of `students`.
+    """Get all bed tickets of `students`.
     """
     tickets = []
@@ -436,4 +436,36 @@
             value, name, context=context)
 
+class StudentPaymentExporter(grok.GlobalUtility, StudentExporterBase):
+    """The Student Payment Exporter first filters the set of students
+    by searching the students catalog. Then it exports student payment
+    tickets by iterating over the items of the student's ``payments``
+    container. If the payment period is given, only tickets, which were
+    paid in payment period, are considered for export.
+    """
+    grok.name('studentpayments')
+
+    fields = tuple(
+        sorted(iface_names(
+            IStudentOnlinePayment, exclude_attribs=False,
+            omit=['display_item', 'certificate', 'student']))) + (
+            'student_id','state','current_session')
+    title = _(u'Student Payments (Data Backup)')
+
+    def filter_func(self, x, **kw):
+        return get_payments(x, **kw)
+
+    def mangle_value(self, value, name, context=None):
+        """The mangler determines the student's id, registration
+        state and current session.
+        """
+        if context is not None:
+            student = context.student
+            if name in ['student_id','state',
+                        'current_session'] and student is not None:
+                value = getattr(student, name, None)
+        return super(
+            StudentPaymentExporter, self).mangle_value(
+            value, name, context=context)
+
 class DataForLecturerExporter(grok.GlobalUtility, StudentExporterBase):
     """The Data for Lecturer Exporter searches for students in the course
@@ -467,5 +499,5 @@
             value, name, context=context)
 
-class StudentOutstandingCoursesExporter(grok.GlobalUtility, StudentExporterBase):
+class OutstandingCoursesExporter(grok.GlobalUtility, StudentExporterBase):
     """The Student Outstanding Courses Exporter first filters the set of 
     students by searching the students catalog. Then it exports students with 
@@ -497,44 +529,12 @@
                 value = context[3]
         return super(
-            StudentOutstandingCoursesExporter, self).mangle_value(
-            value, name, context=context)
-
-class StudentPaymentExporter(grok.GlobalUtility, StudentExporterBase):
-    """The Student Payment Exporter first filters the set of students
-    by searching the students catalog. Then it exports student payment
-    tickets by iterating over the items of the student's ``payments``
-    container. If the payment period is given, only tickets, which were
-    paid in payment period, are considered for export.
-    """
-    grok.name('studentpayments')
-
-    fields = tuple(
-        sorted(iface_names(
-            IStudentOnlinePayment, exclude_attribs=False,
-            omit=['display_item', 'certificate', 'student']))) + (
-            'student_id','state','current_session')
-    title = _(u'Student Payments (Data Backup)')
-
-    def filter_func(self, x, **kw):
-        return get_payments(x, **kw)
-
-    def mangle_value(self, value, name, context=None):
-        """The mangler determines the student's id, registration
-        state and current session.
-        """
-        if context is not None:
-            student = context.student
-            if name in ['student_id','state',
-                        'current_session'] and student is not None:
-                value = getattr(student, name, None)
-        return super(
-            StudentPaymentExporter, self).mangle_value(
-            value, name, context=context)
-
-class StudentUnpaidPaymentExporter(StudentPaymentExporter):
-    """The Student Unpaid Payment Exporter works just like the
-    Student Payments Exporter but it exports only unpaid tickets.
-    This exporter is designed for finding and finally purging outdated
-    payment ticket.
+            OutstandingCoursesExporter, self).mangle_value(
+            value, name, context=context)
+
+class UnpaidPaymentsExporter(StudentPaymentExporter):
+    """The Unpaid Payments Exporter works just like the
+    Student Payment (singular intended) Exporter  but it exports only 
+    unpaid tickets. This exporter is designed for finding and finally 
+    purging outdated payment tickets.
     """
     grok.name('unpaidpayments')
@@ -838,5 +838,5 @@
 
     def mangle_value(self, value, name, context=None):
-        """The mangler determines the trascript data.
+        """The mangler determines and formats the transcript data.
         """
         if name == 'transcript_data':
Index: main/waeup.kofa/trunk/src/waeup/kofa/students/tests/test_export.py
===================================================================
--- main/waeup.kofa/trunk/src/waeup/kofa/students/tests/test_export.py	(revision 15921)
+++ main/waeup.kofa/trunk/src/waeup/kofa/students/tests/test_export.py	(revision 15924)
@@ -34,6 +34,6 @@
     SchoolFeePaymentsOverviewExporter, StudyLevelsOverviewExporter,
     ComboCardDataExporter, DataForBursaryExporter,
-    StudentUnpaidPaymentExporter, SessionPaymentsOverviewExporter,
-    StudentOutstandingCoursesExporter,
+    UnpaidPaymentsExporter, SessionPaymentsOverviewExporter,
+    OutstandingCoursesExporter,
     AccommodationPaymentsExporter,
     TranscriptDataExporter,
@@ -797,10 +797,10 @@
         return
 
-class StudentOutstandingCoursesExporterTest(StudentImportExportSetup):
+class OutstandingCoursesExporterTest(StudentImportExportSetup):
 
     layer = FunctionalLayer
 
     def setUp(self):
-        super(StudentOutstandingCoursesExporterTest, self).setUp()
+        super(OutstandingCoursesExporterTest, self).setUp()
         self.setup_for_export()
         return
@@ -808,7 +808,7 @@
     def test_ifaces(self):
         # make sure we fullfill interface contracts
-        obj = StudentOutstandingCoursesExporter()
+        obj = OutstandingCoursesExporter()
         verifyObject(ICSVStudentExporter, obj)
-        verifyClass(ICSVStudentExporter, StudentOutstandingCoursesExporter)
+        verifyClass(ICSVStudentExporter, OutstandingCoursesExporter)
         return
 
@@ -831,5 +831,5 @@
         self.setup_student(self.student)
         self.student['studycourse']['100']['C3'].score = 25
-        exporter = StudentOutstandingCoursesExporter()
+        exporter = OutstandingCoursesExporter()
         exporter.export_all(self.app, self.outfile)
         result = open(self.outfile, 'rb').read()
@@ -1042,10 +1042,10 @@
         return
 
-class StudentUnpaidPaymentExporterTest(StudentImportExportSetup):
+class UnpaidPaymentsExporterTest(StudentImportExportSetup):
 
     layer = FunctionalLayer
 
     def setUp(self):
-        super(StudentUnpaidPaymentExporterTest, self).setUp()
+        super(UnpaidPaymentsExporterTest, self).setUp()
         self.setup_for_export()
         return
@@ -1055,5 +1055,5 @@
         # set values we can expect in export file
         self.setup_student(self.student)
-        exporter = StudentUnpaidPaymentExporter()
+        exporter = UnpaidPaymentsExporter()
         exporter.export_all(self.app, self.outfile)
         result = open(self.outfile, 'rb').read()
