Index: /WAeUP_SRP/trunk/Academics.py
===================================================================
--- /WAeUP_SRP/trunk/Academics.py	(revision 453)
+++ /WAeUP_SRP/trunk/Academics.py	(revision 454)
@@ -456,4 +456,27 @@
 ###)
 
+class StudyLevel(CPSDocument): ###(
+    """
+    WAeUP StudyLevel containing the courses and students
+    """
+    meta_type = 'StudyLevel'
+    portal_type = meta_type
+    security = ClassSecurityInfo()
+
+    security.declareProtected(View,"Title")
+    def Title(self):
+        """compose title"""
+        return "Level %s" % self.aq_parent.getId()
+    
+
+InitializeClass(StudyLevel)
+
+def addStudyLevel(container, id, REQUEST=None, **kw):
+    """Add a StudyLevel."""
+    ob = StudyLevel(id, **kw)
+    return CPSBase_adder(container, ob, REQUEST=REQUEST)
+
+###)
+
 class CertificateCourse(CPSDocument): ###(
     """
@@ -476,4 +499,5 @@
         """compose title"""
         ce = self.getCourseEntry(self.id.upper())
+        #print self.id, self.aq_parent.id
         if ce:
             return "%s" % ce.Title
@@ -610,33 +634,3 @@
 ###)
 
-class CourseTicket(CPSDocument): ###(
-    """
-    WAeUP CourseTicket
-    """
-    meta_type = 'CourseTicket'
-    portal_type = meta_type
-    security = ClassSecurityInfo()
-    def getCourseEntry(self,cid):
-        res = self.portal_catalog({'meta_type': "Course",
-                                           'id': cid})
-        if res:
-            return res[-1]
-        else:
-            return None
-
-    security.declareProtected(View,"Title")
-    def Title(self):
-        """compose title"""
-        ce = self.getCourseEntry(self.id.upper())
-        if ce:
-            return "%s" % ce.Title
-        return "No such course"
-
-InitializeClass(CourseTicket)
-
-def addCourseTicket(container, id, REQUEST=None, **kw):
-    """Add a CourseTicket."""
-    ob = CourseTicket(id, **kw)
-    return CPSBase_adder(container, ob, REQUEST=REQUEST)
-###)
-
+
Index: /WAeUP_SRP/trunk/Students.py
===================================================================
--- /WAeUP_SRP/trunk/Students.py	(revision 453)
+++ /WAeUP_SRP/trunk/Students.py	(revision 454)
@@ -112,12 +112,8 @@
                 dc = {'Title': 'Clearance Data'}
                 dc['matric_no'] = matric_no
-                lga = student.get('State') + ' / ' + student.get('LGA')
+                lga = student.get('State') + ' / ' + student.get('LGA')               
                 dc['lga'] = lga
                 dc['nationality'] = student.get('Nationality')
                 dc['email'] = student.get('Emailaddress')
-                css = student.get('CurrentSession') or '2004-2005'
-                cs = int(css.split('-')[0]) - 2000
-                cl = int(student.get('StudentLevel'))/100
-                dc['entry_session'] = "200%s" % (cs - cl)                
                 d['firstname'] = student.get('FirstName')
                 d['middlename'] = student.get('MiddleName')
@@ -143,4 +139,8 @@
                 #d['department'] = student.get('Dept')
                 d['study_course'] = certcode
+                css = student.get('CurrentSession') or '2004-2005'
+                cs = int(css.split('-')[0]) - 2000
+                cl = int(student.get('StudentLevel'))/100
+                d['entry_session'] = "200%s" % (cs - cl)
                 sc.getContent().edit(mapping=d)
                 #
@@ -151,5 +151,5 @@
                     #self.log('Creating Department %(DeptCode)s = %(Description)s' % dep)
                     logger.info('Creating Level %(StudentLevel)s for %(fullname)s' % student)
-                    sc.invokeFactory('StudyLevel', level)
+                    sc.invokeFactory('StudentStudyLevel', level)
                     l = getattr(sc, level)
                     certificate = certs[certcode]
@@ -198,8 +198,4 @@
             logger.error('Error reading %s.csv' % name)
             return
-##        l = self.portal_catalog({'meta_type': "Student"})
-##        students = {}
-##        for s in l:
-##            students[s.id] = s.getObject()
         l = self.portal_catalog({'meta_type': "Course"})
         courses = {}
@@ -217,5 +213,5 @@
                 continue
             sf = res[0].getObject().aq_parent
-            print sf
+            result['StudentId'] = sf.getId()
             course = result.get('CosCode')
             if course not in courses.keys():
@@ -238,8 +234,7 @@
             if l is None:
                 #self.log('Creating Department %(DeptCode)s = %(Description)s' % dep)
-                logger.info('Creating Level %(Level)s for %(Matnumber)s' % result)
-                sc.invokeFactory('StudyLevel', level)
+                logger.info('Creating Level %(Level)s for %(StudentId)s %(Matnumber)s' % result)
+                sc.invokeFactory('StudentStudyLevel', level)
                 l = getattr(sc, level)
-                #l.getContent().edit(mapping={'Title': "Level %s" % level})
                 l.invokeFactory('Semester','first')
                 l.invokeFactory('Semester','second')
@@ -248,23 +243,26 @@
                 second_s = getattr(l,'second')
                 second_s.getContent().edit(mapping={'Title': 'Second Semester'})
-            snr = result.get('Semester')
+            snr = result.get('Semster')
             semester = getattr(l,'first')
             if snr == "2":
                 semester = getattr(l,'second')
-                logger.info('Creating CourseTicket %(CosCode)s in Level %(Level)s for %(Matnumber)s' % result)
+            logger.info('Creating CourseTicket %(CosCode)s in Level %(Level)s for %(StudentId)s %(Matnumber)s' % result)
             semester.invokeFactory('CourseTicket',course)
             ct = getattr(semester,course)
             d = {}
+            dlev = {}
             d['ansbook'] = result.get('Ansbook')
             d['status'] = result.get('CosStuatus')
             d['score'] = result.get('Score')
-            d['carry_level'] = result.get('CarryLevel')
+            dlev['session'] = result.get('Session')
+            dlev['carry_level'] = result.get('CarryLevel')
             d['grade'] = result.get('Grade')
-            d['weight'] = result.get('Weight')
-            d['verdict'] = result.get('Verdict')
-            d['import_id'] = result.get('id')
-            gpa = result.get('GPA').replace(',','.')
-            d['gpa'] = float(gpa)
+            #d['weight'] = result.get('Weight')
+            dlev['verdict'] = result.get('Verdict')
+            #d['import_id'] = result.get('id')
+            #gpa = result.get('GPA').replace(',','.')
+            #d['gpa'] = float(gpa)
             ct.getContent().edit(mapping = d)
+            l.getContent().edit(mapping = dlev)
             if tr_count > MAX_TRANS:
                 transaction.commit()
@@ -307,5 +305,4 @@
         return self.title
 
-
 InitializeClass(Student)
 
@@ -367,4 +364,46 @@
 ###)
 
+class StudentStudyLevel(CPSDocument): ###(
+    """
+    WAeUP Student container for the various student data
+    """
+    meta_type = 'StudentStudyLevel'
+    portal_type = meta_type
+    security = ClassSecurityInfo()
+
+    security.declareProtected(View,"Title")
+    def Title(self):
+        """compose title"""
+        return "Level %s" % self.aq_parent.getId()
+
+    security.declareProtected(View,"gpa")
+    def gpa(self):
+        """calculate the gpa"""
+        sum = 0
+        course_count = 0
+        for semester in ('first','second'):
+            sf=getattr(self,semester)
+            for sc in sf.objectValues():
+                result = sc.getContent()
+                res = self.portal_catalog({'meta_type': 'Course',
+                                              'id': sc.aq_parent.id})
+                if len(res) != 1:
+                    continue
+                course = res[0].getObject().getContent()
+                sum += course.credits * ['F','E','D','C','B','A'].index(result.grade)
+                course_count += 1
+        if course_count:
+            return sum/course_count
+        return 0.0
+    
+InitializeClass(StudentStudyLevel)
+
+def addStudentStudyLevel(container, id, REQUEST=None, **kw):
+    """Add a Students personal data."""
+    ob = StudentStudyLevel(id, **kw)
+    return CPSBase_adder(container, ob, REQUEST=REQUEST)
+
+###)
+
 class StudentStudyCourse(CPSDocument): ###(
     """
