Index: /main/kofacustom.iuokada/trunk/src/kofacustom/iuokada/applicants/interfaces.py
===================================================================
--- /main/kofacustom.iuokada/trunk/src/kofacustom/iuokada/applicants/interfaces.py	(revision 17065)
+++ /main/kofacustom.iuokada/trunk/src/kofacustom/iuokada/applicants/interfaces.py	(revision 17066)
@@ -657,4 +657,8 @@
     """
 
+    middlename = schema.TextLine(
+        title = _(u'Middle Name'),
+        required = True,
+        )
     phone = PhoneNumber(
         title = _(u'Phone'),
@@ -668,4 +672,9 @@
         required = True,
         )
+    subtype = schema.Choice(
+        title = _(u'Application Subtype'),
+        vocabulary = subtype_vocab,
+        required = True,
+        )        
     date_of_birth = FormattedDate(
         title = _(u'Date of Birth'),
@@ -673,5 +682,9 @@
         show_year = True,
         )
-
+    nationality = schema.Choice(
+        source = nats_vocab,
+        title = _(u'Nationality'),
+        required = True,
+        )
     parents_name = schema.TextLine(
         title = _(u'Full Name'),
@@ -679,5 +692,4 @@
         readonly = False,
         )
-
     parents_email = schema.ASCIILine(
         title = _(u'Email Address'),
@@ -685,24 +697,108 @@
         constraint=validate_email,
         )
-
     parents_phone = PhoneNumber(
         title = _(u'Phone'),
         required = True,
         )
-
+    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,
+        )
     fst_sit_fname = schema.TextLine(
         title = _(u'Full Name'),
-        description = _(u'As it is written on your WAEC/NECO result.'),
-        required = False,
-        readonly = False,
-        )
-
+        required = True,
+        readonly = False,
+        )
+    fst_sit_no = schema.TextLine(
+        title = _(u'Exam Number'),
+        required = True,
+        readonly = False,
+        )
+    fst_sit_date = FormattedDate(
+        title = _(u'Exam Date'),
+        required = True,
+        readonly = False,
+        show_year = True,
+        )
+    fst_sit_type = schema.Choice(
+        title = _(u'Exam Type'),
+        required = True,
+        readonly = False,
+        vocabulary = exam_types,
+        )
+    fst_sit_results = schema.List(
+        title = _(u'Exam Results'),
+        value_type = ResultEntryField(),
+        required = True,
+        readonly = False,
+        defaultFactory=list,
+        )
     scd_sit_fname = schema.TextLine(
         title = _(u'Full Name'),
-        description = _(u'As it is written on your WAEC/NECO result.'),
-        required = False,
-        readonly = False,
-        )
-
+        required = True,
+        readonly = False,
+        )
+    scd_sit_no = schema.TextLine(
+        title = _(u'Exam Number'),
+        required = True,
+        readonly = False,
+        )
+    scd_sit_date = FormattedDate(
+        title = _(u'Exam Date'),
+        required = True,
+        readonly = False,
+        show_year = True,
+        )
+    scd_sit_type = schema.Choice(
+        title = _(u'Exam Type'),
+        required = True,
+        readonly = False,
+        vocabulary = exam_types,
+        )
+    scd_sit_results = schema.List(
+        title = _(u'Exam Results'),
+        value_type = ResultEntryField(),
+        required = True,
+        readonly = False,
+        defaultFactory=list,
+        )
+    hq_type = schema.Choice(
+        title = _(u'Qualification Obtained'),
+        required = False,
+        readonly = False,
+        vocabulary = high_qual,
+        )
+    hq_matric_no = schema.TextLine(
+        title = _(u'Former Matric Number'),
+        required = False,
+        readonly = False,
+        )
+    hq_degree = schema.Choice(
+        title = _(u'Class of Degree'),
+        required = False,
+        readonly = False,
+        vocabulary = high_grade,
+        )
+    hq_school = schema.TextLine(
+        title = _(u'Institution Attended'),
+        required = False,
+        readonly = False,
+        )
+    hq_session = schema.TextLine(
+        title = _(u'Years Attended'),
+        required = False,
+        readonly = False,
+        )
+    hq_disc = schema.TextLine(
+        title = _(u'Discipline'),
+        required = False,
+        readonly = False,
+        )
     jamb_fname = schema.TextLine(
         title = _(u'Full Name'),
@@ -711,13 +807,21 @@
         readonly = False,
         )
-
+    jamb_subjects_list = schema.List(
+        title = _(u'JAMB Subjects'),
+        required = True,
+        defaultFactory=list,
+        value_type = schema.Choice(
+            vocabulary = jambsubjects
+            #source = JAMBSubjectSource(),
+            ),
+        )
     jamb_score = schema.Int(
         title = _(u'Total JAMB Score'),
-        required = False,
+        required = True,
         )
 
     jamb_reg_number = schema.TextLine(
         title = _(u'JAMB Registration Number'),
-        required = False,
+        required = True,
         # constraint=validate_jamb_reg_number_2, # temporarily in 2021
         constraint=validate_jamb_reg_number_3,
@@ -725,4 +829,8 @@
         )
 
+ICustomUGApplicantEdit[
+    'middlename'].order = ICustomUGApplicant['middlename'].order
+ICustomUGApplicantEdit[
+    'nationality'].order = ICustomUGApplicant['nationality'].order
 ICustomUGApplicantEdit[
     'date_of_birth'].order = ICustomUGApplicant['date_of_birth'].order
@@ -730,21 +838,8 @@
     'email'].order = ICustomUGApplicant['email'].order
 ICustomUGApplicantEdit[
+    'subtype'].order = ICustomUGApplicant['subtype'].order
+ICustomUGApplicantEdit[
     'phone'].order =  ICustomUGApplicantEdit['email'].order
-ICustomUGApplicantEdit[
-    'fst_sit_fname'].order =  ICustomUGApplicant['fst_sit_fname'].order
-ICustomUGApplicantEdit[
-    'scd_sit_fname'].order =  ICustomUGApplicant['scd_sit_fname'].order
-ICustomUGApplicantEdit[
-    'jamb_fname'].order =  ICustomUGApplicant['jamb_fname'].order
-ICustomUGApplicantEdit[
-    'jamb_score'].order =  ICustomUGApplicant['jamb_score'].order
-ICustomUGApplicantEdit[
-    'jamb_reg_number'].order =  ICustomUGApplicant['jamb_reg_number'].order
-ICustomUGApplicantEdit[
-    'parents_name'].order =  ICustomUGApplicant['parents_name'].order
-ICustomUGApplicantEdit[
-    'parents_email'].order =  ICustomUGApplicant['parents_email'].order
-ICustomUGApplicantEdit[
-    'parents_phone'].order =  ICustomUGApplicant['parents_phone'].order
+
 
 class ICustomPGApplicantEdit(ICustomPGApplicant):
@@ -767,5 +862,5 @@
     email = TextLineChoice(
         title = _(u'Email Address'),
-        required = False,
+        required = True,
         constraint=validate_email,
         source = contextual_email_source,
