Index: main/waeup.kofa/trunk/src/waeup/kofa/applicants/interfaces.py
===================================================================
--- main/waeup.kofa/trunk/src/waeup/kofa/applicants/interfaces.py	(revision 13077)
+++ main/waeup.kofa/trunk/src/waeup/kofa/applicants/interfaces.py	(revision 13080)
@@ -327,4 +327,143 @@
     state, depending on use-case.
     """
+    state = Attribute('Application state of an applicant')
+    history = Attribute('Object history, a list of messages')
+    display_fullname = Attribute('The fullname of an applicant')
+    application_number = Attribute('The key under which the record is stored')
+    container_code = Attribute('Code of the parent container')
+    translated_state = Attribute('Real name of the application state')
+    special = Attribute('True if special application')
+    application_number = Attribute('The key under which the record is stored')
+
+    application_date = Attribute('UTC datetime of submission, used for export only')
+    password = Attribute('Encrypted password of a applicant')
+
+
+    suspended = schema.Bool(
+        title = _(u'Account suspended'),
+        default = False,
+        required = False,
+        )
+
+    applicant_id = schema.TextLine(
+        title = _(u'Applicant Id'),
+        required = False,
+        readonly = False,
+        )
+
+    reg_number = TextLineChoice(
+        title = _(u'Registration Number'),
+        readonly = False,
+        required = True,
+        source = contextual_reg_num_source,
+        )
+
+    firstname = schema.TextLine(
+        title = _(u'First Name'),
+        required = True,
+        )
+
+    middlename = schema.TextLine(
+        title = _(u'Middle Name'),
+        required = False,
+        )
+
+    lastname = schema.TextLine(
+        title = _(u'Last Name (Surname)'),
+        required = True,
+        )
+
+    date_of_birth = FormattedDate(
+        title = _(u'Date of Birth'),
+        required = False,
+        show_year = True,
+        )
+
+    sex = schema.Choice(
+        title = _(u'Sex'),
+        source = GenderSource(),
+        required = True,
+        )
+
+    email = schema.ASCIILine(
+        title = _(u'Email Address'),
+        required = False,
+        constraint=validate_email,
+        )
+
+    phone = PhoneNumber(
+        title = _(u'Phone'),
+        description = u'',
+        required = False,
+        )
+
+    course1 = schema.Choice(
+        title = _(u'1st Choice Course of Study'),
+        source = AppCatCertificateSource(),
+        required = True,
+        )
+
+    course2 = schema.Choice(
+        title = _(u'2nd Choice Course of Study'),
+        source = AppCatCertificateSource(),
+        required = False,
+        )
+
+    #school_grades = schema.List(
+    #    title = _(u'School Grades'),
+    #    value_type = ResultEntryField(),
+    #    required = False,
+    #    default = [],
+    #    )
+
+    notice = schema.Text(
+        title = _(u'Notice'),
+        required = False,
+        )
+    student_id = schema.TextLine(
+        title = _(u'Student Id'),
+        required = False,
+        readonly = False,
+        )
+    course_admitted = schema.Choice(
+        title = _(u'Admitted Course of Study'),
+        source = CertificateSource(),
+        required = False,
+        )
+    locked = schema.Bool(
+        title = _(u'Form locked'),
+        default = False,
+        required = False,
+        )
+
+    special_application = schema.Choice(
+        title = _(u'Special Application'),
+        source = SpecialApplicationSource(),
+        required = False,
+        )
+
+class IApplicant(IApplicantBaseData):
+    """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 writeLogMessage(view, comment):
+        """Adds an INFO message to the log file
+        """
+
+    def createStudent():
+        """Create a student object from applicatnt data
+        and copy applicant object.
+        """
+
+class ISpecialApplicant(IApplicantBase):
+    """This reduced interface is for former students or students who are not
+    student users of the portal but have to pay supplementary fees.
+
+    This interface is used in browser components only. Thus we can't add
+    fields here to the regular IApplicant interface here. We can
+    only 'customize' fields.
+    """
     history = Attribute('Object history, a list of messages')
     state = Attribute('The application state of an applicant')
@@ -340,137 +479,4 @@
         )
 
-    applicant_id = schema.TextLine(
-        title = _(u'Applicant Id'),
-        required = False,
-        readonly = False,
-        )
-
-    reg_number = TextLineChoice(
-        title = _(u'Registration Number'),
-        readonly = False,
-        required = True,
-        source = contextual_reg_num_source,
-        )
-
-    firstname = schema.TextLine(
-        title = _(u'First Name'),
-        required = True,
-        )
-
-    middlename = schema.TextLine(
-        title = _(u'Middle Name'),
-        required = False,
-        )
-
-    lastname = schema.TextLine(
-        title = _(u'Last Name (Surname)'),
-        required = True,
-        )
-
-    date_of_birth = FormattedDate(
-        title = _(u'Date of Birth'),
-        required = False,
-        show_year = True,
-        )
-
-    sex = schema.Choice(
-        title = _(u'Sex'),
-        source = GenderSource(),
-        required = True,
-        )
-
-    email = schema.ASCIILine(
-        title = _(u'Email Address'),
-        required = False,
-        constraint=validate_email,
-        )
-
-    phone = PhoneNumber(
-        title = _(u'Phone'),
-        description = u'',
-        required = False,
-        )
-
-    course1 = schema.Choice(
-        title = _(u'1st Choice Course of Study'),
-        source = AppCatCertificateSource(),
-        required = True,
-        )
-
-    course2 = schema.Choice(
-        title = _(u'2nd Choice Course of Study'),
-        source = AppCatCertificateSource(),
-        required = False,
-        )
-
-    #school_grades = schema.List(
-    #    title = _(u'School Grades'),
-    #    value_type = ResultEntryField(),
-    #    required = False,
-    #    default = [],
-    #    )
-
-    notice = schema.Text(
-        title = _(u'Notice'),
-        required = False,
-        )
-    student_id = schema.TextLine(
-        title = _(u'Student Id'),
-        required = False,
-        readonly = False,
-        )
-    course_admitted = schema.Choice(
-        title = _(u'Admitted Course of Study'),
-        source = CertificateSource(),
-        required = False,
-        )
-    locked = schema.Bool(
-        title = _(u'Form locked'),
-        default = False,
-        required = False,
-        )
-
-    special_application = schema.Choice(
-        title = _(u'Special Application'),
-        source = SpecialApplicationSource(),
-        required = False,
-        )
-
-class IApplicant(IApplicantBaseData):
-    """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 writeLogMessage(view, comment):
-        """Adds an INFO message to the log file
-        """
-
-    def createStudent():
-        """Create a student object from applicatnt data
-        and copy applicant object.
-        """
-
-class ISpecialApplicant(IApplicantBase):
-    """This reduced interface is for former students or students who are not
-    student users of the portal but have to pay supplementary fees.
-
-    This interface is used in browser components only. Thus we can't add
-    fields here to the regular IApplicant interface here. We can
-    only 'customize' fields.
-    """
-    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('UTC datetime of submission, used for export only')
-    password = Attribute('Encrypted password of a applicant')
-    application_number = Attribute('The key under which the record is stored')
-
-    suspended = schema.Bool(
-        title = _(u'Account suspended'),
-        default = False,
-        required = False,
-        )
-
     locked = schema.Bool(
         title = _(u'Form locked'),
