Index: /main/waeup.kofa/trunk/src/waeup/kofa/students/browser.py
===================================================================
--- /main/waeup.kofa/trunk/src/waeup/kofa/students/browser.py	(revision 9951)
+++ /main/waeup.kofa/trunk/src/waeup/kofa/students/browser.py	(revision 9952)
@@ -2071,4 +2071,5 @@
     pnav = 4
     buttonname = _('Start clearance now')
+    with_ac = True
 
     @property
@@ -2098,26 +2099,27 @@
             self.redirect(self.url(self.context, 'edit_base'))
             return
-        self.ac_series = self.request.form.get('ac_series', None)
-        self.ac_number = self.request.form.get('ac_number', None)
-
+        if self.with_ac:
+            self.ac_series = self.request.form.get('ac_series', None)
+            self.ac_number = self.request.form.get('ac_number', None)
         if SUBMIT is None:
             return
-        pin = '%s-%s-%s' % (self.ac_prefix, self.ac_series, self.ac_number)
-        code = get_access_code(pin)
-        if not code:
-            self.flash(_('Activation code is invalid.'))
-            return
-        if code.state == USED:
-            self.flash(_('Activation code has already been used.'))
-            return
-        # Mark pin as used (this also fires a pin related transition)
-        # and fire transition start_clearance
-        comment = _(u"invalidated")
-        # Here we know that the ac is in state initialized so we do not
-        # expect an exception, but the owner might be different
-        if not invalidate_accesscode(pin, comment, self.context.student_id):
-            self.flash(_('You are not the owner of this access code.'))
-            return
-        self.context.clr_code = pin
+        if self.with_ac:
+            pin = '%s-%s-%s' % (self.ac_prefix, self.ac_series, self.ac_number)
+            code = get_access_code(pin)
+            if not code:
+                self.flash(_('Activation code is invalid.'))
+                return
+            if code.state == USED:
+                self.flash(_('Activation code has already been used.'))
+                return
+            # Mark pin as used (this also fires a pin related transition)
+            # and fire transition start_clearance
+            comment = _(u"invalidated")
+            # Here we know that the ac is in state initialized so we do not
+            # expect an exception, but the owner might be different
+            if not invalidate_accesscode(pin, comment, self.context.student_id):
+                self.flash(_('You are not the owner of this access code.'))
+                return
+            self.context.clr_code = pin
         IWorkflowInfo(self.context).fireTransition('start_clearance')
         self.flash(_('Clearance process has been started.'))
@@ -2194,14 +2196,17 @@
     pnav = 4
     buttonname = _('Request clearance now')
+    with_ac = True
 
     def update(self, SUBMIT=None):
-        self.ac_series = self.request.form.get('ac_series', None)
-        self.ac_number = self.request.form.get('ac_number', None)
+        if self.with_ac:
+            self.ac_series = self.request.form.get('ac_series', None)
+            self.ac_number = self.request.form.get('ac_number', None)
         if SUBMIT is None:
             return
-        pin = '%s-%s-%s' % (self.ac_prefix, self.ac_series, self.ac_number)
-        if self.context.clr_code and self.context.clr_code != pin:
-            self.flash(_("This isn't your CLR access code."))
-            return
+        if self.with_ac:
+            pin = '%s-%s-%s' % (self.ac_prefix, self.ac_series, self.ac_number)
+            if self.context.clr_code and self.context.clr_code != pin:
+                self.flash(_("This isn't your CLR access code."))
+                return
         state = IWorkflowState(self.context).getState()
         if state != CLEARANCE:
@@ -2225,4 +2230,5 @@
     pnav = 4
     buttonname = _('Start now')
+    with_ac = True
 
     def update(self, SUBMIT=None):
@@ -2235,26 +2241,27 @@
             self.redirect(self.url(self.context))
             return
-        self.ac_series = self.request.form.get('ac_series', None)
-        self.ac_number = self.request.form.get('ac_number', None)
-
+        if self.with_ac:
+            self.ac_series = self.request.form.get('ac_series', None)
+            self.ac_number = self.request.form.get('ac_number', None)
         if SUBMIT is None:
             return
-        pin = '%s-%s-%s' % (self.ac_prefix, self.ac_series, self.ac_number)
-        code = get_access_code(pin)
-        if not code:
-            self.flash(_('Activation code is invalid.'))
-            return
-        # Mark pin as used (this also fires a pin related transition)
-        if code.state == USED:
-            self.flash(_('Activation code has already been used.'))
-            return
-        else:
-            comment = _(u"invalidated")
-            # Here we know that the ac is in state initialized so we do not
-            # expect an error, but the owner might be different
-            if not invalidate_accesscode(
-                pin,comment,self.context.student.student_id):
-                self.flash(_('You are not the owner of this access code.'))
+        if self.with_ac:
+            pin = '%s-%s-%s' % (self.ac_prefix, self.ac_series, self.ac_number)
+            code = get_access_code(pin)
+            if not code:
+                self.flash(_('Activation code is invalid.'))
                 return
+            # Mark pin as used (this also fires a pin related transition)
+            if code.state == USED:
+                self.flash(_('Activation code has already been used.'))
+                return
+            else:
+                comment = _(u"invalidated")
+                # Here we know that the ac is in state initialized so we do not
+                # expect an error, but the owner might be different
+                if not invalidate_accesscode(
+                    pin,comment,self.context.student.student_id):
+                    self.flash(_('You are not the owner of this access code.'))
+                    return
         try:
             if self.context.student.state == CLEARED:
Index: /main/waeup.kofa/trunk/src/waeup/kofa/students/browser_templates/enterpin.pt
===================================================================
--- /main/waeup.kofa/trunk/src/waeup/kofa/students/browser_templates/enterpin.pt	(revision 9951)
+++ /main/waeup.kofa/trunk/src/waeup/kofa/students/browser_templates/enterpin.pt	(revision 9952)
@@ -1,4 +1,4 @@
 <form method="POST" i18n:domain="waeup.kofa">
-  <table class="form-table">
+  <table class="form-table" tal:condition="view/with_ac">
     <tbody>
       <tr>
@@ -30,3 +30,12 @@
     </tbody>
   </table>
+
+  <span tal:omit-tag="" tal:condition="not: view/with_ac">
+    <p i18n:translate="">
+      Your data have been approved. You can continue by
+      clicking the button below.
+    </p>
+    <input type="submit" name="SUBMIT" class="btn primary"
+           tal:attributes="value view/buttonname" />
+  </span>
 </form>
