Index: main/kofacustom.nigeria/trunk/src/kofacustom/nigeria/applicants/browser.py
===================================================================
--- main/kofacustom.nigeria/trunk/src/kofacustom/nigeria/applicants/browser.py	(revision 9053)
+++ main/kofacustom.nigeria/trunk/src/kofacustom/nigeria/applicants/browser.py	(revision 9054)
@@ -22,4 +22,5 @@
 from zope.i18n import translate
 from waeup.kofa.widgets.datewidget import FriendlyDatetimeDisplayWidget
+from zope.formlib.textwidgets import BytesDisplayWidget
 from waeup.kofa.students.interfaces import IStudentsUtils
 from waeup.kofa.applicants.interfaces import (
@@ -39,9 +40,23 @@
     INigeriaPGApplicantEdit, INigeriaUGApplicantEdit,
     INigeriaApplicantOnlinePayment,IPUTMEApplicantEdit,
-    UG_OMIT_DISPLAY_FIELDS, PUTME_OMIT_DISPLAY_FIELDS, PG_OMIT_DISPLAY_FIELDS,
-    UG_OMIT_PDF_FIELDS, PUTME_OMIT_PDF_FIELDS, PG_OMIT_PDF_FIELDS,
-    UG_OMIT_MANAGE_FIELDS, PUTME_OMIT_MANAGE_FIELDS, PG_OMIT_MANAGE_FIELDS,
-    UG_OMIT_EDIT_FIELDS, PG_OMIT_EDIT_FIELDS, PUTME_OMIT_EDIT_FIELDS,
-    PUTME_OMIT_RESULT_SLIP_FIELDS)
+    UG_OMIT_DISPLAY_FIELDS,
+    UG_OMIT_PDF_FIELDS,
+    UG_OMIT_MANAGE_FIELDS,
+    UG_OMIT_EDIT_FIELDS,
+    PG_OMIT_DISPLAY_FIELDS,
+    PG_OMIT_PDF_FIELDS,
+    PG_OMIT_MANAGE_FIELDS,
+    PG_OMIT_EDIT_FIELDS,
+    PUTME_OMIT_DISPLAY_FIELDS,
+    PUTME_OMIT_PDF_FIELDS,
+    PUTME_OMIT_MANAGE_FIELDS,
+    PUTME_OMIT_EDIT_FIELDS,
+    PUTME_OMIT_RESULT_SLIP_FIELDS,
+    PUDE_OMIT_DISPLAY_FIELDS,
+    PUDE_OMIT_PDF_FIELDS,
+    PUDE_OMIT_MANAGE_FIELDS,
+    PUDE_OMIT_EDIT_FIELDS,
+    PUDE_OMIT_RESULT_SLIP_FIELDS,
+    )
 from kofacustom.nigeria.interfaces import MessageFactory as _
 
@@ -78,8 +93,14 @@
             for field in PUTME_OMIT_DISPLAY_FIELDS:
                 form_fields = form_fields.omit(field)
+        elif target is not None and target.startswith('pude'):
+            form_fields = grok.AutoFields(INigeriaUGApplicant)
+            for field in PUDE_OMIT_DISPLAY_FIELDS:
+                form_fields = form_fields.omit(field)
         else:
             form_fields = grok.AutoFields(INigeriaUGApplicant)
             for field in UG_OMIT_DISPLAY_FIELDS:
                 form_fields = form_fields.omit(field)
+        form_fields['perm_address'].custom_widget = BytesDisplayWidget
+        form_fields['notice'].custom_widget = BytesDisplayWidget
         return form_fields
 
@@ -113,4 +134,12 @@
                 for field in PUTME_OMIT_PDF_FIELDS:
                     form_fields = form_fields.omit(field)
+        elif target is not None and target.startswith('pude'):
+            form_fields = grok.AutoFields(INigeriaUGApplicant)
+            if self._reduced_slip():
+                for field in PUDE_OMIT_RESULT_SLIP_FIELDS:
+                    form_fields = form_fields.omit(field)
+            else:
+                for field in PUDE_OMIT_PDF_FIELDS:
+                    form_fields = form_fields.omit(field)
         else:
             form_fields = grok.AutoFields(INigeriaUGApplicant)
@@ -136,4 +165,8 @@
             for field in PUTME_OMIT_MANAGE_FIELDS:
                 form_fields = form_fields.omit(field)
+        elif target is not None and target.startswith('pude'):
+            form_fields = grok.AutoFields(INigeriaUGApplicant)
+            for field in PUDE_OMIT_MANAGE_FIELDS:
+                form_fields = form_fields.omit(field)
         else:
             form_fields = grok.AutoFields(INigeriaUGApplicant)
@@ -158,4 +191,8 @@
             form_fields = grok.AutoFields(IPUTMEApplicantEdit)
             for field in PUTME_OMIT_EDIT_FIELDS:
+                form_fields = form_fields.omit(field)
+        elif target is not None and target.startswith('pude'):
+            form_fields = grok.AutoFields(INigeriaUGApplicant)
+            for field in PUDE_OMIT_EDIT_FIELDS:
                 form_fields = form_fields.omit(field)
         else:
Index: main/kofacustom.nigeria/trunk/src/kofacustom/nigeria/applicants/interfaces.py
===================================================================
--- main/kofacustom.nigeria/trunk/src/kofacustom/nigeria/applicants/interfaces.py	(revision 9053)
+++ main/kofacustom.nigeria/trunk/src/kofacustom/nigeria/applicants/interfaces.py	(revision 9054)
@@ -68,4 +68,20 @@
     'screening_date')
 
+# PUDE is a subgroup of UG with the same interface.
+PUDE_OMIT_FIELDS = (
+    'jamb_subjects','jamb_score', 'aggregate')
+PUDE_OMIT_DISPLAY_FIELDS = OMIT_DISPLAY_FIELDS + PUDE_OMIT_FIELDS
+PUDE_OMIT_MANAGE_FIELDS = UG_OMIT_MANAGE_FIELDS + PUDE_OMIT_FIELDS
+PUDE_OMIT_EDIT_FIELDS = set(UG_OMIT_EDIT_FIELDS + PUDE_OMIT_FIELDS + (
+    'firstname', 'middlename', 'lastname', 'sex',
+    'course1', 'lga'))
+PUDE_OMIT_PDF_FIELDS = PUDE_OMIT_DISPLAY_FIELDS + ('email', 'phone')
+PUDE_OMIT_RESULT_SLIP_FIELDS = PUDE_OMIT_DISPLAY_FIELDS + (
+    'email', 'phone',
+    'date_of_birth', 'sex',
+    'nationality', 'lga', 'perm_address',
+    'course2', 'screening_venue',
+    'screening_date')
+
 # PG has its own interface
 PG_OMIT_DISPLAY_FIELDS = OMIT_DISPLAY_FIELDS
