Index: /WAeUP_SRP/trunk/skins/waeup_student/create_level.py
===================================================================
--- /WAeUP_SRP/trunk/skins/waeup_student/create_level.py	(revision 1493)
+++ /WAeUP_SRP/trunk/skins/waeup_student/create_level.py	(revision 1494)
@@ -12,4 +12,6 @@
     def set_trace():
         pass
+from Products.AdvancedQuery import Eq, Between, Le,In
+aq_portal = context.portal_catalog.evalAdvancedQuery
 
 current = DateTime.DateTime()
@@ -27,8 +29,9 @@
 student = context.students_catalog(id=context.getStudentId())[0]
 cert_id = student.course
+current_level = student.level
 in_progress =  session.get('in_progress','finished')
 if in_progress == 'finished':
     session.set('in_progress','started')
-    view = context.in_progress_view(refresh=3,page='study_level_view')
+    view = context.in_progress_view(refresh=3,page='%s/study_level_view' % current_level)
     response.setHeader('Content-type','text/html; charset=ISO-8859-15')
     response.setHeader('Content-length','%d' % (len(view)))
@@ -40,6 +43,6 @@
 context.invokeFactory('StudentStudyLevel',"%s" % current_level)
 level = getattr(context,"%s" % current_level)
-session = context.getSessionString()
-level.getContent().edit(mapping={'session': session})
+study_session = context.getSessionString()
+level.getContent().edit(mapping={'session': study_session})
 context.portal_workflow.doActionFor(level,'open')
 context.portal_workflow.doActionFor(level,'close_for_edit')
@@ -51,6 +54,6 @@
     d['grade'] = co.GRADE
     d['carry_level'] = co.CarryLevel
-    cr_id = context.invokeFactory('StudentCourseResult',"%s_co" % co.CosCode)
-    getattr(context,cr_id).getContent().edit(mapping=d)
+    cr_id = level.invokeFactory('StudentCourseResult',"%s_co" % co.CosCode)
+    getattr(level,cr_id).getContent().edit(mapping=d)
 res = context.portal_catalog(portal_type="Certificate", id = cert_id)
 l = []
@@ -61,10 +64,10 @@
             Eq('portal_type','CertificateCourse') &\
             Eq('SearchableText', "%s" % student.level)
-    courses = evalAdvancedQuery(query)
+    courses = aq_portal(query)
     for c in courses:
         d = context.getCourseInfo(c.getId)
-        cr_id = context.invokeFactory('StudentCourseResult',c.getId)
+        cr_id = level.invokeFactory('StudentCourseResult',c.getId)
         d['core_or_elective'] = getattr(c.getObject().getContent(),'core_or_elective')
-        getattr(context,cr_id).getContent().edit(mapping=d)
+        getattr(level,cr_id).getContent().edit(mapping=d)
 session.set('in_progress','finished')
-return "finished"
+return response.redirect("%s/study_level_view" % level.absolute_url())
Index: /WAeUP_SRP/trunk/skins/waeup_student/getStudyCourseInfo.py
===================================================================
--- /WAeUP_SRP/trunk/skins/waeup_student/getStudyCourseInfo.py	(revision 1493)
+++ /WAeUP_SRP/trunk/skins/waeup_student/getStudyCourseInfo.py	(revision 1494)
@@ -12,4 +12,10 @@
 return Info about the Students StudyCourse
 """
+try:
+    from Products.zdb import set_trace
+except:
+    def set_trace():
+        pass
+
 request = context.REQUEST
 
@@ -49,5 +55,7 @@
     wftool.doActionFor(context,'close_for_edit')
 student_review_state = context.getStudentReviewState()
-may_register = 0 #1 or student_review_state in ('shool_fee_payed',)
+#may_register = 0 #1 or student_review_state in ('shool_fee_payed',)
+may_register = (1 or student_review_state in ('shool_fee_payed',)) and\
+               current_level not in levels
 levels.sort()
 info['create_level'] = None
Index: /WAeUP_SRP/trunk/skins/waeup_student/getStudyLevelInfo.py
===================================================================
--- /WAeUP_SRP/trunk/skins/waeup_student/getStudyLevelInfo.py	(revision 1493)
+++ /WAeUP_SRP/trunk/skins/waeup_student/getStudyLevelInfo.py	(revision 1494)
@@ -12,6 +12,11 @@
 return Info about the Studylevel
 """
+try:
+    from Products.zdb import set_trace
+except:
+    def set_trace():
+        pass
 from Products.AdvancedQuery import Eq, Between, Le,In
-evalAdvancedQuery = context.portal_catalog.evalAdvancedQuery
+aq_portal = context.portal_catalog.evalAdvancedQuery
 request = context.REQUEST
 session = request.SESSION
@@ -66,8 +71,10 @@
     if id.endswith('_co'):
         d = context.getCourseInfo(id[:-3])
+        d['id'] = id
         d['grade'] = obj.getContent().grade
         carry_overs.append(d)
     else:
         d = context.getCourseInfo(id)
+        d['id'] = id
         coe = obj.getContent().core_or_elective
         d['coe'] = 'Core'
Index: /WAeUP_SRP/trunk/skins/waeup_student/study_course_view.pt
===================================================================
--- /WAeUP_SRP/trunk/skins/waeup_student/study_course_view.pt	(revision 1493)
+++ /WAeUP_SRP/trunk/skins/waeup_student/study_course_view.pt	(revision 1494)
@@ -65,8 +65,8 @@
                      />
             </td>
-            <td><a href="view" tal:condition="python: 0"
+            <td><a href="view" tal:condition="python: 1"
                    tal:attributes="href string:${row/url}">
               <strong tal:content="row/title" /></a> 
-              <strong tal:condition="python: 1" tal:content="row/title" />
+              <strong tal:condition="python: 0" tal:content="row/title" />
             </td>
           </tr>
@@ -98,4 +98,5 @@
             tal:attributes="action string:${context/absolute_url}/create_level"
             tal:define="rows python: info['items'];"
+            tal:condition="create_level"
             >
         <table width="100%" cellspacing="0" cellpadding="2"
@@ -105,7 +106,7 @@
             <td align="left" valign="top" rowspan="3"></td>
             <td align="left" valign="top">
-              <input type="submit" name="create_level" tal:condition="create_level"
+              <input type="submit" name="create_level" 
                        class="destructive" 
-                       tal:attributes="onclick python:'return window.confirm(\'Do you really want to register for Level %s\?')' % create_level;
+                       tal:attributes="onclick python:'return window.confirm(\'Do you really want to register for Level %s ?\')' % create_level;
                        value string: Register for Level ${create_level}" 
                        />
Index: /WAeUP_SRP/trunk/skins/waeup_student/study_level_view.pt
===================================================================
--- /WAeUP_SRP/trunk/skins/waeup_student/study_level_view.pt	(revision 1493)
+++ /WAeUP_SRP/trunk/skins/waeup_student/study_level_view.pt	(revision 1494)
@@ -46,5 +46,5 @@
             <td align="left" valign="middle" style="width: 5px;">
               <input type="checkbox" name="ids:list" value="" id="" class="noborder"
-                     tal:define="id row/code"
+                     tal:define="id row/id"
                      tal:attributes="value id;
                      id python:'cb_' + id;
@@ -65,5 +65,5 @@
             <td align="left" valign="middle" style="width: 5px;">
               <input type="checkbox" name="ids:list" value="" id="" class="noborder"
-                     tal:define="id row/code"
+                     tal:define="id row/id"
                      tal:attributes="value id;
                      id python:'cb_' + id;
