Index: main/waeup.aaue/trunk/src/waeup/aaue/students/browser.py
===================================================================
--- main/waeup.aaue/trunk/src/waeup/aaue/students/browser.py	(revision 14660)
+++ main/waeup.aaue/trunk/src/waeup/aaue/students/browser.py	(revision 14661)
@@ -126,4 +126,56 @@
         'personal_updated'].custom_widget = FriendlyDatetimeDisplayWidget('le')
 
+
+class ExportExaminationScheduleSlip(UtilityView, grok.View):
+    """Deliver a examination schedule slip.
+
+    This form page is available only in Uniben and AAUE.
+    """
+    grok.context(ICustomStudent)
+    grok.name('examination_schedule_slip.pdf')
+    grok.require('waeup.viewStudent')
+    prefix = 'form'
+
+    label = u'Examination Schedule Slip'
+
+    omit_fields = (
+        'suspended', 'phone', 'email',
+        'adm_code', 'suspended_comment',
+        'date_of_birth', 'current_level',
+        'current_mode',
+        'entry_session',
+        'flash_notice')
+
+    form_fields = []
+
+    @property
+    def note(self):
+        return """
+<br /><br /><br /><br /><font size='12'>
+Your examination date, time and venue is scheduled as follows:
+<br /><br />
+<strong>%s</strong>
+</font>
+
+""" % self.context.flash_notice
+        return
+
+
+    def update(self):
+        if not self.context.flash_notice \
+            or not 'exam' in self.context.flash_notice.lower():
+            self.flash(_('Forbidden'), type="warning")
+            self.redirect(self.url(self.context))
+
+    def render(self):
+        studentview = StudentBasePDFFormPage(self.context.student,
+            self.request, self.omit_fields)
+        students_utils = getUtility(IStudentsUtils)
+        return students_utils.renderPDF(
+            self, 'examination_schedule_slip',
+            self.context.student, studentview,
+            omit_fields=self.omit_fields,
+            note=self.note)
+
 class CustomStudentClearanceDisplayFormPage(NigeriaStudentClearanceDisplayFormPage):
     """ Page to display student clearance data
Index: main/waeup.aaue/trunk/src/waeup/aaue/students/tests/test_browser.py
===================================================================
--- main/waeup.aaue/trunk/src/waeup/aaue/students/tests/test_browser.py	(revision 14660)
+++ main/waeup.aaue/trunk/src/waeup/aaue/students/tests/test_browser.py	(revision 14661)
@@ -1240,2 +1240,19 @@
             '...Successfully added COURSE2...', self.browser.contents)
         return
+
+    def test_examination_schedule_slip(self):
+        self.student.flash_notice = u'My Examination Date'
+        self.browser.open(self.login_path)
+        self.browser.getControl(name="form.login").value = self.student_id
+        self.browser.getControl(name="form.password").value = 'spwd'
+        self.browser.getControl("Login").click()
+        self.browser.getLink("Download examination schedule slip").click()
+        self.assertEqual(self.browser.headers['Status'], '200 Ok')
+        self.assertEqual(self.browser.headers['Content-Type'], 'application/pdf')
+        path = os.path.join(samples_dir(), 'examination_schedule_slip.pdf')
+        open(path, 'wb').write(self.browser.contents)
+        print "Sample PDF examination_schedule_slip.pdf written to %s" % path
+        # If flash_notive does not contain exam' the button does not show up.
+        self.student.flash_notice = u'anything'
+        self.browser.open(self.student_path)
+        self.assertFalse('examination schedule slip' in self.browser.contents)
Index: main/waeup.aaue/trunk/src/waeup/aaue/students/viewlets.py
===================================================================
--- main/waeup.aaue/trunk/src/waeup/aaue/students/viewlets.py	(revision 14660)
+++ main/waeup.aaue/trunk/src/waeup/aaue/students/viewlets.py	(revision 14661)
@@ -104,4 +104,20 @@
         return self.view.url(self.view.context, self.target)
 
+class ExaminationScheduleSlipActionButton(ManageActionButton):
+    grok.order(10)
+    grok.context(ICustomStudent)
+    grok.view(StudentBaseDisplayFormPage)
+    grok.require('waeup.viewStudent')
+    icon = 'actionicon_pdf.png'
+    text = _('Download examination schedule slip')
+    target = 'examination_schedule_slip.pdf'
+
+    @property
+    def target_url(self):
+        if self.context.flash_notice \
+            and 'exam' in self.context.flash_notice.lower():
+            return self.view.url(self.view.context, self.target)
+        return False
+
 class PersonalDataSlipActionButton(ManageActionButton):
     grok.order(3)