@@ -414,27 +453,4 @@
 ###)
 
-class StudyLevel(CPSDocument): ###(
-    """
-    WAeUP StudyLevel containing the courses and students
-    """
-    meta_type = 'StudyLevel'
-    portal_type = meta_type
-    security = ClassSecurityInfo()
-
-    security.declareProtected(View,"Title")
-    def Title(self):
-        """compose title"""
-        return "Level %s" % self.aq_parent.getId()
-
-
-InitializeClass(StudyLevel)
-
-def addStudyLevel(container, id, REQUEST=None, **kw):
-    """Add a StudyLevel."""
-    ob = StudyLevel(id, **kw)
-    return CPSBase_adder(container, ob, REQUEST=REQUEST)
-
-###)
-
 class Semester(CPSDocument): ###(
     """
@@ -454,4 +470,36 @@
 ###)
 
+class CourseTicket(CPSDocument): ###(
+    """
+    WAeUP CourseTicket
+    """
+    meta_type = 'CourseTicket'
+    portal_type = meta_type
+    security = ClassSecurityInfo()
+    def getCourseEntry(self,cid):
+        res = self.portal_catalog({'meta_type': "Course",
+                                           'id': cid})
+        if res:
+            return res[-1]
+        else:
+            return None
+
+    security.declareProtected(View,"Title")
+    def Title(self):
+        """compose title"""
+        cid = self.getId()
+        ce = self.getCourseEntry(cid)
+        if ce:
+            return "%s" % ce.Title
+        return "No course with id %s" % cid
+
+InitializeClass(CourseTicket)
+
+def addCourseTicket(container, id, REQUEST=None, **kw):
+    """Add a CourseTicket."""
+    ob = CourseTicket(id, **kw)
+    return CPSBase_adder(container, ob, REQUEST=REQUEST)
+###)
+
 class ScratchCardBatchesFolder(CPSDocument): ###(
     """
