Index: main/waeup.uniben/trunk/src/waeup/uniben/applicants/browser.py
===================================================================
--- main/waeup.uniben/trunk/src/waeup/uniben/applicants/browser.py	(revision 8020)
+++ main/waeup.uniben/trunk/src/waeup/uniben/applicants/browser.py	(revision 8051)
@@ -87,4 +87,12 @@
         if target is not None and target.startswith('pg'):
             form_fields = grok.AutoFields(IPGApplicant)
+            form_fields[
+                'emp_start'].custom_widget = FriendlyDateWidget('le-year')
+            form_fields[
+                'emp_end'].custom_widget = FriendlyDateWidget('le-year')
+            form_fields[
+                'emp2_start'].custom_widget = FriendlyDateWidget('le-year')
+            form_fields[
+                'emp2_end'].custom_widget = FriendlyDateWidget('le-year')
         else:
             form_fields = grok.AutoFields(IUGApplicant)
@@ -107,10 +115,18 @@
             form_fields = grok.AutoFields(IPGApplicantEdit).omit(
                 'locked', 'course_admitted', 'student_id',
-                'screening_score', 'reg_number'
+                'screening_score', 'screening_venue'
                 )
+            form_fields[
+                'emp_start'].custom_widget = FriendlyDateWidget('le-year')
+            form_fields[
+                'emp_end'].custom_widget = FriendlyDateWidget('le-year')
+            form_fields[
+                'emp2_start'].custom_widget = FriendlyDateWidget('le-year')
+            form_fields[
+                'emp2_end'].custom_widget = FriendlyDateWidget('le-year')
         else:
             form_fields = grok.AutoFields(IUGApplicantEdit).omit(
                 'locked', 'course_admitted', 'student_id',
-                'screening_score', 'reg_number'
+                'screening_score'
                 )
         form_fields[
@@ -118,3 +134,4 @@
         form_fields['phone'].custom_widget = PhoneWidget
         form_fields['applicant_id'].for_display = True
+        form_fields['reg_number'].for_display = True
         return form_fields
Index: main/waeup.uniben/trunk/src/waeup/uniben/applicants/interfaces.py
===================================================================
--- main/waeup.uniben/trunk/src/waeup/uniben/applicants/interfaces.py	(revision 8020)
+++ main/waeup.uniben/trunk/src/waeup/uniben/applicants/interfaces.py	(revision 8051)
@@ -20,6 +20,55 @@
 
 from zope import schema
-from waeup.kofa.applicants.interfaces import IApplicant, IApplicantProcessData
+from waeup.kofa.applicants.interfaces import (
+    IApplicant, IApplicantProcessData,
+    AppCatCertificateSource, CertificateSource)
+from waeup.kofa.schoolgrades import ResultEntryField
+from waeup.kofa.interfaces import SimpleKofaVocabulary
 from waeup.uniben.interfaces import MessageFactory as _
+
+high_qual = SimpleKofaVocabulary(
+    ('National Certificate of Education','nce'),
+    ('Pre Degree Programme','pre'),
+    ('Diploma Programme','dip'),
+    ('Ordinary National Diploma','ond'),
+    ('Bachelors Degree','bd'),
+    ('Masters Degree','md'),
+    ('Professional Qualification','pq'),
+    ('Other Certification','oc'),
+    ('Higher National Diploma','hnd'),
+    ('NCE AL OTH','nce_al_oth'),
+    ('National Defence Academy','nda'),
+    ('Awaiting Results','a_rslt'),
+    ('RMC','rmc'),
+    )
+
+high_grade = SimpleKofaVocabulary(
+    ('Upper Credit','upper_credit'),
+    ('Distinction','distinction'),
+    ('Credit','credit'),
+    ('Merit','merit'),
+    ('Lower Credit','lower_credit'),
+    ('First Class','first_class'),
+    ('Second Class Upper','second_class_upper'),
+    ('Second Class Lower','second_class_lower'),
+    ('Third Class','third_class'),
+    ('Pass','pass'),
+    ('Awaiting Results','a_rslt'),
+    ('A Levels','al'),
+    )
+
+exam_types = SimpleKofaVocabulary(
+    ('SSCE','ssce'),
+    ('WAEC','waec'),
+    ('GCE O\' LEVEL','gce_o_level'),
+    ('TC II','tc_ii'),
+    ('RSA','rsa'),
+    ('NABTEB','nabteb'),
+    ('NECO','neco'),
+    ('ACE','ace'),
+    ('GCE A\' LEVEL','gce_a_level'),
+    ('IGCSE','igcse'),
+    )
+
 
 class IUGApplicant(IApplicant):
@@ -33,4 +82,56 @@
     """
 
+    perm_address = schema.Text(
+        title = _(u'Permanent Address'),
+        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,
+        )
+    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,
+        )
+    pp_school = schema.Choice(
+        title = _(u'Qualification Obtained'),
+        required = False,
+        readonly = False,
+        vocabulary = exam_types,
+        )
     employer = schema.TextLine(
         title = _(u'Employer'),
@@ -38,4 +139,74 @@
         readonly = False,
         )
+    emp_position = schema.TextLine(
+        title = _(u'Employer Position'),
+        required = False,
+        readonly = False,
+        )
+    emp_start = schema.Date(
+        title = _(u'Start Date'),
+        required = False,
+        readonly = False,
+        )
+    emp_end = schema.Date(
+        title = _(u'End Date'),
+        required = False,
+        readonly = False,
+        )
+    emp_reason = schema.TextLine(
+        title = _(u'Reason for Leaving'),
+        required = False,
+        readonly = False,
+        )
+    employer2 = schema.TextLine(
+        title = _(u'2nd Employer'),
+        required = False,
+        readonly = False,
+        )
+    emp2_position = schema.TextLine(
+        title = _(u'2nd Employer Position'),
+        required = False,
+        readonly = False,
+        )
+    emp2_start = schema.Date(
+        title = _(u'Start Date'),
+        required = False,
+        readonly = False,
+        )
+    emp2_end = schema.Date(
+        title = _(u'End Date'),
+        required = False,
+        readonly = False,
+        )
+    emp2_reason = schema.TextLine(
+        title = _(u'Reason for Leaving'),
+        required = False,
+        readonly = False,
+        )
+    notice = schema.Text(
+        title = _(u'Notice'),
+        required = False,
+        readonly = False,
+        )
+    screening_venue = schema.TextLine(
+        title = _(u'Screening Venue'),
+        required = False,
+        readonly = False,
+        )
+    screening_score = schema.Int(
+        title = _(u'Screening Score'),
+        required = False,
+        readonly = False,
+        )
+    course_admitted = schema.Choice(
+        title = _(u'Admitted Course of Study'),
+        source = CertificateSource(),
+        required = False,
+        readonly = False,
+        )
+
+
+IPGApplicant[
+    'student_id'].order =  IPGApplicant['notice'].order
 
 class IApplicant(IUGApplicant,IPGApplicant):
Index: main/waeup.uniben/trunk/src/waeup/uniben/applicants/utils.py
===================================================================
--- main/waeup.uniben/trunk/src/waeup/uniben/applicants/utils.py	(revision 8020)
+++ main/waeup.uniben/trunk/src/waeup/uniben/applicants/utils.py	(revision 8051)
@@ -21,4 +21,5 @@
 import grok
 from waeup.kofa.applicants.utils import ApplicantsUtils
+from waeup.uniben.interfaces import MessageFactory as _
 
 class ApplicantsUtils(ApplicantsUtils):
@@ -39,2 +40,13 @@
         'pg': ['Postgraduate Programmes', 'PCE']
         }
+
+    SEPARATORS_DICT = {
+        'form.applicant_id': _(u'Base Data'),
+        'form.course1': _(u'Programmes/Courses Desired'),
+        'form.hq_type': _(u'Higher Education Record'),
+        'form.presently': _(u'Course or Programme Presently Attending'),
+        'form.nysc_year': _(u'NYSC Information'),
+        'form.employer': _(u'Employer History'),
+        'form.notice': _(u'Application Process Information'),
+        'form.pp_school': _(u'Post Primary School Qualification'),
+        }
