Index: /main/waeup.sirp/trunk/src/waeup/sirp/browser/browser.txt
===================================================================
--- /main/waeup.sirp/trunk/src/waeup/sirp/browser/browser.txt	(revision 5949)
+++ /main/waeup.sirp/trunk/src/waeup/sirp/browser/browser.txt	(revision 5950)
@@ -661,5 +661,5 @@
   >>> ctrl = browser.getControl(name='form.course')
   >>> ctrl.displayOptions
-  ['(no value)', 'COURSE1 Course 1', 'COURSE2 Course 2']
+  ['(no value)', 'COURSE1 - Course 1', 'COURSE2 - Course 2']
 
 We select the first course and create our certificatecourse:
@@ -692,5 +692,5 @@
 
   >>> browser.open(cert_url + '/COURSE1_100')
-  >>> browser.getLink('Edit certificate course').click()
+  >>> browser.getLink('Edit course reference').click()
 
 Let's set a new level (it was 100 before) and save the form. This will
@@ -710,5 +710,5 @@
 changed:
 
-  >>> browser.getLink('Edit certificate course').click()
+  >>> browser.getLink('Edit course reference').click()
   >>> browser.getControl(name='form.level').value = "666"
   >>> browser.getControl('Cancel').click()
@@ -718,7 +718,7 @@
   >>> browser.open(cert_url + '/COURSE1_200')
   >>> print browser.contents
-  <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"...
-  ...Level of this course
-  ...200...
+  <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+  ...<td>Level:</td>
+  ...<td>200</td>
   ...
 
Index: /main/waeup.sirp/trunk/src/waeup/sirp/browser/interfaces.py
===================================================================
--- /main/waeup.sirp/trunk/src/waeup/sirp/browser/interfaces.py	(revision 5949)
+++ /main/waeup.sirp/trunk/src/waeup/sirp/browser/interfaces.py	(revision 5950)
@@ -7,5 +7,5 @@
 from waeup.sirp.university.interfaces import (
     IFacultyContainer, IFaculty, IDepartment, ICourseContainer, ICourse,
-    ICertificateContainer, ICertificate, ICertificateCourse)
+    ICertificateContainer, ICertificate, ICertificateCourse, CourseSource)
 
 class IBreadcrumb(Interface):
@@ -55,2 +55,25 @@
         """Get the list of breadcrumbs as real Python list.
         """
