Index: main/waeup.kofa/trunk/src/waeup/kofa/students/browser.py
===================================================================
--- main/waeup.kofa/trunk/src/waeup/kofa/students/browser.py	(revision 10251)
+++ main/waeup.kofa/trunk/src/waeup/kofa/students/browser.py	(revision 10256)
@@ -668,5 +668,6 @@
     omit_fields = (
         'password', 'suspended', 'phone',
-        'adm_code', 'suspended_comment')
+        'adm_code', 'suspended_comment',
+        'date_of_birth')
 
     @property
@@ -1223,5 +1224,5 @@
     prefix = 'form'
     omit_fields = (
-        'password', 'suspended', 'phone',
+        'password', 'suspended', 'phone', 'date_of_birth',
         'adm_code', 'sex', 'suspended_comment')
 
@@ -1773,5 +1774,5 @@
     note = None
     omit_fields = (
-        'password', 'suspended', 'phone',
+        'password', 'suspended', 'phone', 'date_of_birth',
         'adm_code', 'sex', 'suspended_comment')
 
@@ -2019,5 +2020,6 @@
     prefix = 'form'
     omit_fields = (
-        'password', 'suspended', 'phone', 'adm_code', 'suspended_comment')
+        'password', 'suspended', 'phone', 'adm_code',
+        'suspended_comment', 'date_of_birth')
 
     @property
Index: main/waeup.kofa/trunk/src/waeup/kofa/students/tests/test_browser.py
===================================================================
--- main/waeup.kofa/trunk/src/waeup/kofa/students/tests/test_browser.py	(revision 10251)
+++ main/waeup.kofa/trunk/src/waeup/kofa/students/tests/test_browser.py	(revision 10256)
@@ -1834,6 +1834,6 @@
         self.assertEqual(td[0][0]['level'].level, 100)
         self.assertEqual(td[0][0]['level'].level_session, 2005)
-        self.assertEqual(td[0][0]['tickets_1'][0].code, 'COURSE1')
-        self.assertEqual(td[0][0]['tickets_1'][1].code, 'ANYCODE')
+        self.assertEqual(td[0][0]['tickets_1'][0].code, 'ANYCODE')
+        self.assertEqual(td[0][0]['tickets_1'][1].code, 'COURSE1')
         self.assertEqual(td[1], 3.57)
         self.browser.addHeader('Authorization', 'Basic mgr:mgrpw')
@@ -1841,4 +1841,8 @@
         self.assertEqual(self.browser.headers['Status'], '200 Ok')
         self.assertTrue('Transcript' in self.browser.contents)
+        # Officers can open the pdf transcript
+        self.browser.open(self.student_path + '/studycourse/transcript.pdf')
+        self.assertEqual(self.browser.headers['Status'], '200 Ok')
+        self.assertEqual(self.browser.headers['Content-Type'], 'application/pdf')
 
 class StudentUITests(StudentsFullSetup):
@@ -2194,4 +2198,8 @@
         self.assertTrue('Course list has been registered' in self.browser.contents)
         self.assertEqual(self.student.state, 'courses registered')
+        # Students can open the pdf transcript
+        self.browser.open(self.student_path + '/studycourse/transcript.pdf')
+        self.assertEqual(self.browser.headers['Status'], '200 Ok')
+        self.assertEqual(self.browser.headers['Content-Type'], 'application/pdf')
         return
 
Index: main/waeup.kofa/trunk/src/waeup/kofa/students/utils.py
===================================================================
--- main/waeup.kofa/trunk/src/waeup/kofa/students/utils.py	(revision 10251)
+++ main/waeup.kofa/trunk/src/waeup/kofa/students/utils.py	(revision 10256)
@@ -38,4 +38,5 @@
     get_signature_tables)
 from waeup.kofa.browser.interfaces import IPDFCreator
+from waeup.kofa.utils.helpers import to_timezone
 
 SLIP_STYLE = [
@@ -174,4 +175,15 @@
             entry_session = academic_sessions_vocab.getTerm(entry_session).title
             f_text = formatted_text(entry_session)
+            f_text = Paragraph(f_text, ENTRY1_STYLE)
+            data_right.append([f_label,f_text])
+        if not 'date_of_birth' in omit_fields:
+            f_label = _('Date of Birth: ')
+            f_label = Paragraph(f_label, ENTRY1_STYLE)
+            date_of_birth = studentview.context.date_of_birth
+            tz = getUtility(IKofaUtils).tzinfo
+            date_of_birth = to_timezone(date_of_birth, tz)
+            if date_of_birth is not None:
+                date_of_birth = date_of_birth.strftime("%d/%m/%Y")
+            f_text = formatted_text(date_of_birth)
             f_text = Paragraph(f_text, ENTRY1_STYLE)
             data_right.append([f_label,f_text])
@@ -731,5 +743,6 @@
         f_label = _('Entry Session:')
         f_label = Paragraph(f_label, ENTRY1_STYLE)
-        f_text = formatted_text(view.session_dict[view.context.entry_session])
+        f_text = formatted_text(
+            view.session_dict.get(view.context.entry_session))
         f_text = Paragraph(f_text, ENTRY1_STYLE)
         contextdata.append([f_label,f_text])
@@ -737,5 +750,6 @@
         f_label = _('Entry Mode:')
         f_label = Paragraph(f_label, ENTRY1_STYLE)
-        f_text = formatted_text(view.studymode_dict[view.context.entry_mode])
+        f_text = formatted_text(view.studymode_dict.get(
+            view.context.entry_mode))
         f_text = Paragraph(f_text, ENTRY1_STYLE)
         contextdata.append([f_label,f_text])
