Index: main/waeup.uniben/trunk/src/waeup/uniben/applicants/browser.py
===================================================================
--- main/waeup.uniben/trunk/src/waeup/uniben/applicants/browser.py	(revision 17963)
+++ main/waeup.uniben/trunk/src/waeup/uniben/applicants/browser.py	(revision 17964)
@@ -54,5 +54,6 @@
     IPUTMEApplicantEdit,
     ITranscriptApplicant,
-    IFrenchApplicant)
+    IFrenchApplicant,
+    IAfrimalApplicant)
 from waeup.kofa.applicants.workflow import ADMITTED, PAID, STARTED
 from kofacustom.nigeria.applicants.interfaces import (
@@ -298,4 +299,9 @@
                 form_fields = form_fields.omit(field)
             return form_fields
+        if self.target is not None and self.target == 'afrimal':
+            form_fields = grok.AutoFields(IAfrimalApplicant)
+            for field in REGISTRATION_OMIT_DISPLAY_FIELDS:
+                form_fields = form_fields.omit(field)
+            return form_fields
         if self.target == 'ictwk':
             form_fields = grok.AutoFields(IUnibenRegistration)
@@ -505,4 +511,9 @@
                 form_fields = form_fields.omit(field)
             return form_fields
+        if self.target is not None and self.target == 'afrimal':
+            form_fields = grok.AutoFields(IAfrimalApplicant)
+            for field in REGISTRATION_OMIT_MANAGE_FIELDS:
+                form_fields = form_fields.omit(field)
+            return form_fields
         if self.target is not None and self.target.startswith('pg'):
             form_fields = grok.AutoFields(ICustomPGApplicant)
@@ -627,4 +638,9 @@
         if self.target is not None and self.target == 'flc':
             form_fields = grok.AutoFields(IFrenchApplicant)
+            for field in REGISTRATION_OMIT_EDIT_FIELDS:
+                form_fields = form_fields.omit(field)
+            return form_fields
+        if self.target is not None and self.target == 'afrimal':
+            form_fields = grok.AutoFields(IAfrimalApplicant)
             for field in REGISTRATION_OMIT_EDIT_FIELDS:
                 form_fields = form_fields.omit(field)
@@ -821,4 +837,8 @@
         elif self.target is not None and self.target == 'flc':
             form_fields = grok.AutoFields(IFrenchApplicant)
+            for field in REGISTRATION_OMIT_PDF_FIELDS:
+                form_fields = form_fields.omit(field)
+        elif self.target is not None and self.target == 'afrimal':
+            form_fields = grok.AutoFields(IAfrimalApplicant)
             for field in REGISTRATION_OMIT_PDF_FIELDS:
                 form_fields = form_fields.omit(field)
Index: main/waeup.uniben/trunk/src/waeup/uniben/applicants/interfaces.py
===================================================================
--- main/waeup.uniben/trunk/src/waeup/uniben/applicants/interfaces.py	(revision 17963)
+++ main/waeup.uniben/trunk/src/waeup/uniben/applicants/interfaces.py	(revision 17964)
@@ -614,4 +614,96 @@
         )
 
+class IAfrimalApplicant(IKofaObject):
+    """An AFRIMAL applicant.
+    """
+
+    suspended = schema.Bool(
+        title = _(u'Account suspended'),
+        default = False,
+        required = False,
+        )
+
+    locked = schema.Bool(
+        title = _(u'Form locked'),
+        default = False,
+        required = False,
+        )
+
+    applicant_id = schema.TextLine(
+        title = _(u'Applicant Id'),
+        required = False,
+        readonly = False,
+        )
+
+    firstname = schema.TextLine(
+        title = _(u'First Name'),
+        required = True,
+        )
+
+    middlename = schema.TextLine(
+        title = _(u'Middle Name'),
+        required = False,
+        )
+
+    lastname = schema.TextLine(
+        title = _(u'Surname'),
+        required = True,
+        )
+
+    date_of_birth = FormattedDate(
+        title = _(u'Date of Birth'),
+        required = False,
+        #date_format = u'%d/%m/%Y', # Use grok-instance-wide default
+        show_year = True,
+        )
+
+    sex = schema.Choice(
+        title = _(u'Gender'),
+        source = GenderSource(),
+        required = True,
+        )
+
+    nationality = schema.Choice(
+        vocabulary = nats_vocab,
+        title = _(u'Nationality'),
+        required = False,
+        )
+
+    email = schema.ASCIILine(
+        title = _(u'Email Address'),
+        required = True,
+        constraint=validate_email,
+        )
+
+    phone = PhoneNumber(
+        title = _(u'Phone'),
+        description = u'',
+        required = False,
+        )
+
+    hq_obtained = schema.Choice(
+        title = _(u'Highest Qualification Obtained'),
+        required = False,
+        readonly = False,
+        vocabulary = high_qual,
+        )
+
+    current_employer = schema.TextLine(
+        title = _(u'Current Employer'),
+        required = False,
+        )
+
+    course1 = schema.Choice(
+        title = _(u'Course of Study'),
+        source = AppCatCertificateSource(),
+        required = True,
+        )
+
+    course_admitted = schema.Choice(
+        title = _(u'Admitted Course of Study'),
+        source = CertificateSource(),
+        required = False,
+        )
+
 class ICustomUGApplicant(IApplicantBaseData, IBankAccount):
     """An undergraduate applicant.
@@ -839,5 +931,6 @@
 
 class ICustomApplicant(ICustomUGApplicant, ICustomPGApplicant,
-    IUnibenRegistration, ITranscriptApplicant, IFrenchApplicant):
+    IUnibenRegistration, ITranscriptApplicant, IFrenchApplicant,
+    IAfrimalApplicant):
     """An interface for both types of applicants.
 
Index: main/waeup.uniben/trunk/src/waeup/uniben/applicants/utils.py
===================================================================
--- main/waeup.uniben/trunk/src/waeup/uniben/applicants/utils.py	(revision 17963)
+++ main/waeup.uniben/trunk/src/waeup/uniben/applicants/utils.py	(revision 17964)
@@ -68,4 +68,5 @@
         'flc': ['French Language Centre', 'FR'],
         'cdl': ['Centre For Distance Learning Programmes', 'CDL'],
+        'afrimal': ['African Institute of Management and Leadership Programmes', 'AFR'],
         }
 
Index: main/waeup.uniben/trunk/src/waeup/uniben/utils/utils.py
===================================================================
--- main/waeup.uniben/trunk/src/waeup/uniben/utils/utils.py	(revision 17963)
+++ main/waeup.uniben/trunk/src/waeup/uniben/utils/utils.py	(revision 17964)
@@ -59,4 +59,5 @@
         'cdl': 'Center For Distance Learning',
         'french': 'French Language Center',
+        'afrimal': 'African Institute of Management and Leadership',
         }
 
