Index: /WAeUP_SRP/trunk/profiles/default/layouts/student_course_result.xml
===================================================================
--- /WAeUP_SRP/trunk/profiles/default/layouts/student_course_result.xml	(revision 1855)
+++ /WAeUP_SRP/trunk/profiles/default/layouts/student_course_result.xml	(revision 1856)
@@ -1,3 +1,4 @@
 <?xml version="1.0"?>
+<?xml-stylesheet type="text/xsl" href="layout.xsl"?>
 <object name="student_course_result" meta_type="CPS Layout">
  <property name="layout_create_method"></property>
Index: /WAeUP_SRP/trunk/skins/waeup_epayment/pay_by_sc.py
===================================================================
--- /WAeUP_SRP/trunk/skins/waeup_epayment/pay_by_sc.py	(revision 1855)
+++ /WAeUP_SRP/trunk/skins/waeup_epayment/pay_by_sc.py	(revision 1856)
@@ -45,5 +45,6 @@
                       layout_mode="create",
                       formaction = "pay_by_sc",
-                      button = 'Pay'
+                      button = 'Pay',
+                      commit = False,
                       )
 if psm == 'invalid':
Index: /WAeUP_SRP/trunk/skins/waeup_student/check_admission.py
===================================================================
--- /WAeUP_SRP/trunk/skins/waeup_student/check_admission.py	(revision 1855)
+++ /WAeUP_SRP/trunk/skins/waeup_student/check_admission.py	(revision 1856)
@@ -30,4 +30,5 @@
                       formaction = "check_admission",
                       button = "Check",
+                      commit=False,
                       )
 if psm == 'invalid':
Index: /WAeUP_SRP/trunk/skins/waeup_student/create_level.py
===================================================================
--- /WAeUP_SRP/trunk/skins/waeup_student/create_level.py	(revision 1855)
+++ /WAeUP_SRP/trunk/skins/waeup_student/create_level.py	(revision 1856)
@@ -37,7 +37,8 @@
 create_level =  request.get('create_level',None)
 
-if context.hasObject(current_level) and create_level :
-    logger.info('%s tried to add already existing level %s' % (student.id,current_level))
-    return
+##if context.hasObject(current_level) and create_level:
+##    if getattr(context,current_level).objectIds():
+##        logger.info('%s tried to add already existing level %s' % (student.id,current_level))
+##    return
 logger.info('%s started to create level %s' % (student.id,current_level))
 
@@ -53,5 +54,5 @@
 ##        return
 
-if level_created == current_level:
+if context.hasObject(current_level):
     level = getattr(context,"%s" % current_level)
 else:
@@ -62,4 +63,5 @@
     level.getContent().edit(mapping={'session': study_session})
     context.portal_workflow.doActionFor(level,'close_for_edit')
+    context.waeup_tool.doCommit()
 results = []
 if student.matric_no:
@@ -75,4 +77,7 @@
 
     for co in carry_overs:
+        cr_id = "%s_co" % co.CosCode
+        if level.hasObject(cr_id):    #already created
+            continue
         carry_over = False
         query = Eq('code',co.CosCode)
@@ -105,5 +110,5 @@
         context.portal_workflow.doActionFor(course_result,'open')
         course_result.getContent().edit(mapping=d)
-        #context.waeup_tool.doCommit()
+        context.waeup_tool.doCommit()
 #level['create_course_results'](cert_id,current_level)
 res = context.portal_catalog(portal_type="Certificate", id = cert_id)
@@ -117,4 +122,7 @@
     courses = aq_portal(query)
     for c in courses:
+        cr_id = "%s" % c.getId
+        if level.hasObject(cr_id):    #already created
+            continue
         d = context.getCourseInfo(c.getId)
         cr_id = level.invokeFactory('StudentCourseResult',c.getId)
@@ -123,5 +131,5 @@
         d['core_or_elective'] = getattr(c.getObject().getContent(),'core_or_elective')
         course_result.getContent().edit(mapping=d)
-        #context.waeup_tool.doCommit()
+        context.waeup_tool.doCommit()
 logger.info('%s finished to create level %s' % (student.id,current_level))
 return response.redirect("%s/%s" % (context.absolute_url(),current_level))
