Index: main/waeup.aaue/trunk/src/waeup/aaue/applicants/browser.py
===================================================================
--- main/waeup.aaue/trunk/src/waeup/aaue/applicants/browser.py	(revision 13534)
+++ main/waeup.aaue/trunk/src/waeup/aaue/applicants/browser.py	(revision 13538)
@@ -26,4 +26,6 @@
 from waeup.kofa.utils.helpers import string_from_bytes, file_size
 from waeup.kofa.applicants.browser import ApplicantCheckStatusPage
+from waeup.kofa.applicants.interfaces import ISpecialApplicant
+from waeup.kofa.applicants.viewlets import PDFActionButton
 from waeup.aaue.interfaces import MessageFactory as _
 from kofacustom.nigeria.applicants.browser import (
@@ -56,4 +58,10 @@
 FP_OMIT_EDIT_FIELDS = UG_OMIT_EDIT_FIELDS + FP_OMIT_FIELDS
 
+PG_OMIT_FIELDS = ('programme_type',)
+PG_OMIT_DISPLAY_FIELDS = UG_OMIT_DISPLAY_FIELDS + PG_OMIT_FIELDS
+PG_OMIT_PDF_FIELDS = UG_OMIT_DISPLAY_FIELDS + PG_OMIT_FIELDS
+PG_OMIT_MANAGE_FIELDS = UG_OMIT_MANAGE_FIELDS + PG_OMIT_FIELDS
+PG_OMIT_EDIT_FIELDS = UG_OMIT_EDIT_FIELDS + PG_OMIT_FIELDS
+
 class CustomApplicantDisplayFormPage(NigeriaApplicantDisplayFormPage):
     """A display view for applicant data.
@@ -62,6 +70,13 @@
     @property
     def form_fields(self):
+        if self.target is not None and self.target == 'trans':
+            return grok.AutoFields(ISpecialApplicant).omit(
+                'locked', 'suspended', 'special_application')
+        # AAUE is using the same interface for all regular applications.
         form_fields = grok.AutoFields(ICustomUGApplicant)
-        if self.target is not None and self.target.startswith('fp'):
+        if self.target is not None and self.target.startswith('pg'):
+            for field in PG_OMIT_DISPLAY_FIELDS:
+                form_fields = form_fields.omit(field)
+        elif self.target is not None and self.target.startswith('fp'):
             for field in FP_OMIT_DISPLAY_FIELDS:
                 form_fields = form_fields.omit(field)
@@ -81,4 +96,11 @@
         return form_fields
 
+class CustomPDFActionButton(PDFActionButton):
+
+    @property
+    def target_url(self):
+        return
+
+
 class CustomPDFApplicationSlip(NigeriaPDFApplicationSlip):
 
@@ -107,6 +129,10 @@
     @property
     def form_fields(self):
+        # AAUE is using the same interface for all regular applications.
         form_fields = grok.AutoFields(ICustomUGApplicant)
-        if self.target is not None and self.target.startswith('fp'):
+        if self.target is not None and self.target.startswith('pg'):
+            for field in PG_OMIT_PDF_FIELDS:
+                form_fields = form_fields.omit(field)
+        elif self.target is not None and self.target.startswith('fp'):
             for field in FP_OMIT_PDF_FIELDS:
                 form_fields = form_fields.omit(field)
@@ -130,6 +156,15 @@
     @property
     def form_fields(self):
+        if self.target is not None and self.target == 'trans':
+            form_fields = grok.AutoFields(ISpecialApplicant).omit(
+                'special_application')
+            form_fields['applicant_id'].for_display = True
+            return form_fields
+        # AAUE is using the same interface for all regular applications.
         form_fields = grok.AutoFields(ICustomUGApplicant)
-        if self.target is not None and self.target.startswith('fp'):
+        if self.target is not None and self.target.startswith('pg'):
+            for field in PG_OMIT_MANAGE_FIELDS:
+                form_fields = form_fields.omit(field)
+        elif self.target is not None and self.target.startswith('fp'):
             for field in FP_OMIT_MANAGE_FIELDS:
                 form_fields = form_fields.omit(field)
@@ -147,6 +182,15 @@
     @property
     def form_fields(self):
+        if self.target is not None and self.target == 'trans':
+            form_fields = grok.AutoFields(ISpecialApplicant).omit(
+                'locked', 'suspended', 'special_application')
+            form_fields['applicant_id'].for_display = True
+            return form_fields
+        # AAUE is using the same interface for all regular applications.
         form_fields = grok.AutoFields(ICustomUGApplicantEdit)
-        if self.target is not None and self.target.startswith('fp'):
+        if self.target is not None and self.target.startswith('pg'):
+            for field in PG_OMIT_EDIT_FIELDS:
+                form_fields = form_fields.omit(field)
+        elif self.target is not None and self.target.startswith('fp'):
             for field in FP_OMIT_EDIT_FIELDS:
                 form_fields = form_fields.omit(field)
Index: main/waeup.aaue/trunk/src/waeup/aaue/applicants/utils.py
===================================================================
--- main/waeup.aaue/trunk/src/waeup/aaue/applicants/utils.py	(revision 13534)
+++ main/waeup.aaue/trunk/src/waeup/aaue/applicants/utils.py	(revision 13538)
@@ -33,4 +33,5 @@
         'pgft': ['Postgraduate Full-Time Programmes', 'PG'],
         'pgpt': ['Postgraduate Part-Time Programmes', 'PG'],
+        'trans': ['Transcript Application', 'TR'],
         }
 
