Index: main/waeup.fceokene/trunk/src/waeup/fceokene/applicants/browser.py
===================================================================
--- main/waeup.fceokene/trunk/src/waeup/fceokene/applicants/browser.py	(revision 13876)
+++ main/waeup.fceokene/trunk/src/waeup/fceokene/applicants/browser.py	(revision 13877)
@@ -46,5 +46,6 @@
     BEC_OMIT_PDF_FIELDS,
     BEC_OMIT_MANAGE_FIELDS,
-    BEC_OMIT_EDIT_FIELDS
+    BEC_OMIT_EDIT_FIELDS,
+    ITPURegistration
     )
 
@@ -60,4 +61,8 @@
     def form_fields(self):
         target = getattr(self.context.__parent__, 'prefix', None)
+        if target == 'tpu':
+            form_fields = grok.AutoFields(ITPURegistration).omit(
+                'locked', 'suspended')
+            return form_fields
         form_fields = grok.AutoFields(ICustomUGApplicant)
         if target is not None and target.startswith('bec'):
@@ -107,4 +112,8 @@
     def form_fields(self):
         target = getattr(self.context.__parent__, 'prefix', None)
+        if target == 'tpu':
+            form_fields = grok.AutoFields(ITPURegistration).omit(
+                'locked', 'suspended')
+            return form_fields
         form_fields = grok.AutoFields(ICustomUGApplicant)
         if target is not None and target.startswith('bec'):
@@ -142,4 +151,8 @@
     def form_fields(self):
         target = getattr(self.context.__parent__, 'prefix', None)
+        if target == 'tpu':
+            form_fields = grok.AutoFields(ITPURegistration)
+            form_fields['applicant_id'].for_display = True
+            return form_fields
         form_fields = grok.AutoFields(ICustomUGApplicant)
         if target is not None and target.startswith('bec'):
@@ -160,4 +173,15 @@
     def form_fields(self):
         target = getattr(self.context.__parent__, 'prefix', None)
+        if target == 'tpu':
+            form_fields = grok.AutoFields(ITPURegistration).omit(
+                'locked', 'suspended')
+            form_fields['applicant_id'].for_display = True
+            form_fields['reg_number'].for_display = True
+            form_fields['firstname'].for_display = True
+            form_fields['middlename'].for_display = True
+            form_fields['lastname'].for_display = True
+            form_fields['lga'].for_display = True
+            form_fields['matric_number'].for_display = True
+            return form_fields
         form_fields = grok.AutoFields(ICustomUGApplicantEdit)
         if target is not None and target.startswith('bec'):
Index: main/waeup.fceokene/trunk/src/waeup/fceokene/applicants/export.py
===================================================================
--- main/waeup.fceokene/trunk/src/waeup/fceokene/applicants/export.py	(revision 13876)
+++ main/waeup.fceokene/trunk/src/waeup/fceokene/applicants/export.py	(revision 13877)
@@ -22,5 +22,6 @@
 from kofacustom.nigeria.applicants.export import NigeriaApplicantExporter
 from kofacustom.nigeria.applicants.interfaces import INigeriaUGApplicant
-from waeup.fceokene.applicants.interfaces import ICustomUGApplicant
+from waeup.fceokene.applicants.interfaces import (
+    ICustomUGApplicant, ITPURegistration)
 
 class CustomApplicantExporter(NigeriaApplicantExporter):
@@ -31,4 +32,5 @@
         ICustomUGApplicant.names() +
         INigeriaUGApplicant.names() +
-        IApplicantBaseData.names()
+        IApplicantBaseData.names() +
+        ITPURegistration.names()
         )))
Index: main/waeup.fceokene/trunk/src/waeup/fceokene/applicants/interfaces.py
===================================================================
--- main/waeup.fceokene/trunk/src/waeup/fceokene/applicants/interfaces.py	(revision 13876)
+++ main/waeup.fceokene/trunk/src/waeup/fceokene/applicants/interfaces.py	(revision 13877)
@@ -20,4 +20,5 @@
 
 from zope import schema