Index: /WAeUP_SRP/trunk/__init__.py
===================================================================
--- /WAeUP_SRP/trunk/__init__.py	(revision 453)
+++ /WAeUP_SRP/trunk/__init__.py	(revision 454)
@@ -20,39 +20,50 @@
 
 waeup_types = (
-    "University.University",
-    "Academics.AcademicsFolder",
-    "Academics.Certificate",
-    "Academics.CertificateCourse",
-    "Academics.Faculty",
-    "Academics.Department",
-    "Academics.Course",
-    "Academics.CourseTicket",
-    "Academics.CertificateCourse",
-    "Accommodation.AccoFolder",
-    "Accommodation.Accommodation",
-    "Students.StudentsFolder",
-    "Students.Student",
-    "Students.StudentStudyCourse",
-    "Students.StudentAdmission",
-    "Students.StudentClearance",
-    "Students.StudentPersonal",
-    "Students.ScratchCardBatch",
-    "Students.ScratchCardBatchesFolder",
-    "Students.StudyLevel",
-    "Students.Semester",
+    ("University",('University',)),
+    ("Academics",
+       ("AcademicsFolder",
+        "Certificate",
+        "CertificateCourse",
+        "Faculty",
+        "Department",
+        "Course",
+        "StudyLevel",
+        "CertificateCourse",
+        )
+     ),
+     ("Accommodation",
+        ("AccoFolder",
+         "Accommodation",
+         )
+     ),
+     ("Students",
+        ("StudentsFolder",
+         "Student",
+         "StudentStudyCourse",
+         "CourseTicket",
+         "StudentAdmission",
+         "StudentClearance",
+         "StudentPersonal",
+         "ScratchCardBatch",
+         "ScratchCardBatchesFolder",
+         "StudentStudyLevel",
+         "Semester",
+         )
+      ),
     )
 
 contentClasses = []
 cc = []
