Index: main/waeup.kwarapoly/trunk/src/waeup/kwarapoly/students/browser.py
===================================================================
--- main/waeup.kwarapoly/trunk/src/waeup/kwarapoly/students/browser.py	(revision 10709)
+++ main/waeup.kwarapoly/trunk/src/waeup/kwarapoly/students/browser.py	(revision 10710)
@@ -18,4 +18,5 @@
 import grok
 from zope.i18n import translate
+from zope.formlib.textwidgets import BytesDisplayWidget
 from zope.component import getUtility
 from hurry.workflow.interfaces import IWorkflowInfo
@@ -39,7 +40,39 @@
     NigeriaStudentClearanceEditFormPage,
     NigeriaExportPDFCourseRegistrationSlipPage,
+    NigeriaStudentPersonalDisplayFormPage,
+    NigeriaStudentPersonalEditFormPage,
+    NigeriaStudentPersonalManageFormPage
     )
 
-from waeup.kwarapoly.students.interfaces import ICustomStudentOnlinePayment
+from waeup.kwarapoly.students.interfaces import (
+    ICustomStudentOnlinePayment,
+    ICustomStudentPersonal,
+    ICustomStudentPersonalEdit
+    )
+
+class CustomStudentPersonalDisplayFormPage(NigeriaStudentPersonalDisplayFormPage):
+    """ Page to display student personal data
+    """
+    form_fields = grok.AutoFields(ICustomStudentPersonal)
+    form_fields['perm_address'].custom_widget = BytesDisplayWidget
+    form_fields['next_kin_address'].custom_widget = BytesDisplayWidget
+    form_fields['corr_address'].custom_widget = BytesDisplayWidget
+    form_fields['sponsor_address'].custom_widget = BytesDisplayWidget
+    form_fields[
+        'personal_updated'].custom_widget = FriendlyDatetimeDisplayWidget('le')
+
+class CustomStudentPersonalEditFormPage(NigeriaStudentPersonalEditFormPage):
+    """ Page to edit personal data
+    """
+    form_fields = grok.AutoFields(ICustomStudentPersonalEdit).omit(
+        'personal_updated')
+
+class CustomStudentPersonalManageFormPage(NigeriaStudentPersonalManageFormPage):
+    """ Page to edit personal data
+    """
+    form_fields = grok.AutoFields(ICustomStudentPersonal)
+    form_fields['personal_updated'].for_display = True
+    form_fields[
+        'personal_updated'].custom_widget = FriendlyDatetimeDisplayWidget('le')
 
 class CustomOnlinePaymentDisplayFormPage(NigeriaOnlinePaymentDisplayFormPage):
Index: main/waeup.kwarapoly/trunk/src/waeup/kwarapoly/students/interfaces.py
===================================================================
--- main/waeup.kwarapoly/trunk/src/waeup/kwarapoly/students/interfaces.py	(revision 10709)
+++ main/waeup.kwarapoly/trunk/src/waeup/kwarapoly/students/interfaces.py	(revision 10710)
@@ -45,4 +45,33 @@
         title = _(u'Correspondence Address'),
         required = False,
+        )
+
+    sponsor_name = schema.TextLine(
+        title = _(u'Sponsor\'s Name'),
+        required = False,
+        readonly = False,
+        )
+
+    sponsor_address = schema.Text(
+        title = _(u'Sponsor\'s Address'),
+        required = False,
+        readonly = False,
+        )
+
+class ICustomStudentPersonalEdit(ICustomStudentPersonal):
+    """Interface for editing personal data by students.
+
+    Here we can repeat the fields from IStudentPersonal and set the
+    `required` if necessary.
+    """
+
+    perm_address = schema.Text(
+        title = _(u'Home Address'),
+        required = True,
+        )
+
+    corr_address = schema.Text(
+        title = _(u'Correspondence Address'),
+        required = True,
         )
 
Index: main/waeup.kwarapoly/trunk/src/waeup/kwarapoly/students/student.py
===================================================================
--- main/waeup.kwarapoly/trunk/src/waeup/kwarapoly/students/student.py	(revision 10709)
+++ main/waeup.kwarapoly/trunk/src/waeup/kwarapoly/students/student.py	(revision 10710)
@@ -25,5 +25,6 @@
 from waeup.kofa.students.interfaces import IStudentNavigation
 from kofacustom.nigeria.students.student import NigeriaStudent
-from waeup.kwarapoly.students.interfaces import ICustomStudent
+from waeup.kwarapoly.students.interfaces import (
+    ICustomStudent, ICustomStudentPersonalEdit)
 
 class CustomStudent(NigeriaStudent):
@@ -31,5 +32,6 @@
     owned by students.
     """
-    grok.implements(ICustomStudent, IStudentNavigation)
+    grok.implements(ICustomStudent,
+        ICustomStudentPersonalEdit, IStudentNavigation)
     grok.provides(ICustomStudent)
 