+from zc.sourcefactory.basic import BasicSourceFactory
 from waeup.kofa.applicants.interfaces import (
     IApplicantBaseData,
@@ -25,6 +26,7 @@
 from waeup.kofa.schoolgrades import ResultEntryField
 from waeup.kofa.interfaces import (
-    SimpleKofaVocabulary, academic_sessions_vocab, validate_email)
-from waeup.kofa.schema import FormattedDate, TextLineChoice
+    SimpleKofaVocabulary, academic_sessions_vocab, validate_email,
+    IKofaObject)
+from waeup.kofa.schema import FormattedDate, TextLineChoice, PhoneNumber
 from waeup.kofa.schoolgrades import ResultEntryField
 from waeup.kofa.students.vocabularies import nats_vocab, GenderSource
@@ -39,4 +41,5 @@
     OMIT_DISPLAY_FIELDS
     )
+from waeup.fceokene.applicants.schools import SCHOOLS
 from waeup.fceokene.interfaces import MessageFactory as _
 
@@ -53,4 +56,115 @@
     'aggregate')
 
+class SchoolSource(BasicSourceFactory):
+    """A source that delivers all kinds of registrations.
+    """
+    def getValues(self):
+        sorted_items = sorted(SCHOOLS.items(),
+                              key=lambda element: element[0])
+        return [item[0] for item in sorted_items]
+
+    def getTitle(self, value):
+        return u"%s: %s -- %s" % (
+            SCHOOLS[value][0],
+            SCHOOLS[value][1],
+            SCHOOLS[value][2],)
+
+class ITPURegistration(IKofaObject):
+    """A TPU registrant.
+    """
+
+    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,
+        )
+
+    reg_number = schema.TextLine(
+        title = _(u'Registration Number'),
+        required = False,
+        readonly = False,
+        )
+
+    matric_number = schema.TextLine(
+        title = _(u'Matriculation Number'),
+        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'Last Name (Surname)'),
+        required = True,
+        )
+
+    email = schema.ASCIILine(
+        title = _(u'Email Address'),
+        required = True,
+        constraint=validate_email,
+        )
+
+    phone = PhoneNumber(
+        title = _(u'Phone'),
+        description = u'',
+        required = False,
+        )
+
+    perm_address = schema.Text(
+        title = _(u'Home Address'),
+        required = False,
+        readonly = False,
+        )
+
+    lga = schema.Choice(
+        source = LGASource(),
+        title = _(u'State/LGA'),
+        required = False,
+        )
+
+    subj_comb = schema.TextLine(
+        title = _(u'Subject Combination'),
+        required = False,
+        readonly = False,
+        )
+
+    school1 = schema.Choice(
+        title = _(u'1st Choice TPZ and School'),
+        source = SchoolSource(),
+        required = True,
+        )
+
+    school2 = schema.Choice(
+        title = _(u'2nd Choice TPZ and School'),
+        source = SchoolSource(),
+        required = True,
+        )
+
+    school3 = schema.Choice(
+        title = _(u'3rd Choice TPZ and School'),
+        source = SchoolSource(),
+        required = True,
+        )
+
 class ICustomUGApplicant(INigeriaUGApplicant):
     """An undergraduate applicant.
@@ -237,6 +351,7 @@
     """
 
-class ICustomApplicant(ICustomUGApplicant, ICustomPGApplicant):
-    """An interface for both types of applicants.
+class ICustomApplicant(ICustomUGApplicant, ICustomPGApplicant,
+    ITPURegistration):
+    """An interface for all types of applicants.
 
     Attention: The ICustomPGApplicant field seetings will be overwritten
