Index: /main/waeup.sirp/branches/ulif-fasttables/src/waeup/sirp/jambtables/interfaces.py
===================================================================
--- /main/waeup.sirp/branches/ulif-fasttables/src/waeup/sirp/jambtables/interfaces.py	(revision 5267)
+++ /main/waeup.sirp/branches/ulif-fasttables/src/waeup/sirp/jambtables/interfaces.py	(revision 5268)
@@ -64,2 +64,256 @@
         `username` - the (optional) username of the importing person.
         """
+
+class IApplicant(IWAeUPObject):
+    """An applicant.
+
+
+    """
+    reg_no = schema.TextLine(
+        title = u'JAMB Registration Number',
+        )
+    access_code = schema.TextLine(
+        title = u'Access Code',
+        )
+    serial = schema.TextLine(
+        title = u'Serial Number',
+        required = False,
+        )
+    course1 = schema.TextLine(
+        title = u'1st Choice Course of Study',
+        )
+    course2 = schema.TextLine(
+        title = u'2nd Choice Course of Study',
+        required = False,
+        )
+    course3 = schema.TextLine(
+        title = u'3rd Choice Course of Study',
+        required = False,
+        )
+    firstname = schema.TextLine(
+        title = u'First Name',
+        )
+    middlenames = schema.TextLine(
+        title = u'Middle Names',
+        )
+    lastname = schema.TextLine(
+        title = u'Surname/Full Name',
+        )
+    jamb_age = schema.Int(
+        title = u'Age (provided by JAMB)',
+        required = False,
+        )
+    date_of_birth = schema.Date(
+        title = u'Date of Birth',
+        )
+    jamb_state = schema.TextLine(
+        title = u'State (provided by JAMB)',
+        )
+    jamb_lga = schema.TextLine(
+        title = u'LGA (provided by JAMB)',
+        )
+    lga = schema.TextLine(
+        # XXX: should be choice
+        title = u'State/LGA (confirmed by applicant)',
+        )
+    sex = schema.Choice(
+        title = u'Sex',
+        values = [u'female', u'male']
+        )
+    email = schema.TextLine(
+        title = u'Email',
+        required = False,
+        )
+    phone = schema.TextLine(
+        title = u'Phone',
+        required = False,
+        )
+    passport = schema.Bool(
+        title = u'Passport Photograph',
+        default = True,
+        )
+    aos = schema.TextLine(
+        # XXX: should be choice
+        title = u'Area of Specialisation',
+        required = False,
+        )
+    subj1 = schema.TextLine(
+        # XXX: should be choice
+        title = u'1st Choice of Study',
+        required = False,
+        )
+    subj2 = schema.TextLine(
+        # XXX: should be choice
+        title = u'2nd Choice of Study',
+        required = False,
+        )
+    subj3 = schema.TextLine(
+        # XXX: should be choice
+        title = u'3rd Choice of Study',
+        required = False,
+        )
+    #
+    # Higher Educational Data
+    #
+    hq_matric_no = schema.TextLine(
+        title = u'Former Matric Number',
+        required = False,
+        )
+    hq_type = schema.TextLine(
+        title = u'Higher Qualification',
+        required = False,
+        )
+    hq_grade = schema.TextLine(
+        title = u'Higher Qualification Grade',
+        required = False,
+        )
+    hq_school = schema.TextLine(
+        title = u'School Attended',
+        required = False,
+        )
+    hq_session = schema.TextLine(
+        title = u'Session Obtained',
+        required = False,
+        )
+    hq_disc = schema.TextLine(
+        title = u'Discipline',
+        required = False,
+        )
+    #
+    # First sitting data
+    #
+    fst_sit_fname = schema.TextLine(
+        title = u'Full Name',
+        )
+    fst_sit_no = schema.TextLine(
+        title = u'Exam Number',
+        required = False,
+        )
+    fst_sit_date = schema.Date(
+        title = u'Exam Date (dd/mm/yyyy)',
+        required = False,
+        )
+    fst_sit_type = schema.TextLine(
+        # XXX: Should be choice
+        title = u'Exam Type',
+        required = False,
+        )
+    fst_sit_results = schema.TextLine(
+        # XXX: Should be nested list of choices
+        title = u'Results',
+        required = False,
+        )
+    #
+    # Second sitting data
+    #
+    scd_sit_fname = schema.TextLine(
+        title = u'Full Name',
+        )
+    scd_sit_no = schema.TextLine(
+        title = u'Exam Number',
+        required = False,
+        )
+    scd_sit_date = schema.Date(
+        title = u'Exam Date (dd/mm/yyyy)',
+        required = False,
+        )
+    scd_sit_type = schema.TextLine(
+        # XXX: Should be choice
+        title = u'Exam Type',
+        required = False,
+        )
+    scd_sit_results = schema.TextLine(
+        # XXX: Should be nested list of choices
+        title = u'Results',
+        required = False,
+        )
+    #
+    # JAMB scores
+    #
+    eng_score = schema.TextLine(
+        title = u"'English' score",
+        required = False,
+        )
+    subj1score = schema.TextLine(
+        title = u'1st Choice of Study Score',
+        required = False,
+        )
+    subj2score = schema.TextLine(
+        title = u'2nd Choice of Study Score',
+        required = False,
+        )
+    subj3score = schema.TextLine(
+        title = u'3rd Choice of Study Score',
+        required = False,
+        )
+    # XXX: Total score???
+    
+    #
+    # Application Data
+    #
+    application_date = schema.Date(
+        title = u'Application Date',
+        )
+    status = schema.TextLine(
+        # XXX: should be 'status' type
+        title = u'Application Status',
+        )
+    screening_date = schema.Date(
+        title = u'Screening Date',
+        )
+    screening_type = schema.TextLine(
+        # XXX: schould be choice
+        title = u'Screening Type',
+        )
+    screening_score = schema.TextLine(
+        title = u'Screening Score',
+        )
+    screening_venue = schema.TextLine(
+        title = u'Screening Venue',
+        required = False,
+        )
+    total_score = schema.TextLine(
+        title = u'Total Score',
+        required = False,
+        )
+    course_admitted = schema.TextLine(
+        # XXX: should be choice
+        title = u'Admitted Course of Study',
+        required = False,
+        )
+    department = schema.TextLine(
+        # XXX: if we have a course, dept. is not necessary
+        title = u'Department',
+        required = False,
+        )
+    faculty = schema.TextLine(
+        # XXX: if we have a course, faculty is not necessary
+        title = u'Faculty',
+        required = False,
+        )
+    entry_session = schema.TextLine(
+        # XXX: should be choice
+        # XXX: should have sensible default: upcoming session
+        title = u 'Entry Session',
+        required = True,
+        )
+    notice = schema.Text(
+        title = u'Notice',
+        required = False,
+        ),
+    student_id = schema.TexLine(
+        title = u'Student ID',
+        required = False,
+        )
+    import_record_no = schema.TextLine(
+        title = u'Import Record No.',
+        )
+    imported_by = schema.TextLine(
+        title = u'Imported By',
+        )
+    import_date = schema.DateTime(
+        title = u'Import Date',
+        )
+    import_from = schema.TextLine(
+        title = u'Import Source',
+        )