-for t in waeup_types:
-    module,name = t.split('.')
-    mod = __import__('Products.WAeUP_SRP.%(module)s' % vars(),
+for modu,names in waeup_types:
+    mod = __import__('Products.WAeUP_SRP.%(modu)s' % vars(),
                 globals(),
                 locals(),
-                ["%(name)s" % vars(),"add%(name)s" % vars()]
+                ['*',]
                 )
-    contentClasses.append(getattr(mod,name))
-    cc.append(getattr(mod,"add%(name)s" % vars()))
-    contentConstructors = tuple(cc)
+    for name in names:
+        #print name
+        contentClasses.append(getattr(mod,name))
+        cc.append(getattr(mod,"add%(name)s" % vars()))
+contentConstructors = tuple(cc)
 
 fti = [{} for t in range(len(contentConstructors))]
Index: /WAeUP_SRP/trunk/profiles/default/layouts.xml
===================================================================
--- /WAeUP_SRP/trunk/profiles/default/layouts.xml	(revision 453)
+++ /WAeUP_SRP/trunk/profiles/default/layouts.xml	(revision 454)
@@ -24,4 +24,5 @@
  <object name="student_schoolresults" meta_type="CPS Layout"/>
  <object name="student_semester" meta_type="CPS Layout"/>
+ <object name="student_study_level" meta_type="CPS Layout"/>
  <object name="study_level" meta_type="CPS Layout"/>
  <object name="university" meta_type="CPS Layout"/>
Index: /WAeUP_SRP/trunk/profiles/default/layouts/course_results.xml
===================================================================
--- /WAeUP_SRP/trunk/profiles/default/layouts/course_results.xml	(revision 453)
+++ /WAeUP_SRP/trunk/profiles/default/layouts/course_results.xml	(revision 454)
@@ -25,15 +25,4 @@
   <property name="label">Carry Level</property>
   <property name="label_edit">Carry Level</property>
-  <property name="readonly_layout_modes"/>
-  <property name="hidden_layout_modes"/>
-  <property name="hidden_readonly_layout_modes"/>
- </widget>
- <widget name="gpa" meta_type="Float Widget">
-  <property name="title">GPA</property>
-  <property name="fields">
-   <element value="gpa"/>
-  </property>
-  <property name="label">GPA</property>
-  <property name="label_edit">GPA</property>
   <property name="readonly_layout_modes"/>
   <property name="hidden_layout_modes"/>
@@ -73,37 +62,4 @@
   <property name="hidden_readonly_layout_modes"/>
  </widget>
- <widget name="status" meta_type="String Widget">
-  <property name="title">Status</property>
-  <property name="fields">
-   <element value="status"/>
-  </property>
-  <property name="label">Status</property>
-  <property name="label_edit">Status</property>
-  <property name="readonly_layout_modes"/>
-  <property name="hidden_layout_modes"/>
-  <property name="hidden_readonly_layout_modes"/>
- </widget>
- <widget name="verdict" meta_type="String Widget">
-  <property name="title">Verdict</property>
-  <property name="fields">
-   <element value="verdict"/>
-  </property>
-  <property name="label">Verdict</property>
-  <property name="label_edit">Verdict</property>
-  <property name="readonly_layout_modes"/>
-  <property name="hidden_layout_modes"/>
-  <property name="hidden_readonly_layout_modes"/>
- </widget>
- <widget name="weight" meta_type="String Widget">
-  <property name="title">Weight</property>
-  <property name="fields">
-   <element value="weight"/>
-  </property>
-  <property name="label">Weight</property>
-  <property name="label_edit">Weight</property>
-  <property name="readonly_layout_modes"/>
-  <property name="hidden_layout_modes"/>
-  <property name="hidden_readonly_layout_modes"/>
- </widget>
  <table>
   <row>
@@ -114,17 +70,5 @@
   </row>
   <row>
-   <cell name="status"/>
-  </row>
-  <row>
    <cell name="score"/>
-  </row>
-  <row>
-   <cell name="verdict"/>
-  </row>
-  <row>
-   <cell name="weight"/>
-  </row>
-  <row>
-   <cell name="gpa"/>
   </row>
   <row>
Index: /WAeUP_SRP/trunk/profiles/default/layouts/student_study_level.xml
===================================================================
--- /WAeUP_SRP/trunk/profiles/default/layouts/student_study_level.xml	(revision 454)
+++ /WAeUP_SRP/trunk/profiles/default/layouts/student_study_level.xml	(revision 454)
@@ -0,0 +1,84 @@
+<?xml version="1.0"?>
+<object name="student_study_level" meta_type="CPS Layout">
+ <property name="layout_create_method"></property>
+ <property name="layout_edit_method"></property>
+ <property name="layout_view_method"></property>
+ <property name="style_prefix">layout_waeup_</property>
+ <property name="flexible_widgets"/>
+ <property name="validate_values_expr"></property>
+ <widget name="code" meta_type="String Widget">
+  <property name="title">Level No</property>
+  <property name="fields">
+   <element value="code"/>
+  </property>
+  <property name="is_required">True</property>
+  <property name="label">Level No</property>
+  <property name="label_edit">Level No</property>
+  <property name="readonly_layout_modes"/>
+  <property name="hidden_layout_modes"/>
+  <property name="hidden_readonly_layout_modes"/>
+ </widget>
+ <widget name="gpa" meta_type="Float Widget">
+  <property name="title">GPA</property>
+  <property name="fields">
+   <element value="gpa"/>
+  </property>
+  <property name="label">GPA</property>
+  <property name="label_edit">GPA</property>
+  <property name="readonly_layout_modes">
+   <element value="edit"/>
+   <element value="create"/>
+  </property>
+  <property name="hidden_layout_modes">
+   <element value="create"/>
+  </property>
+  <property name="hidden_readonly_layout_modes"/>
+ </widget>
+ <widget name="session" meta_type="String Widget">
+  <property name="title">Session</property>
+  <property name="fields">
+   <element value="session"/>
+  </property>
+  <property name="label">Session</property>
+  <property name="label_edit">Session</property>
+  <property name="readonly_layout_modes"/>
+  <property name="hidden_layout_modes"/>
+  <property name="hidden_readonly_layout_modes"/>
+ </widget>
+ <widget name="status" meta_type="String Widget">
+  <property name="title">Status</property>
+  <property name="fields">
+   <element value="status"/>
+  </property>
+  <property name="label">Status</property>
+  <property name="label_edit">Status</property>
+  <property name="readonly_layout_modes"/>
+  <property name="hidden_layout_modes"/>
+  <property name="hidden_readonly_layout_modes"/>
+ </widget>
+ <widget name="verdict" meta_type="String Widget">
+  <property name="title">Verdict</property>
+  <property name="fields">
+   <element value="verdict"/>
+  </property>
+  <property name="label">Verdict</property>
+  <property name="label_edit">Verdict</property>
+  <property name="readonly_layout_modes"/>
+  <property name="hidden_layout_modes"/>
+  <property name="hidden_readonly_layout_modes"/>
+ </widget>
+ <table>
+  <row>
+   <cell name="session"/>
+  </row>
+  <row>
+   <cell name="status"/>
+  </row>
+  <row>
+   <cell name="gpa"/>
+  </row>
+  <row>
+   <cell name="verdict"/>
+  </row>
+ </table>
+</object>
Index: /WAeUP_SRP/trunk/profiles/default/schemas.xml
===================================================================
--- /WAeUP_SRP/trunk/profiles/default/schemas.xml	(revision 453)
+++ /WAeUP_SRP/trunk/profiles/default/schemas.xml	(revision 454)
@@ -20,4 +20,5 @@
  <object name="student_personal" meta_type="CPS Schema"/>
  <object name="students" meta_type="CPS Schema"/>
+ <object name="student_study_level" meta_type="CPS Schema"/>
  <object name="study_level" meta_type="CPS Schema"/>
  <object name="university" meta_type="CPS Schema"/>
Index: /WAeUP_SRP/trunk/profiles/default/schemas/course_results.xml
===================================================================
--- /WAeUP_SRP/trunk/profiles/default/schemas/course_results.xml	(revision 453)
+++ /WAeUP_SRP/trunk/profiles/default/schemas/course_results.xml	(revision 454)
@@ -3,10 +3,6 @@
  <field name="ansbook" meta_type="CPS String Field"/>
  <field name="carry_level" meta_type="CPS String Field"/>
- <field name="gpa" meta_type="CPS Float Field"/>
  <field name="grade" meta_type="CPS String Field"/>
  <field name="import_id" meta_type="CPS String Field"/>
  <field name="score" meta_type="CPS Int Field"/>
- <field name="status" meta_type="CPS String Field"/>
- <field name="verdict" meta_type="CPS String Field"/>
- <field name="weight" meta_type="CPS String Field"/>
 </object>
Index: /WAeUP_SRP/trunk/profiles/default/schemas/student_study_level.xml
===================================================================
--- /WAeUP_SRP/trunk/profiles/default/schemas/student_study_level.xml	(revision 454)
+++ /WAeUP_SRP/trunk/profiles/default/schemas/student_study_level.xml	(revision 454)
@@ -0,0 +1,8 @@
+<?xml version="1.0"?>
+<object name="student_study_level" meta_type="CPS Schema">
+ <field name="code" meta_type="CPS String Field"/>
+ <field name="session" meta_type="CPS String Field"/>
+ <field name="gpa" meta_type="CPS String Field"/>
+ <field name="status" meta_type="CPS String Field"/>
+ <field name="verdict" meta_type="CPS String Field"/>
+</object>
Index: /WAeUP_SRP/trunk/profiles/default/types.xml
===================================================================
--- /WAeUP_SRP/trunk/profiles/default/types.xml	(revision 453)
+++ /WAeUP_SRP/trunk/profiles/default/types.xml	(revision 454)
@@ -17,4 +17,5 @@
  <object name="Semester" meta_type="CPS Flexible Type Information"/>
  <object name="Student" meta_type="CPS Flexible Type Information"/>
+ <object name="StudentStudyLevel" meta_type="CPS Flexible Type Information"/>
  <object name="StudentStudyCourse" meta_type="CPS Flexible Type Information"/>
  <object name="StudentClearance" meta_type="CPS Flexible Type Information"/>
Index: /WAeUP_SRP/trunk/profiles/default/types/StudentStudyCourse.xml
===================================================================
--- /WAeUP_SRP/trunk/profiles/default/types/StudentStudyCourse.xml	(revision 453)
+++ /WAeUP_SRP/trunk/profiles/default/types/StudentStudyCourse.xml	(revision 454)
@@ -12,5 +12,5 @@
  <property name="filter_content_types">True</property>
  <property name="allowed_content_types">
-  <element value="StudyLevel"/>
+  <element value="StudentStudyLevel"/>
  </property>
  <property name="allow_discussion">False</property>
Index: /WAeUP_SRP/trunk/profiles/default/types/StudentStudyLevel.xml
===================================================================
--- /WAeUP_SRP/trunk/profiles/default/types/StudentStudyLevel.xml	(revision 454)
+++ /WAeUP_SRP/trunk/profiles/default/types/StudentStudyLevel.xml	(revision 454)
@@ -0,0 +1,38 @@
+<?xml version="1.0"?>
+<object name="StudentStudyLevel" meta_type="CPS Flexible Type Information"
+   xmlns:i18n="http://xml.zope.org/namespaces/i18n">
+ <property name="title">WAeUP Study Level Folder</property>
+ <property name="description"></property>
+ <property name="content_icon"></property>
+ <property name="content_meta_type">StudentStudyLevel</property>
+ <property name="product">WAeUP_SRP</property>
+ <property name="factory">addStudentStudyLevel</property>
+ <property name="immediate_view">academics_contents</property>
+ <property name="global_allow">True</property>
+ <property name="filter_content_types">True</property>
+ <property name="allowed_content_types">
+  <element value="Semester"/>
+ </property>
+ <property name="allow_discussion">False</property>
+ <property name="cps_is_searchable">False</property>
+ <property name="cps_proxy_type">folder</property>
+ <property name="cps_display_as_document_in_listing">True</property>
+ <property name="schemas">
+  <element value="student_study_level"/>
+ </property>
+ <property name="layouts">
+  <element value="student_study_level"/>
+ </property>
+ <property name="layout_clusters"/>
+ <property name="flexible_layouts"/>
+ <property name="storage_methods"/>
+ <property name="cps_is_portlet">False</property>
+ <alias from="(Default)" to="academics_contents"/>
+ <alias from="create_do" to="waeup_document_create_do"/>
+ <alias from="created" to="level_created"/>
+ <alias from="view" to="academics_contents"/>
+ <action title="View" action_id="view" category="object" condition_expr=""
+    url_expr="string:${object_url}/academics_contents" visible="True">
+  <permission value="View"/>
+ </action>
+</object>
Index: /WAeUP_SRP/trunk/profiles/default/workflows.xml
===================================================================
--- /WAeUP_SRP/trunk/profiles/default/workflows.xml	(revision 453)
+++ /WAeUP_SRP/trunk/profiles/default/workflows.xml	(revision 454)
@@ -15,8 +15,4 @@
  <object name="waeup_student_wf" meta_type="CPS Workflow"/>
  <object name="waeup_workspace_wf" meta_type="CPS Workflow"/>
- <object name="workspace_calendar_wf" meta_type="CPS Workflow"/>
- <object name="workspace_content_wf" meta_type="CPS Workflow"/>
- <object name="workspace_folder_wf" meta_type="CPS Workflow"/>
- <object name="workspace_folderish_content_wf" meta_type="CPS Workflow"/>
  <bindings>
   <default/>
@@ -105,4 +101,7 @@
    <bound-workflow workflow_id="section_folder_wf"/>
   </type>
+  <type type_id="StudentStudyLevel">
+   <bound-workflow workflow_id="section_folder_wf"/>
+  </type>
   <type type_id="University">
    <bound-workflow workflow_id="section_folder_wf"/>
Index: /WAeUP_SRP/trunk/skins/waeup_academics/academics_content_lib_info_detail_tab.pt
===================================================================
--- /WAeUP_SRP/trunk/skins/waeup_academics/academics_content_lib_info_detail_tab.pt	(revision 453)
+++ /WAeUP_SRP/trunk/skins/waeup_academics/academics_content_lib_info_detail_tab.pt	(revision 454)
@@ -119,5 +119,5 @@
     <span tal:content="info/type">ID</span>
   </td>
-    <span tal:condition="python: context.portal_type == 'CoursesFolder'">
+    <span tal:condition="python: info['doc'].portal_type == 'Course'">
       <td>
         <span tal:content="info/semester">ID</span>
@@ -128,4 +128,19 @@
       <td>
         <span tal:content="info/passmark">ID</span>
+      </td>
+    </span>
+    <span tal:define="docu python: info['doc']"
+          tal:condition="python: docu.portal_type == 'CourseTicket'">
+      <td>
+        <span tal:content="docu/grade">ID</span>
+      </td>
+      <td>
+        <span tal:content="docu/score">ID</span>
+      </td>
+    </span>
+    <span tal:define="docu python: info['doc']"
+          tal:condition="python: docu.portal_type == 'Student'">
+      <td>
+        <span tal:content="info/clearance/matric_no">ID</span>
       </td>
     </span>
Index: /WAeUP_SRP/trunk/skins/waeup_academics/academics_contents.pt
===================================================================
--- /WAeUP_SRP/trunk/skins/waeup_academics/academics_contents.pt	(revision 453)
+++ /WAeUP_SRP/trunk/skins/waeup_academics/academics_contents.pt	(revision 454)
@@ -42,5 +42,5 @@
     <span tal:define="redirect python: response.redirect(url)"></span>
   </div>
-    <span tal:omit-tag="" tal:condition="python:display_buttons or (context.portal_type in ('Certificate','Department'))" 
+    <span tal:omit-tag="" tal:condition="python:display_buttons or context.display_content()" 
           tal:content="structure doc/render" />
 
Index: /WAeUP_SRP/trunk/skins/waeup_academics/academics_contents_display_buttons.py
===================================================================
--- /WAeUP_SRP/trunk/skins/waeup_academics/academics_contents_display_buttons.py	(revision 453)
+++ /WAeUP_SRP/trunk/skins/waeup_academics/academics_contents_display_buttons.py	(revision 454)
@@ -14,5 +14,13 @@
 
 #if context.portal_type in ('Department','Certificate','StudyLevel'):
-if context.portal_type in ('Department','StudyLevel',):
+if context.portal_type in ('Department',
+                           'StudyLevel',
+                           'Student',
+                           'StudentAdmission',
+                           'StudentClearance',
+                           'StudentPersonal',
+                           'StudentStudyCourse',
+                           'StudentStudyLevel',
+                           ):
     return None
 return 1
Index: /WAeUP_SRP/trunk/skins/waeup_custom/getContentInfo.py
===================================================================
--- /WAeUP_SRP/trunk/skins/waeup_custom/getContentInfo.py	(revision 453)
+++ /WAeUP_SRP/trunk/skins/waeup_custom/getContentInfo.py	(revision 454)
@@ -232,4 +232,6 @@
             core = 'elective'
         info['core_or_elective'] = core
+    elif doc.portal_type == 'Student':
+        info['clearance'] = proxy.clearance.getContent()
     info['time'] = doc.modified()
     info['doc'] = doc
Index: /WAeUP_SRP/trunk/skins/waeup_default/display_content.py
===================================================================
--- /WAeUP_SRP/trunk/skins/waeup_default/display_content.py	(revision 454)
+++ /WAeUP_SRP/trunk/skins/waeup_default/display_content.py	(revision 454)
@@ -0,0 +1,20 @@
+## Script (Python) ""
+##bind container=container
+##bind context=context
+##bind namespace=
+##bind script=script
+##bind subpath=traverse_subpath
+##parameters=ids=[], REQUEST=None
+##title=
+##
+# $Id: folder_delete.py 30246 2005-12-02 20:10:18Z fguillaume $
+"""
+content  should be displayed if 
+"""
+return context.portal_type in ('Certificate',
+                                'Department',
+                                'StudentAdmission',
+                                'StudentClearance',
+                                'StudentPersonal',
+                                'StudentStudyCourse',
+                                'StudentStudyLevel')
