Index: main/waeup.sirp/trunk/src/waeup/sirp/students/browser.py
===================================================================
--- main/waeup.sirp/trunk/src/waeup/sirp/students/browser.py	(revision 7303)
+++ main/waeup.sirp/trunk/src/waeup/sirp/students/browser.py	(revision 7304)
@@ -825,5 +825,12 @@
         return students_utils.renderPDF(
             self,'Course Registration', 'course_registration.pdf',
-            self.context.getStudent, studentview)
+            self.context.getStudent, studentview,
+            tableheader=[('Code','code'), ('Title','title'),
+                         ('Department','dcode'), ('Faculty','fcode'),
+                         ('Credits', 'credits'),
+                         ('Mandatory', 'core_or_elective'),
+                         ('Score', 'score'),('Auto', 'automatic')
+                         ],
+            tabledata=self.context.values())
 
 class StudyLevelManageActionButton(ManageActionButton):
@@ -919,4 +926,6 @@
         ticket.faculty = course.__parent__.__parent__.__parent__.title
         ticket.department = course.__parent__.__parent__.title
+        ticket.fcode = course.__parent__.__parent__.__parent__.code
+        ticket.dcode = course.__parent__.__parent__.code
         ticket.credits = course.credits
         ticket.passmark = course.passmark
Index: main/waeup.sirp/trunk/src/waeup/sirp/students/interfaces.py
===================================================================
--- main/waeup.sirp/trunk/src/waeup/sirp/students/interfaces.py	(revision 7303)
+++ main/waeup.sirp/trunk/src/waeup/sirp/students/interfaces.py	(revision 7304)
@@ -328,4 +328,6 @@
     faculty = Attribute('faculty of the original course')
     department = Attribute('department of the original course')
+    fcode = Attribute('faculty code of the original course')
+    dcode = Attribute('department code of the original course')
 
     core_or_elective = schema.Bool(
Index: main/waeup.sirp/trunk/src/waeup/sirp/students/studycourse.py
===================================================================
--- main/waeup.sirp/trunk/src/waeup/sirp/students/studycourse.py	(revision 7303)
+++ main/waeup.sirp/trunk/src/waeup/sirp/students/studycourse.py	(revision 7304)
@@ -60,4 +60,6 @@
             ticket.faculty = val.course.__parent__.__parent__.__parent__.title
             ticket.department = val.course.__parent__.__parent__.title
+            ticket.fcode = val.course.__parent__.__parent__.__parent__.code
+            ticket.dcode = val.course.__parent__.__parent__.code
             ticket.credits = val.course.credits
             ticket.passmark = val.course.passmark
Index: main/waeup.sirp/trunk/src/waeup/sirp/students/studylevel.py
===================================================================
--- main/waeup.sirp/trunk/src/waeup/sirp/students/studylevel.py	(revision 7303)
+++ main/waeup.sirp/trunk/src/waeup/sirp/students/studylevel.py	(revision 7304)
@@ -77,4 +77,6 @@
         self.faculty = None
         self.department = None
+        self.fcode = None
+        self.dcode = None
         self.credits = None
         self.passmark = None
Index: main/waeup.sirp/trunk/src/waeup/sirp/students/utils.py
===================================================================
--- main/waeup.sirp/trunk/src/waeup/sirp/students/utils.py	(revision 7303)
+++ main/waeup.sirp/trunk/src/waeup/sirp/students/utils.py	(revision 7304)
@@ -37,4 +37,8 @@
     )
 
+CONTENT_STYLE = TableStyle(
+    [('VALIGN',(0,0),(-1,-1),'TOP')]
+    )
+
 def generate_student_id(students,letter):
     if letter == '?':
@@ -67,5 +71,4 @@
     img = getUtility(IExtFileStore).getFileByContext(
         studentview.context, attr='passport.jpg')
-    #import pdb; pdb.set_trace()
     if img is None:
         from waeup.sirp.browser import DEFAULT_PASSPORT_IMAGE_PATH
@@ -77,5 +80,6 @@
         if widget.name == 'form.adm_code':
             continue
-        f_label = '<font size=12>%s</font>:' % widget.label.strip()
+        f_label = '<font size=12>%s</font>:' % (
+            widget.label.strip())
         f_label = Paragraph(f_label, style["Normal"])
         f_text = '<font size=12>%s</font>' % widget()
@@ -83,4 +87,27 @@
         data.append([f_label,f_text])
     table = Table(data,style=SLIP_STYLE)
+    return table
+
+def render_table_data(tableheader,tabledata):
+    data = []
+    data.append([Spacer(1, 12)])
+    line = []
+    style = getSampleStyleSheet()
+    for element in tableheader:
+        field = '<strong><font size=10>%s</font></strong>' % element[0]
+        field = Paragraph(field, style["BodyText"])
+        line.append(field)
+    data.append(line)
+    for ticket in tabledata:
+        line = []
+        for element in tableheader:
+              fieldcontent = getattr(ticket,element[1],u' ')
+              field = '<font size=10>%s</font>' % fieldcontent
+              field = Paragraph(field, style["BodyText"])
+              line.append(field)
+        data.append(line)
+    # ToDo: The table does not show up if there are too many line
+    # and it thus doesn't fit on the page
+    table = Table(data,splitByRow=True,style=CONTENT_STYLE)
     return table
 
@@ -147,5 +174,5 @@
 
     def renderPDF(self, view, subject='', filename='slip.pdf',
-        student=None, studentview=None):
+        student=None, studentview=None, tableheader=None, tabledata=None):
         # (0,0),(-1,-1) = whole table
         # (0,0),(0,-1) = first column
@@ -173,9 +200,11 @@
         frame_body = Frame(1*cm,1*cm,width-(2*cm),height-(3.5*cm))
         story.append(Paragraph(view.label, style["Heading2"]))
-        #story.append(HRFlowable())
+
+        # Insert student data table
         if student:
             story.append(Spacer(1, 12))
             studenttable = render_student_data(student, studentview)
             story.append(studenttable)
+
         story.append(Spacer(1, 12))
         set_up_widgets(view)
@@ -218,4 +247,14 @@
             view.flash('Error in image file.')
             return view.redirect(view.url(view.context))
+
+        # Insert content table
+        if tabledata and tableheader:
+            story = []
+            story.append(Spacer(1, 12))
+            contenttable = render_table_data(tableheader,tabledata)
+            story.append(contenttable)
+            #import pdb; pdb.set_trace()
+            frame_body.addFromList(story,pdf)
+
         story = []
         frame_footer = Frame(1*cm,0,width-(2*cm),1*cm)
