Index: main/waeup.aaue/trunk/src/waeup/aaue/applicants/applicant.py
===================================================================
--- main/waeup.aaue/trunk/src/waeup/aaue/applicants/applicant.py	(revision 17675)
+++ main/waeup.aaue/trunk/src/waeup/aaue/applicants/applicant.py	(revision 17719)
@@ -29,5 +29,6 @@
     ICustomApplicant, ICustomUGApplicantEdit, ICustomPGApplicantEdit,
     IPUTMEApplicantEdit, ITranscriptApplicant, ICertificateRequest,
-    IFedexRequest, IRecruitment, ICustomApplicantRefereeReport)
+    IFedexRequest, IRecruitment, ICustomApplicantRefereeReport,
+    IResultReissuanceRequest)
 
 class CustomApplicant(NigeriaApplicant):
@@ -36,5 +37,6 @@
         ICustomPGApplicantEdit, IPUTMEApplicantEdit,
         ITranscriptApplicant, ICertificateRequest,
-        IFedexRequest, IRecruitment)
+        IFedexRequest, IRecruitment,
+        IResultReissuanceRequest)
     grok.provides(ICustomApplicant)
 
Index: main/waeup.aaue/trunk/src/waeup/aaue/applicants/browser.py
===================================================================
--- main/waeup.aaue/trunk/src/waeup/aaue/applicants/browser.py	(revision 17675)
+++ main/waeup.aaue/trunk/src/waeup/aaue/applicants/browser.py	(revision 17719)
@@ -70,4 +70,5 @@
     ICustomApplicantOnlinePayment,
     ICustomApplicantRefereeReport,
+    IResultReissuanceRequest,
     )
 
@@ -253,4 +254,9 @@
             form_fields['body_address'].custom_widget = BytesDisplayWidget
             return form_fields
+        if self.target is not None and self.target == 'res':
+            form_fields = grok.AutoFields(IResultReissuanceRequest).omit(
+                'locked', 'suspended')
+            form_fields['body_address'].custom_widget = BytesDisplayWidget
+            return form_fields
         if self.target is not None and self.target == 'cert':
             form_fields = grok.AutoFields(ICertificateRequest).omit(
@@ -368,4 +374,7 @@
         elif self.target is not None and self.target == 'send':
             form_fields = grok.AutoFields(ISendByEmailRequest).omit(
+                'locked', 'suspended')
+        if self.target is not None and self.target == 'res':
+            form_fields = grok.AutoFields(IResultReissuanceRequest).omit(
                 'locked', 'suspended')
         elif self.target is not None and self.target == 'cert':
@@ -433,4 +442,8 @@
             form_fields['applicant_id'].for_display = True
             return form_fields
+        if self.target is not None and self.target == 'res':
+            form_fields = grok.AutoFields(IResultReissuanceRequest)
+            form_fields['applicant_id'].for_display = True
+            return form_fields
         if self.target is not None and self.target == 'fedex':
             form_fields = grok.AutoFields(IFedexRequest)
@@ -565,5 +578,8 @@
             form_fields = grok.AutoFields(ISendByEmailRequest).omit(
                 'locked', 'suspended')
-            form_fields['applicant_id'].for_display = True
+            return form_fields
+        if self.target is not None and self.target == 'res':
+            form_fields = grok.AutoFields(IResultReissuanceRequest).omit(
+                'locked', 'suspended')
             return form_fields
         if self.target is not None and self.target == 'fedex':
Index: main/waeup.aaue/trunk/src/waeup/aaue/applicants/interfaces.py
===================================================================
--- main/waeup.aaue/trunk/src/waeup/aaue/applicants/interfaces.py	(revision 17675)
+++ main/waeup.aaue/trunk/src/waeup/aaue/applicants/interfaces.py	(revision 17719)
@@ -81,4 +81,12 @@
     (_('Attestation'), 'attest'),
     (_('Proficiency in English Language'), 'english'),
+    (_('Introduction Letter'), 'introduction'),
+    (_('Certification'), 'certification'),
+    )
+
+request_types_vocab_2 = SimpleKofaVocabulary(
+    (_('Issuance of Post-Graduate Statement of Result'), 'statement_of_result'),
+    (_('Re-Issuance of Results'), 'results'),
+    (_('Correction of Result'), 'correction'),
     )
 
@@ -1549,8 +1557,20 @@
         )
 
+class IResultReissuanceRequest(ISendByEmailRequest):
+    """A applicant asking for sending an email.
+    """
+
+    request_type = schema.Choice(
+        title = _(u'Request Type'),
+        vocabulary = request_types_vocab_2,
+        required = True,
+        )
+IResultReissuanceRequest['request_type'].order = ISendByEmailRequest[
+    'request_type'].order
+
 class ICustomApplicant(ICustomUGApplicant, ICustomPGApplicant,
                        ITranscriptApplicant, ICertificateRequest,
                        IVerificationRequest, ISendByEmailRequest,
-                       IFedexRequest, IRecruitment):
+                       IFedexRequest, IRecruitment, IResultReissuanceRequest):
     """An interface for all types of applicants.
 
Index: main/waeup.aaue/trunk/src/waeup/aaue/applicants/utils.py
===================================================================
--- main/waeup.aaue/trunk/src/waeup/aaue/applicants/utils.py	(revision 17675)
+++ main/waeup.aaue/trunk/src/waeup/aaue/applicants/utils.py	(revision 17719)
@@ -49,4 +49,5 @@
         'fedex': ['Payment for Courier (Fedex)', 'FED'],
         'rec': ['AAU Recruitment', 'REC'],
+        'res': ['Result Re-Issuance Request', 'RE'],
         }
 