Index: main/waeup.fceokene/trunk/src/waeup/fceokene/applicants/schools.py
===================================================================
--- main/waeup.fceokene/trunk/src/waeup/fceokene/applicants/schools.py	(revision 13877)
+++ main/waeup.fceokene/trunk/src/waeup/fceokene/applicants/schools.py	(revision 13877)
@@ -0,0 +1,140 @@
+SCHOOLS = {
+    's0010': ('Zone 1','Otite, Ogaminana, Obangede','Adavi Local Govt. Science Secondary School, Nagazi, Eba'),
+    's0020': ('Zone 1','Otite, Ogaminana, Obangede','Al-Fathu Group Of School, Oziokutu, Off Adavi LGA Secretariat'),
+    's0030': ('Zone 1','Otite, Ogaminana, Obangede','Al-Jamal Model Nur/Pry School, Eika-Adagu New Layout'),
+    's0040': ('Zone 1','Otite, Ogaminana, Obangede','Amazing Grace N/Pry Schl Nagazi'),
+    's0050': ('Zone 1','Otite, Ogaminana, Obangede','Anointed Montessori School (Secondary Section),'),
+    's0060': ('Zone 1','Otite, Ogaminana, Obangede','Anointed Montessori Schools (Nur/Pry), Section'),
+    's0070': ('Zone 1','Otite, Ogaminana, Obangede','Bahad International Nursery/Primary School, Nagazi, Uvete'),
+    's0080': ('Zone 1','Otite, Ogaminana, Obangede','Baptist Model Nur/Pry School, Abobo'),
+    's0090': ('Zone 1','Otite, Ogaminana, Obangede','Best Brain School Nur/Pry And College, Nagazi-Eba Ogaminana'),
+    's0100': ('Zone 1','Otite, Ogaminana, Obangede','Cedio International Academy Nagazi-Eba'),
+    's0110': ('Zone 1','Otite, Ogaminana, Obangede','Champion Group Of Schools (Pry Section),, Eika Adagu'),
+    's0120': ('Zone 1','Otite, Ogaminana, Obangede','Champion Group Of Schools (Secondary Section),'),
+    's0130': ('Zone 1','Otite, Ogaminana, Obangede','Christ The Redeemer Nursery And Primary School Otite'),
+    's0140': ('Zone 1','Otite, Ogaminana, Obangede','Community Secondary School, Obangede'),
+    's0150': ('Zone 1','Otite, Ogaminana, Obangede','Divine Academy Secondary School, Itakpe'),
+    's0160': ('Zone 1','Otite, Ogaminana, Obangede','Ebira Community Secondary School, Ogaminana'),
+    's0170': ('Zone 1','Otite, Ogaminana, Obangede','Ecoms International School, Nagazi-Uvete'),
+    's0180': ('Zone 1','Otite, Ogaminana, Obangede','FCE Demonstration School'),
+    's0190': ('Zone 1','Otite, Ogaminana, Obangede','FCE Staff Nur And Primary School'),
+    's0200': ('Zone 1','Otite, Ogaminana, Obangede','Gifted Academy, Nagazi Eba'),
+    's0210': ('Zone 1','Otite, Ogaminana, Obangede','Government Science Secondary School, Ogaminana '),
+    's0220': ('Zone 1','Otite, Ogaminana, Obangede','Govt Day Secondary School, Okunchi, Ogaminana'),
+    's0230': ('Zone 1','Otite, Ogaminana, Obangede','Higher Ground Nursery/Pry School, Nagazi'),
+    's0240': ('Zone 1','Otite, Ogaminana, Obangede','Hilltop Group Of School, Eika, Adagu'),
+    's0250': ('Zone 1','Otite, Ogaminana, Obangede','Lgea Eika Adagu'),
+    's0260': ('Zone 1','Otite, Ogaminana, Obangede','Lgea Primary School Itakpe'),
+    's0270': ('Zone 1','Otite, Ogaminana, Obangede','Mica Comprehensive College, Idatochi'),
+    's0280': ('Zone 1','Otite, Ogaminana, Obangede','Niomp Staff Primary School, Itakpe'),
+    's0290': ('Zone 1','Otite, Ogaminana, Obangede','Niomp Staff Secondary School, Itakpe'),
+    's0300': ('Zone 1','Otite, Ogaminana, Obangede','Precious Memory Nursery/Primary School Nagazi Uvete'),
+    's0310': ('Zone 1','Otite, Ogaminana, Obangede','Premier Inter College New Zango, Ogaminana'),
+    's0320': ('Zone 1','Otite, Ogaminana, Obangede','Prince Of Peace Academy Ogaminana, After New Zango Oziokutu '),
+    's0330': ('Zone 1','Otite, Ogaminana, Obangede','Samana Group Of Schools, Nur/Pry Ogaminana'),
+    's0340': ('Zone 1','Otite, Ogaminana, Obangede','Samana Unity College, Ogaminana L.G.A. Nur/Pry Section'),
+    's0350': ('Zone 1','Otite, Ogaminana, Obangede','Samana Unity Collge, Ogaminana LGA Secondary Section'),
+    's0360': ('Zone 1','Otite, Ogaminana, Obangede','Samana Unity Group Of Schools, Obangede Road Behind Raji '),
+    's0370': ('Zone 1','Otite, Ogaminana, Obangede','Sefiyat Sunshine N/Pry'),
+    's0380': ('Zone 1','Otite, Ogaminana, Obangede','Success College Ozuri'),
+    's0390': ('Zone 1','Otite, Ogaminana, Obangede','Triumph Academy, Nagazi-Uvete Along Nagazi-Eba Road'),
+    's0400': ('Zone 1','Otite, Ogaminana, Obangede','Unity Academic Otite (Primary School Section),'),
+    's0410': ('Zone 1','Otite, Ogaminana, Obangede','Unity Academy, Otite (Secondary Section), '),
+    's0420': ('Zone 1','Otite, Ogaminana, Obangede','Universal Basic Education Junior Secondary School, Eika Adagu'),
+    's0430': ('Zone 1','Otite, Ogaminana, Obangede','Uplight Comprehensive College, Behind Gsss Nagazi'),
+    's0440': ('Zone 1','Otite, Ogaminana, Obangede','Williesth International Group Of Schools, Nry/Pry Abobo'),
+    's0450': ('Zone 1','Otite, Ogaminana, Obangede','Winners Nursery/Pry School, Otite'),
+    's0460': ('Zone 2','Okene Metropolis','Abdulazeez Attah Memorial College (Aaamco),'),
+    's0470': ('Zone 2','Okene Metropolis','Demonstration Standard College, Onyukoko- Okene'),
+    's0480': ('Zone 2','Okene Metropolis','Soladard Nursery/Primary School, G.R.A., Okene'),
+    's0490': ('Zone 3','Kuroko-Inoziomi-Gra','Climax Group Of School, Inoziomi'),
+    's0500': ('Zone 3','Kuroko-Inoziomi-Gra','Government Day Secondary School, Inoziomi'),
+    's0510': ('Zone 3','Kuroko-Inoziomi-Gra','Mirror Science & Tecnnical Academy, Kuroku Idakatapa'),
+    's0520': ('Zone 4','Okengwe Ihima','Adavi Community Secondary School, Adavi-Eba'),
+    's0530': ('Zone 4','Okengwe Ihima','Ebira Muslim Community College, Okengwe'),
+    's0540': ('Zone 4','Okengwe Ihima','Government Day Secondary School, Ohueta-Ihima'),
+    's0550': ('Zone 4','Okengwe Ihima','Leadership Academy Centre, Oro New-Layout'),
+    's0560': ('Zone 4','Okengwe Ihima','New Day Nur/Pry Sch., Ogere Close, Gra Road, Agassa Okene'),
+    's0570': ('Zone 4','Okengwe Ihima','Okehi Community Secondary School, Oboroke-Ihima'),
+    's0580': ('Zone 4','Okengwe Ihima','Okehi Community Secondary School, Uboro'),
+    's0590': ('Zone 5','Adogo Ajaokuta','Community Secondary School Geregu'),
+    's0600': ('Zone 5','Adogo Ajaokuta','Government Science Secondary School, Adogo'),
+    's0610': ('Zone 6','Magongo/Ibillo','Anglican Nursery/Primary School, (St. Peter\'s0), Ogori'),
+    's0620': ('Zone 6','Magongo/Ibillo','Community Secondary School Magongo'),
+    's0630': ('Zone 6','Magongo/Ibillo','Ekpe Mixed Grammar School, Ekpe Akoko Edo'),
+    's0640': ('Zone 6','Magongo/Ibillo','Enwan Mixed Secondary School Enwan, Akoko Edo'),
+    's0650': ('Zone 6','Magongo/Ibillo','Government Science Secondary School, Ogori Mangogo'),
+    's0660': ('Zone 6','Magongo/Ibillo','Ibilokha Secondary School, Ibillo, Akoko Edo'),
+    's0670': ('Zone 6','Magongo/Ibillo','Ojirami Senior Secondary School, Ojirami, Akoko-Edo'),
+    's0680': ('Zone 7','Kabba Aiyetoro Gbedde','Community High School Aiyetoro Gbede'),
+    's0690': ('Zone 7','Kabba Aiyetoro Gbedde','Divine Intervention Academy, Aiyetoro Gbedde, Ijumu'),
+    's0700': ('Zone 7','Kabba Aiyetoro Gbedde','Kings And Queens Model Academy, Kabba'),
+    's0710': ('Zone 7','Kabba Aiyetoro Gbedde','Local Government Secondary School, Kabba'),
+    's0720': ('Zone 7','Kabba Aiyetoro Gbedde','Muslim Community Secondary School, Aiyetoro Gbede'),
+    's0730': ('Zone 7','Kabba Aiyetoro Gbedde','St. Barnabas Secondary School, Kabba'),
+    's0740': ('Zone 7','Kabba Aiyetoro Gbedde','St. Joseph Ube Secondary School, Kabba '),
+    's0750': ('Zone 7','Kabba Aiyetoro Gbedde','St. Mary Nursery/Primary School, Kabba'),
+    's0760': ('Zone 7','Kabba Aiyetoro Gbedde','St. Monica College, Kabba'),
+    's0770': ('Zone 8','Ikare','African Church (Senior), Grammar Sch. Oka,  Akoko Ondo State'),
+    's0780': ('Zone 8','Ikare','Agbogbo Grammar School, Supare, Akoko'),
+    's0790': ('Zone 8','Ikare','Agboriki Comprehensive High School, Ikare'),
+    's0800': ('Zone 8','Ikare','Aud Grammar School, Ikare, Akoko'),
+    's0810': ('Zone 8','Ikare','Aud Pry School Iv, Ekan Ikare-Akoko '),
+    's0820': ('Zone 8','Ikare','Brighter Future Nursery/Pry School, Isua'),
+    's0830': ('Zone 8','Ikare','Comprehensive High School, Iwaro, Oka, Akoko'),
+    's0840': ('Zone 8','Ikare','Dynamic Group Of Schools, Nur/Pry Ipe-Akoko, Ondo State'),
+    's0850': ('Zone 8','Ikare','Good News International Nur/Pry School, Ugbe, Akoko'),
+    's0860': ('Zone 8','Ikare','Holy Trinity Primary School, Akungba, Akoko'),
+    's0870': ('Zone 8','Ikare','Ifejola Internation College, Arigidi, Akoko'),
+    's0880': ('Zone 8','Ikare','Ipe High School, Ipe, Akoko'),
+    's0890': ('Zone 8','Ikare','Isua High School, Isua, Akoko'),
+    's0900': ('Zone 8','Ikare','Jolad Nur/Pry, High School, Agbaluku, Arigidi, Akoko'),
+    's0910': ('Zone 8','Ikare','Obaahoho Comprehensive High School, Epinmi'),
+    's0920': ('Zone 8','Ikare','Oroke High School, Akungba-Akoko'),
+    's0930': ('Zone 8','Ikare','Otolomi High School, Ikaram-Akoko Ondo State'),
+    's0940': ('Zone 8','Ikare','Prince Of Peace Academy, Ugbe- Akoko Ondo State'),
+    's0950': ('Zone 8','Ikare','St. Patrick\'s0 College, Iwaro, Oka-Akoko'),
+    's0960': ('Zone 8','Ikare','St. Paul Anglican Pry School, Iyoke-Ikaram, Akoko, Ondo-State'),
+    's0970': ('Zone 8','Ikare','Unity Secondary School, Epinmi, Akoko'),
+    's0980': ('Zone 8','Ikare','Victory College, Ikare'),
+    's0990': ('Zone 9','Mopa Isanlu','African Church Secondary School, Isanlu'),
+    's1000': ('Zone 9','Mopa Isanlu','Isanlu High School Ijowa Isanlu'),
+    's1010': ('Zone 9','Mopa Isanlu','St. Joseph (R.C.M.), Lgea School Isanlu'),
+    's1020': ('Zone 10','Iyara-Omuo','Aud Primary School, Iyamoye-Ijumu'),
+    's1030': ('Zone 10','Iyara-Omuo','Baptist High School, Ekinrin Adde, Ijumu'),
+    's1040': ('Zone 10','Iyara-Omuo','Community Grammar Shool, Omuo'),
+    's1050': ('Zone 10','Iyara-Omuo','Community Secondary School, Ayere, Ijumu'),
+    's1060': ('Zone 10','Iyara-Omuo','Community Secondary School, Iyamoye'),
+    's1070': ('Zone 10','Iyara-Omuo','Comprehensive High School, Obadore, Omuo'),
+    's1080': ('Zone 10','Iyara-Omuo','Emmanuel International Group Of Sch., Iyara Ijumu'),
+    's1090': ('Zone 10','Iyara-Omuo','Government Secondary School, Iyamoye'),
+    's1100': ('Zone 11','Lokoja','Alhikmat Science College Lokongoma, Lokoja'),
+    's1110': ('Zone 11','Lokoja','Army Day Secondary School, Lokoja'),
+    's1120': ('Zone 11','Lokoja','Bishop Delise College Lokoja'),
+    's1130': ('Zone 11','Lokoja','Community Secondary School Gegu'),
+    's1140': ('Zone 11','Lokoja','Government Day Secondary School, Adankolo Lokoja'),
+    's1150': ('Zone 11','Lokoja','Government Science Secondary Sch., Koton Karfi'),
+    's1160': ('Zone 11','Lokoja','Great Nur/Pry School, Kabba-Junction Zariagi, Lokoja'),
+    's1170': ('Zone 11','Lokoja','Model Nur/Pry School, Koton-Karfe '),
+    's1180': ('Zone 11','Lokoja','St Mary Nursery & Pri. Sch., Lokoja'),
+    's1190': ('Zone 11','Lokoja','The Grace International Nursery & Primary Sch. Obajana Lokoja'),
+    's1200': ('Zone 12','Itobe-Aloma','Community Secondary School, Ejule'),
+    's1210': ('Zone 12','Itobe-Aloma','Community Secondary School, Ofakaga'),
+    's1220': ('Zone 12','Itobe-Aloma','Government Secondary School, Itobe'),
+    's1230': ('Zone 13','Anyingba Ochaja','Agbeko Grammar School, Agbeji'),
+    's1240': ('Zone 13','Anyingba Ochaja','Bedrock International School, Agala-Ogane Road, Behind Upper Level Anyigba'),
+    's1250': ('Zone 13','Anyingba Ochaja','Community Secondary School, Anyingba'),
+    's1260': ('Zone 13','Anyingba Ochaja','Ochaja Boys Secondary School, Ochaja'),
+    's1270': ('Zone 13','Anyingba Ochaja','Our Lady Of Schools Anyingba'),
+    's1280': ('Zone 14','Idah-Ugwolawo','Community Secondary School Ajeke Ijaga Abocho'),
+    's1290': ('Zone 14','Idah-Ugwolawo','Community Secondary School Ugwolawo'),
+    's1300': ('Zone 14','Idah-Ugwolawo','Dickson Memorial College Idah'),
+    's1310': ('Zone 14','Idah-Ugwolawo','Idah Secondary Commercial College'),
+    's1320': ('Zone 14','Idah-Ugwolawo','St. Peter\'s College Idah'),
+    's1330': ('Zone 14','Idah-Ugwolawo','Uec Secondary School,  Ugwolawo'),
+    's1340': ('Zone 15','Okpella-Auchi','Anglican Grammer School, Okpella Edo State'),
+    's1350': ('Zone 15','Okpella-Auchi','Auchi College Auchi'),
+    's1360': ('Zone 15','Okpella-Auchi','Etsako West Primary Council, Auchi'),
+    's1370': ('Zone 15','Okpella-Auchi','Iyora Secondary School, Iyora-Uzairue'),
+    's1380': ('Zone 15','Okpella-Auchi','St. Angela\'s Girls Grammar School, Uzairue'),
+    }
Index: main/waeup.fceokene/trunk/src/waeup/fceokene/applicants/utils.py
===================================================================
--- main/waeup.fceokene/trunk/src/waeup/fceokene/applicants/utils.py	(revision 13876)
+++ main/waeup.fceokene/trunk/src/waeup/fceokene/applicants/utils.py	(revision 13877)
@@ -41,5 +41,6 @@
         'pce': ['PCE Screening', 'PCE'],
         'bec': ['Bachelor of Education Certificate Programmes', 'BEC'],
-        'rem': ['Remedial', 'REM']
+        'rem': ['Remedial', 'REM'],
+        'tpu': ['Teaching Practice Unit', 'TPU'],
         }
 
