Index: main/waeup.sirp/trunk/src/waeup/sirp/browser/pages.py
===================================================================
--- main/waeup.sirp/trunk/src/waeup/sirp/browser/pages.py	(revision 6023)
+++ main/waeup.sirp/trunk/src/waeup/sirp/browser/pages.py	(revision 6024)
@@ -1363,50 +1363,9 @@
         return "Certificate: %s (%s)" % (self.context.title, self.context.code)
         
-        
-    def getCourseList(self):
-        def cmpCourses(a, b):
-            if a['level'] < b['level']:
-                return -1
-            if a['level'] > b['level']:
-                return 1
-            if a['semester'] < b['semester']:
-                return -1
-            if a['semester'] > b['semester']:
-                return 1                
-            if a['mandatory'] != b['mandatory']:
-                if a['mandatory'] == False and b['mandatory'] == True:
-                    return -1
-                return 1
-            if a['code'] < b['code']:
-                return -1
-            if a['code'] > b['code']:
-                return 1
-            return 0
-
-        entries = []
-        levels = dict()
-        for key, certcourse in self.context.items():
-            course = certcourse.course
-            level = certcourse.level
-            mandatory = certcourse.core_or_elective
-            title = course.title
-            #import pdb; pdb.set_trace()
-            courseref_url = self.url(self.context[key])
-            try:
-                course_url = self.url(course)
-            except:
-                course_url = ''
-            semester = course.semester
-
-            new_entry = dict(
-                level=level, mandatory=mandatory, url=courseref_url,
-                title=title, semester=semester, course=course, code=key,
-                course_url=course_url)
-            if str(level) not in levels.keys():
-                levels[str(level)] = dict()
-            if str(semester) not in levels[str(level)].keys():
-                levels[str(level)][str(semester)] = []
-            levels[str(level)][str(semester)].append(new_entry)
-        return levels
+    def update(self):
+        tabs.need()
+        #warning.need()
+        datatable.need() 
+        return super(CertificatePage, self).update()
 
 class CertificateManageFormPage(WAeUPEditFormPage):
Index: main/waeup.sirp/trunk/src/waeup/sirp/browser/templates/certificatemanagepage.pt
===================================================================
--- main/waeup.sirp/trunk/src/waeup/sirp/browser/templates/certificatemanagepage.pt	(revision 6023)
+++ main/waeup.sirp/trunk/src/waeup/sirp/browser/templates/certificatemanagepage.pt	(revision 6024)
@@ -77,5 +77,5 @@
     <thead>
       <tr>
-        <th>&nbsp;</th><th>Level</th><th>Code</th><th>Course</th>
+        <th>&nbsp;</th><th>Level</th><th>Semester</th><th>Referrer</th><th>Course</th><th>Title</th>
         <th>Mandatory</th>
       </tr>
@@ -93,17 +93,21 @@
           </span>
         </td>
+        <td tal:content="cc/course/semester">SEMESTER</td>
         <td>
           <a tal:attributes="href python: view.url(cc)"
     	     tal:content="cc/__name__">
-        	CODE
+        	REFERRER CODE
           </a>
         </td>
+        <td>
+          <a tal:attributes="href python:view.url(cc.course)"
+    	     tal:content="cc/course/code">
+        	COURSE CODE
+          </a>
+        </td>        
         <td>
           <span tal:content="cc/course/title">
     	   COURSE TITLE
           </span>
-          (<span tal:content="cc/course/code">
-    	   COURSE CODE
-          </span>)          
         </td>
         <td>
Index: main/waeup.sirp/trunk/src/waeup/sirp/browser/templates/certificatepage.pt
===================================================================
--- main/waeup.sirp/trunk/src/waeup/sirp/browser/templates/certificatepage.pt	(revision 6023)
+++ main/waeup.sirp/trunk/src/waeup/sirp/browser/templates/certificatepage.pt	(revision 6024)
@@ -33,34 +33,43 @@
 
 <h3><span tal:content="context/__name__">Code</span> Course Referrers</h3>
-
-<table class="zebra">
-  <thead>
-    <tr>
-      <th>Course Referrer</th>
-      <th>Course</th>
-      <th>Title</th>
-      <th>Level</th>
-      <th>Semester</th>
-      <th>Mandatory</th>
-    </tr>      
-  </thead>    
-  <tbody>
-  <span tal:omit-tag="" 
-	tal:repeat="level python: sorted(view.getCourseList().items())">
-  <span tal:omit-tag="" 
-	tal:repeat="semester python: sorted(level[1].items())">
-  <tr tal:repeat="courseref python:semester[1]">
-    <td> <a href="" tal:attributes="href courseref/url" 
-	    tal:content="courseref/code">courseref code</a></td>
-    <td> <a href="" tal:attributes="href courseref/course_url" 
-	    tal:content="courseref/course/code">course code</a></td>
-    <td tal:content="courseref/title">title</td>
-    <td tal:content="python:level[0]">level</td>
-    <td tal:content="python:semester[0]">semester</td>
-    <td tal:content="courseref/mandatory">mandatory</td>
+<br />
+<table class="display dataTable">
+<thead>
+  <tr>
+    <th>Level</th><th>Semester</th><th>Referrer</th><th>Course</th>
+    <th>Title</th><th>Mandatory</th>
   </tr>
-  </span>
-  </span>
-  </tbody>
+</thead>
+<tbody>
+  <tr tal:repeat="cc context/values">
+     <td>
+      <span tal:content="cc/level">
+	   LEVEL
+      </span>
+    </td>
+    <td tal:content="cc/course/semester">SEMESTER</td>
+    <td>
+      <a tal:attributes="href python: view.url(cc)"
+	     tal:content="cc/__name__">
+    	REFERRER CODE
+      </a>
+    </td>
+    <td>
+      <a tal:attributes="href python:view.url(cc.course)"
+	     tal:content="cc/course/code">
+    	COURSE CODE
+      </a>     
+    <td>
+      <span tal:content="cc/course/title">
+	   COURSE TITLE
+      </span>
+    </td>
+    <td>
+      <span tal:content="cc/core_or_elective">
+	   MANDATORY
+      </span>
+    </td>                
+  </tr>
+</tbody>
 </table>
 