+        
+class ICertificateCourseAdd(ICertificateCourse):
+    """A certificatecourse is a course referenced by a certificate, which
+       provides some own attributes.
+    """
+    course = schema.Choice(
+        title = u'Course to be referenced',
+        source = CourseSource(),
+        readonly = False,
+        )
+    
+    level = schema.Int(
+        title = u'Level of this course',
+        required = True,
+        default = 100,
+        readonly = False,
+        )    
+
+    core_or_elective = schema.Bool(
+        title = u'Is mandatory course (not elective)',
+        required = True,
+        default = True
+        )        
Index: /main/waeup.sirp/trunk/src/waeup/sirp/browser/pages.py
===================================================================
--- /main/waeup.sirp/trunk/src/waeup/sirp/browser/pages.py	(revision 5949)
+++ /main/waeup.sirp/trunk/src/waeup/sirp/browser/pages.py	(revision 5950)
@@ -34,5 +34,5 @@
 from waeup.sirp.browser.interfaces import (
     IUniversity, IFacultyContainer, IFaculty, IDepartment, ICourse,
-    ICertificate, ICertificateCourse)
+    ICertificate, ICertificateCourse, ICertificateCourseAdd)
 from waeup.sirp.catalog import search_context
 from waeup.sirp.interfaces import(
@@ -1183,5 +1183,5 @@
     @property
     def title(self):
-        return "%s (%s)" % (self.context.title, self.context.code)
+        return "Certificate: %s (%s)" % (self.context.title, self.context.code)
 
     def update(self):
@@ -1236,12 +1236,13 @@
     grok.name('manage')
     grok.require('waeup.manageUniversity')
+    title = u'Edit certificate'
     pnav = 1
     
     form_fields = grok.AutoFields(ICertificate)
 
-    @property
-    def title(self):
-        # Set certificate name as form label
-        return self.form_fields['title'].field.get(self.context)
+    #@property
+    #def title(self):
+    #    # Set certificate name as form label
+    #    return self.form_fields['title'].field.get(self.context)
     
     @grok.action('Save')
@@ -1280,6 +1281,6 @@
 # Certificate course pages...
 #
-class CertificateCoursePage(WAeUPDisplayFormPage):
-    """Course index page.
+class CertificateCoursePage(WAeUPPage):
+    """CertificateCourse index page.
     """
     grok.context(ICertificateCourse)
@@ -1291,5 +1292,5 @@
     @property
     def title(self):
-        return self.context.course.title
+        return 'Course Reference: %s' % (self.context.course.code)
 
 class CertificateCourseFormPage(WAeUPEditFormPage):
@@ -1304,5 +1305,5 @@
     @property
     def title(self):
-        return 'Edit certificate course %s' % self.context.course.code
+        return 'Edit course reference'
     
     @grok.action('Save and return')
@@ -1315,4 +1316,5 @@
             # the key of the entry will change as well...
             old_level = self.context.level
+            data['course'] = self.context.course
             parent.addCourseRef(**data)
             parent.delCourseRef(data['course'].code, level=old_level)
@@ -1331,18 +1333,18 @@
     grok.name('addcertificatecourse')
     grok.require('waeup.manageUniversity')
-    form_fields = grok.AutoFields(ICertificateCourse)
-    pnav = 1
-    title = 'Add course'
-
-    @grok.action('Add course')
+    form_fields = grok.AutoFields(ICertificateCourseAdd)
+    pnav = 1
+    title = 'Add course reference'
+
+    @grok.action('Add course reference')
     def addCertcourse(self, **data):
         try:
             self.context.addCourseRef(**data)
         except KeyError:
-            self.status = Invalid('The chosen course is already part of'
+            self.status = Invalid('The chosen course reference is already part of'
                                   'this certificate')
             return
         except DuplicationError:
-            self.status = Invalid('The chosen course is already part of'
+            self.status = Invalid('The chosen course reference is already part of'
                                   'this certificate')
             return
Index: /main/waeup.sirp/trunk/src/waeup/sirp/browser/templates/certificatecoursepage.pt
===================================================================
--- /main/waeup.sirp/trunk/src/waeup/sirp/browser/templates/certificatecoursepage.pt	(revision 5950)
+++ /main/waeup.sirp/trunk/src/waeup/sirp/browser/templates/certificatecoursepage.pt	(revision 5950)
@@ -0,0 +1,31 @@
+<h2 tal:content="context/course/code">TITLE</h2>
+
+<table class="listing">
+  <thead>
+  </thead>
+  <tbody>
+    <tr class="odd">
+      <td>Reference Code:</td>
+      <td tal:content="context/__name__">CODE</td>
+    </tr>  
+    <tr class="even">
+      <td>Course Code:</td>
+      <td tal:content="context/getCourseCode">THE COURSE</td>
+    </tr>    
+    <tr class="even">
+      <td>Course Title:</td>
+      <td tal:content="context/course/title">THE TITLE</td>
+    </tr>
+    <tr class="odd">
+      <td>Level:</td>
+      <td tal:content="context/level">LEVEL</td>
+    </tr>
+    <tr class="even">
+      <td>Is mandatory course (not elective):</td>
+      <td tal:content="context/core_or_elective">MANDATORY</td>
+    </tr>
+  </tbody>
+</table>
+
+
+
Index: /main/waeup.sirp/trunk/src/waeup/sirp/browser/viewlets.py
===================================================================
--- /main/waeup.sirp/trunk/src/waeup/sirp/browser/viewlets.py	(revision 5949)
+++ /main/waeup.sirp/trunk/src/waeup/sirp/browser/viewlets.py	(revision 5950)
@@ -344,5 +344,5 @@
     grok.context(ICertificateCourse)
     grok.view(CertificateCoursePage)
-    text = 'Edit certificate course'
+    text = 'Edit course reference'
 
 #
Index: /main/waeup.sirp/trunk/src/waeup/sirp/university/interfaces.py
===================================================================
--- /main/waeup.sirp/trunk/src/waeup/sirp/university/interfaces.py	(revision 5949)
+++ /main/waeup.sirp/trunk/src/waeup/sirp/university/interfaces.py	(revision 5950)
@@ -25,5 +25,5 @@
         
     def getTitle(self, value):
-        return "%s %s" % (value.code, value.title[:32])
+        return "%s - %s" % (value.code, value.title[:64])
 
 class IFaculty(IWAeUPContainer):
@@ -190,6 +190,7 @@
     """
     course = schema.Choice(
-        title = u'Course',
+        title = u'Course referenced',
         source = CourseSource(),
+        readonly = True,
         )
     
@@ -197,5 +198,6 @@
         title = u'Level of this course',
         required = True,
-        default = 100
+        default = 100,
+        readonly = False,
         )
 
@@ -203,5 +205,5 @@
         title = u'Is mandatory course (not elective)',
         required = True,
-        default = True
+        default = True,
         )
 
