Index: main/waeup.kofa/trunk/src/waeup/kofa/applicants/export.py
===================================================================
--- main/waeup.kofa/trunk/src/waeup/kofa/applicants/export.py	(revision 8050)
+++ main/waeup.kofa/trunk/src/waeup/kofa/applicants/export.py	(revision 8052)
@@ -80,6 +80,8 @@
             'course1', 'course2', 'course_admitted') and value is not None:
             value = value.code
-        elif name == 'school_grades':
-            value = [eval(entry.to_string()) for entry in value]
+        #elif name == 'school_grades':
+        #    value = [eval(entry.to_string()) for entry in value]
+        elif name == 'history':
+            value = value.messages
         return super(
             ApplicantsExporter, self).mangle_value(
Index: main/waeup.kofa/trunk/src/waeup/kofa/applicants/interfaces.py
===================================================================
--- main/waeup.kofa/trunk/src/waeup/kofa/applicants/interfaces.py	(revision 8050)
+++ main/waeup.kofa/trunk/src/waeup/kofa/applicants/interfaces.py	(revision 8052)
@@ -303,4 +303,12 @@
     admission.
     """
+
+    history = Attribute('Object history, a list of messages')
+    state = Attribute('The application state of an applicant')
+    display_fullname = Attribute('The fullname of an applicant')
+    application_date = Attribute('Date of submission, used for export only')
+    password = Attribute('Encrypted password of a applicant')
+    application_number = Attribute('The key under which the record is stored')
+
     applicant_id = schema.TextLine(
         title = _(u'Applicant Id'),
@@ -373,13 +381,14 @@
     #    )
 
-    #
-    # Data to be imported after screening
-    #
+    notice = schema.Text(
+        title = _(u'Notice'),
+        required = False,
+        )
+    screening_venue = schema.TextLine(
+        title = _(u'Screening Venue'),
+        required = False,
+        )
     screening_score = schema.Int(
         title = _(u'Screening Score'),
-        required = False,
-        )
-    screening_venue = schema.TextLine(
-        title = _(u'Screening Venue'),
         required = False,
         )
@@ -389,43 +398,25 @@
         required = False,
         )
-    notice = schema.Text(
-        title = _(u'Notice'),
-        required = False,
-        )
-
-class IApplicantProcessData(IApplicantBaseData):
+    student_id = schema.TextLine(
+        title = _(u'Student Id'),
+        required = False,
+        readonly = False,
+        )
+    locked = schema.Bool(
+        title = _(u'Form locked'),
+        default = False,
+        )
+
+class IApplicant(IApplicantBaseData):
     """An applicant.
 
-    Here we add process attributes and methods to the base data.
-    """
-
-    history = Attribute('Object history, a list of messages')
-    state = Attribute('The application state of an applicant')
-    display_fullname = Attribute('The fullname of an applicant')
-    application_date = Attribute('Date of submission, used for export only')
-    password = Attribute('Encrypted password of a applicant')
-    application_number = Attribute('The key under which the record is stored')
+    This is basically the applicant base data. Here we repeat the
+    fields from base data if we have to set the `required` attribute
+    to True (which is the default).
+    """
 
     def loggerInfo(ob_class, comment):
         """Adds an INFO message to the log file
         """
-
-    student_id = schema.TextLine(
-        title = _(u'Student Id'),
-        required = False,
-        readonly = False,
-        )
-    locked = schema.Bool(
-        title = _(u'Form locked'),
-        default = False,
-        )
-
-class IApplicant(IApplicantProcessData):
-    """An applicant.
-
-    This is basically the applicant base data. Here we repeat the
-    fields from base data if we have to set the `required` attribute
-    to True (which is the default).
-    """
 
     def createStudent():
Index: main/waeup.kofa/trunk/src/waeup/kofa/applicants/tests/test_export.py
===================================================================
--- main/waeup.kofa/trunk/src/waeup/kofa/applicants/tests/test_export.py	(revision 8050)
+++ main/waeup.kofa/trunk/src/waeup/kofa/applicants/tests/test_export.py	(revision 8052)
@@ -119,4 +119,5 @@
         applicant.screening_score = 98
         applicant.screening_venue = u'Exam Room'
+        applicant.password = 'any password'
         result_entry = ResultEntry(
             KofaUtils.EXAM_SUBJECTS_DICT.keys()[0],
@@ -133,12 +134,19 @@
         exporter.export([self.applicant], self.outfile)
         result = open(self.outfile, 'rb').read()
-        self.assertEqual(
-            result,
-            'applicant_id,course1,course2,course_admitted,date_of_birth,'
-            'email,firstname,lastname,lga,middlename,notice,phone,'
-            'reg_number,screening_score,screening_venue,sex\r\n'
-
-            'dp2011_654321,,,,,,Anna,Tester,foreigner,,,,,,,\r\n'
-            )
+        # The exported records do contain real dates in their
+        # history dict. Therefore we have to split the comparison
+        # into two parts.
+        self.assertTrue(
+            'applicant_id,application_date,application_number,course1,course2,'
+            'course_admitted,date_of_birth,display_fullname,email,firstname,'
+            'history,lastname,lga,locked,middlename,notice,password,phone,'
+            'reg_number,screening_score,screening_venue,sex,state,'
+            'student_id\r\n'
+            'dp2011_654321,,654321,,,,,Anna Tester,,Anna,'
+            in result)
+        self.assertTrue(
+            'Application initialized by system\'],Tester,'
+            'foreigner,0,,,,,,,,,initialized,\r\n'
+            in result)
         return
 
@@ -150,15 +158,22 @@
         exporter.export([applicant], self.outfile)
         result = open(self.outfile, 'rb').read()
-        self.assertEqual(
-            result,
-            'applicant_id,course1,course2,course_admitted,date_of_birth,'
-            'email,firstname,lastname,lga,middlename,notice,phone,'
-            'reg_number,screening_score,screening_venue,'
-            'sex\r\n'
-
-            'dp2011_654321,CERT1,CERT1,CERT1,1981-02-04,anna@sample.com,'
-            'Anna,Tester,foreigner,M.,"Some notice\nin lines.",'
-            '+234-123-12345,123456,98,Exam Room,f\r\n'
-            )
+        # The exported records do contain real dates in their
+        # history dict. Therefore we have to split the comparison
+        # into two parts.
+        self.assertTrue(
+            'applicant_id,application_date,application_number,course1,course2,'
+            'course_admitted,date_of_birth,display_fullname,email,firstname,'
+            'history,lastname,lga,locked,middlename,notice,password,phone,'
+            'reg_number,screening_score,screening_venue,sex,state,'
+            'student_id\r\n'
+            'dp2011_654321,,654321,CERT1,CERT1,CERT1,1981-02-04,'
+            'Anna M. Tester,anna@sample.com,Anna,'
+            in result)
+        self.assertTrue(
+            'Application initialized by system\'],'
+            'Tester,foreigner,0,M.,"Some notice\nin lines.",any password,'
+            '+234-123-12345,123456,98,Exam Room,f,initialized,\r\n'
+            in result)
+
         return
 
@@ -170,14 +185,17 @@
         exporter.export_all(self.app, self.outfile)
         result = open(self.outfile, 'rb').read()
-        self.assertEqual(
-            result,
-            'applicant_id,course1,course2,course_admitted,date_of_birth,'
-            'email,firstname,lastname,lga,middlename,notice,phone,'
-            'reg_number,screening_score,screening_venue,'
-            'sex\r\n'
-
-            'dp2011_654321,CERT1,CERT1,CERT1,1981-02-04,anna@sample.com,'
-            'Anna,Tester,foreigner,M.,"Some notice\nin lines.",'
-            '+234-123-12345,123456,98,Exam Room,f\r\n'
-            )
-        return
+        self.assertTrue(
+            'applicant_id,application_date,application_number,course1,course2,'
+            'course_admitted,date_of_birth,display_fullname,email,firstname,'
+            'history,lastname,lga,locked,middlename,notice,password,phone,'
+            'reg_number,screening_score,screening_venue,sex,state,'
+            'student_id\r\n'
+            'dp2011_654321,,654321,CERT1,CERT1,CERT1,1981-02-04,'
+            'Anna M. Tester,anna@sample.com,Anna,'
+            in result)
+        self.assertTrue(
+            'Application initialized by system\'],'
+            'Tester,foreigner,0,M.,"Some notice\nin lines.",any password,'
+            '+234-123-12345,123456,98,Exam Room,f,initialized,\r\n'
+            in result)
+        return
