Index: main/waeup.sirp/trunk/src/waeup/sirp/students/browser.py
===================================================================
--- main/waeup.sirp/trunk/src/waeup/sirp/students/browser.py	(revision 6805)
+++ main/waeup.sirp/trunk/src/waeup/sirp/students/browser.py	(revision 6806)
@@ -486,4 +486,22 @@
     target = 'manage'
 
+class AddStudyLevelActionButton(AddActionButton):
+    grok.order(1)
+    grok.context(IStudentStudyCourse)
+    grok.view(StudyCourseDisplayFormPage)
+    grok.require('waeup.handleStudent')
+    text = 'Add course list'
+    target = 'add'
+
+    @property
+    def target_url(self):
+        student = self.view.context.getStudent()
+        condition1 = student.state != 'school fee paid'
+        condition2 = str(student['studycourse'].current_level) in \
+            self.view.context.keys()
+        if condition1 or condition2:
+            return ''
+        return self.view.url(self.view.context, self.target)
+
 class StudyCourseManageFormPage(WAeUPEditFormPage):
     """ Page to edit the student study course data
@@ -1002,2 +1020,45 @@
         self.redirect(self.url(self.context))
         return
+
+class AddStudyLevelFormPage(WAeUPEditFormPage):
+    """ Page for students to add current study levels
+    """
+    grok.context(IStudentStudyCourse)
+    grok.name('add')
+    grok.require('waeup.handleStudent')
+    grok.template('studyleveladdpage')
+    form_fields = grok.AutoFields(IStudentStudyCourse)
+    title = 'Study Course'
+    pnav = 4
+
+    @property
+    def label(self):
+        studylevelsource = StudyLevelSource().factory
+        code = self.context.current_level
+        title = studylevelsource.getTitle(self.context, code)
+        return 'Add current level %s' % title
+
+    def emitLockMessage(self):
+        self.flash('The requested form is locked (read-only).')
+        self.redirect(self.url(self.context))
+        return
+
+    def update(self):
+        if self.context.getStudent().state != 'school fee paid':
+            self.emitLockMessage()
+            return
+        super(AddStudyLevelFormPage, self).update()
+        return
+
+    @grok.action('Create course list now')
+    def addStudyLevel(self, **data):
+        studylevel = StudentStudyLevel()
+        studylevel.level = self.context.current_level
+        studylevel.level_session = self.context.current_session
+        try:
+            self.context.addStudentStudyLevel(
+                self.context.certificate,studylevel)
+        except KeyError:
+            self.flash('This level exists.')
+        self.redirect(self.url(self.context))
+        return
Index: main/waeup.sirp/trunk/src/waeup/sirp/students/browser_templates/studycoursepage.pt
===================================================================
--- main/waeup.sirp/trunk/src/waeup/sirp/students/browser_templates/studycoursepage.pt	(revision 6805)
+++ main/waeup.sirp/trunk/src/waeup/sirp/students/browser_templates/studycoursepage.pt	(revision 6806)
@@ -44,4 +44,4 @@
 
 <div tal:condition="python: not len(context.keys())">
-There no levels registered yet.
+There are no levels registered yet.
 </div>
Index: main/waeup.sirp/trunk/src/waeup/sirp/students/browser_templates/studyleveladdpage.pt
===================================================================
--- main/waeup.sirp/trunk/src/waeup/sirp/students/browser_templates/studyleveladdpage.pt	(revision 6806)
+++ main/waeup.sirp/trunk/src/waeup/sirp/students/browser_templates/studyleveladdpage.pt	(revision 6806)
@@ -0,0 +1,28 @@
+<h2 i18n:translate=""
+tal:condition="view/label"
+tal:content="view/label">Label</h2>
+
+<div class="form-status"
+    tal:define="status view/status"
+    tal:condition="status">
+    Form Status:
+    <span i18n:translate="" tal:content="view/status">
+      Form status summary
+    </span>
+</div>
+
+<form action="." tal:attributes="action request/URL" method="POST"
+      class="edit-form" enctype="multipart/form-data"> 
+
+  <p>Text to explain course registration procedure.</p>
+
+  <div class="actionButtons" tal:condition="view/availableActions">
+    <span tal:repeat="action view/actions"
+          tal:omit-tag="">
+      <input tal:replace="structure action/render"/>
+    </span>
+  </div>
+</form>  
+
+
+
Index: main/waeup.sirp/trunk/src/waeup/sirp/students/browser_templates/studylevelmanagepage.pt
===================================================================
--- main/waeup.sirp/trunk/src/waeup/sirp/students/browser_templates/studylevelmanagepage.pt	(revision 6805)
+++ main/waeup.sirp/trunk/src/waeup/sirp/students/browser_templates/studylevelmanagepage.pt	(revision 6806)
@@ -69,5 +69,5 @@
       <th>Mandatory</th>
       <th>Score</th>
-      <th>Automatic</th>
+      <th>Auto</th>
     </tr>
   </thead>
@@ -87,5 +87,5 @@
       <td tal:content="value/core_or_elective">MANDATORY</td>
       <td tal:content="value/score">SCORE</td>
-      <td tal:content="value/automatic">AUTOMATIC</td>
+      <td tal:content="value/automatic">AUTO</td>
     </tr>
   </tbody>
Index: main/waeup.sirp/trunk/src/waeup/sirp/students/browser_templates/studylevelpage.pt
===================================================================
--- main/waeup.sirp/trunk/src/waeup/sirp/students/browser_templates/studylevelpage.pt	(revision 6805)
+++ main/waeup.sirp/trunk/src/waeup/sirp/students/browser_templates/studylevelpage.pt	(revision 6806)
@@ -43,5 +43,5 @@
       <th>Mandatory</th>
       <th>Score</th>
-      <th>Automatic</th>
+      <th>Auto</th>
     </tr>
   </thead>
@@ -57,5 +57,5 @@
       <td tal:content="value/core_or_elective">MANDATORY</td>
       <td tal:content="value/score">SCORE</td>
-      <td tal:content="value/automatic">AUTOMATIC</td>
+      <td tal:content="value/automatic">AUTO</td>
     </tr>
   </tbody>
Index: main/waeup.sirp/trunk/src/waeup/sirp/students/interfaces.py
===================================================================
--- main/waeup.sirp/trunk/src/waeup/sirp/students/interfaces.py	(revision 6805)
+++ main/waeup.sirp/trunk/src/waeup/sirp/students/interfaces.py	(revision 6806)
@@ -238,5 +238,4 @@
     faculty = Attribute('faculty of the original course')
     department = Attribute('department of the original course')
-    automatic = Attribute('automatical creation of ticket')
 
     core_or_elective = schema.Bool(
@@ -254,4 +253,11 @@
         )
 
+    automatic = schema.Bool(
+        title = u'Automatical Creation',
+        default = False,
+        required = False,
+        readonly = True,
+        )
+
 class ICourseTicketAdd(ICourseTicket):
     """An interface for adding course tickets
Index: main/waeup.sirp/trunk/src/waeup/sirp/students/studylevel.py
===================================================================
--- main/waeup.sirp/trunk/src/waeup/sirp/students/studylevel.py	(revision 6805)
+++ main/waeup.sirp/trunk/src/waeup/sirp/students/studylevel.py	(revision 6806)
@@ -74,5 +74,4 @@
         super(CourseTicket, self).__init__()
         self.code = None
-        self.automatic = None
         self.title = None
         self.faculty = None
