Index: main/waeup.aaue/trunk/src/waeup/aaue/students/reports/level_report.py
===================================================================
--- main/waeup.aaue/trunk/src/waeup/aaue/students/reports/level_report.py	(revision 14516)
+++ main/waeup.aaue/trunk/src/waeup/aaue/students/reports/level_report.py	(revision 14517)
@@ -17,4 +17,5 @@
 ##
 
+import grok
 from waeup.kofa.students.reports.level_report import (
     LevelReport, LevelReportGenerator)
@@ -31,6 +32,14 @@
 #"""
 
-    signatures = [
-        'Head of Department', 'Dean of Faculty']
+    @property
+    def signatures(self):
+        site = grok.getSite()
+        dean = site['faculties'][self.faccode].officer_1
+        hod = site['faculties'][self.faccode][self.depcode].officer_1
+        if not dean:
+            dean = 'Dean of Faculty'
+        if not hod:
+            hod = 'Head of Department'
+        return [hod, dean]
 
 class LevelReportGenerator(LevelReportGenerator):
Index: main/waeup.aaue/trunk/src/waeup/aaue/students/reports/raw_score_report.py
===================================================================
--- main/waeup.aaue/trunk/src/waeup/aaue/students/reports/raw_score_report.py	(revision 14516)
+++ main/waeup.aaue/trunk/src/waeup/aaue/students/reports/raw_score_report.py	(revision 14517)
@@ -17,4 +17,5 @@
 ##
 
+import grok
 from waeup.kofa.students.reports.raw_score_report import (
     RawScoreReport, RawScoreReportGenerator)
@@ -23,5 +24,14 @@
 class CustomRawScoreReport(RawScoreReport):
 
-    signatures = ['Head of Department', 'Dean of Faculty']
+    @property
+    def signatures(self):
+        site = grok.getSite()
+        dean = site['faculties'][self.faccode].officer_1
+        hod = site['faculties'][self.faccode][self.depcode].officer_1
+        if not dean:
+            dean = 'Dean of Faculty'
+        if not hod:
+            hod = 'Head of Department'
+        return [hod, dean]
 
 
Index: main/waeup.aaue/trunk/src/waeup/aaue/students/reports/session_results_presentation.py
===================================================================
--- main/waeup.aaue/trunk/src/waeup/aaue/students/reports/session_results_presentation.py	(revision 14516)
+++ main/waeup.aaue/trunk/src/waeup/aaue/students/reports/session_results_presentation.py	(revision 14517)
@@ -31,23 +31,9 @@
     @property
     def introduction (self):
-        site = grok.getSite()
-        degrees_dict = getUtility(IKofaUtils).DEGREES_DICT
-        if self.certcode == 'all':
-            text = """I present to Senate, on behalf of the Faculty Board,
+        text = """I present to Senate, on behalf of the Faculty Board,
 the results of courses taught and examinations held this academic session.
 The following candidate(s) have/have not satisfied the degree requirements
-of the Faculty and have/have not qualified for the award of an academic
-degree as stated below:
+of the Faculty and have/have not qualified for the award of a degree as follows:
 """
-        else:
-            certificate = site['faculties'][self.faccode][
-                self.depcode].certificates[self.certcode]
-            degree = degrees_dict.get(certificate.degree, '[undefined]')
-            text = """I present to Senate, on behalf of the Faculty Board,
-the results of courses taught and examinations held this academic session.
-The following candidate(s) have/have not satisfied the degree requirements
-of the Faculty and have/have not qualified for the award of a %s as stated
-below:
-""" % degree
         return text
 
@@ -59,5 +45,17 @@
 #"""
 
-    signatures = ['Head of Department', 'External Examiner', 'Dean of Faculty']
+    @property
+    def signatures(self):
+        site = grok.getSite()
+        dean = site['faculties'][self.faccode].officer_1
+        hod = site['faculties'][self.faccode][self.depcode].officer_1
+        examiner = site['faculties'][self.faccode][self.depcode].officer_2
+        if not dean:
+            dean = 'Dean of Faculty'
+        if not hod:
+            hod = 'Head of Department'
+        if not examiner:
+            examiner = 'External Examiner'
+        return [hod, examiner, dean]
 
 class CustomSessionResultsPresentationGenerator(
Index: main/waeup.aaue/trunk/src/waeup/aaue/students/reports/tests/test_level_report.py
===================================================================
--- main/waeup.aaue/trunk/src/waeup/aaue/students/reports/tests/test_level_report.py	(revision 14516)
+++ main/waeup.aaue/trunk/src/waeup/aaue/students/reports/tests/test_level_report.py	(revision 14517)
@@ -36,4 +36,6 @@
     def test_create_pdf(self):
         self.student['studycourse']['100']['Course1'].ca = 0
+        self.app['faculties']['fac1'].officer_1 = 'Rosa Moonshine (Dean of Faculty)'
+        self.app['faculties']['fac1']['dep1'].officer_1 = 'Amalia Sunshine (Head of Department)'
         report = CustomLevelReport('fac1', 'dep1', 'CERT1', 2010, 100)
         result = report.create_pdf('JOB_ID')
Index: main/waeup.aaue/trunk/src/waeup/aaue/students/reports/tests/test_raw_score_report.py
===================================================================
--- main/waeup.aaue/trunk/src/waeup/aaue/students/reports/tests/test_raw_score_report.py	(revision 14516)
+++ main/waeup.aaue/trunk/src/waeup/aaue/students/reports/tests/test_raw_score_report.py	(revision 14517)
@@ -61,4 +61,6 @@
         self.app['faculties']['fac1']['dep1'].certificates[
             'CERT1'].addCertCourse(self.course, level=100)
+        self.app['faculties']['fac1'].officer_1 = 'Rosa Moonshine (Dean of Faculty)'
+        self.app['faculties']['fac1']['dep1'].officer_1 = 'Amalia Sunshine (Head of Department)'
         studylevel = createObject('waeup.StudentStudyLevel')
         studylevel.level = 200
Index: main/waeup.aaue/trunk/src/waeup/aaue/students/reports/tests/test_session_results_presentation.py
===================================================================
--- main/waeup.aaue/trunk/src/waeup/aaue/students/reports/tests/test_session_results_presentation.py	(revision 14516)
+++ main/waeup.aaue/trunk/src/waeup/aaue/students/reports/tests/test_session_results_presentation.py	(revision 14517)
@@ -42,4 +42,7 @@
     def test_create_pdf(self):
         self.certificate.degree = 'BA(FS)'
+        self.app['faculties']['fac1'].officer_1 = 'Rosa Moonshine (Dean of Faculty)'
+        self.app['faculties']['fac1']['dep1'].officer_1 = 'Amalia Sunshine (Head of Department)'
+        self.app['faculties']['fac1']['dep1'].officer_2 = 'Theresa Starbright (External Examiner)'
         report = CustomSessionResultsPresentation('fac1', 'dep1', 'CERT1', 2010, 100)
         result = report.create_pdf('JOB_ID')
