Index: /main/waeup.kofa/trunk/src/waeup/kofa/students/browser.py
===================================================================
--- /main/waeup.kofa/trunk/src/waeup/kofa/students/browser.py	(revision 10458)
+++ /main/waeup.kofa/trunk/src/waeup/kofa/students/browser.py	(revision 10459)
@@ -1064,5 +1064,5 @@
         return
 
-class StudentRequestTranscriptPage(KofaPage):
+class StudentTranscriptRequestPage(KofaPage):
     """ Page to transcript by student
     """
@@ -1070,5 +1070,5 @@
     grok.name('request_transcript')
     grok.require('waeup.handleStudent')
-    grok.template('requesttranscript')
+    grok.template('transcriptrequest')
     label = _('Request transcript')
     ac_prefix = 'TSC'
@@ -1079,4 +1079,11 @@
 
     def update(self, SUBMIT=None):
+        super(StudentTranscriptRequestPage, self).update()
+        tabs.need()
+        self.tab1 = self.tab2 = ''
+        qs = self.request.get('QUERY_STRING', '')
+        if not qs:
+            qs = 'tab1'
+        setattr(self, qs, 'active')
         if not self.context.state == GRADUATED:
             self.flash(_("Wrong state"))
@@ -1134,45 +1141,59 @@
         return
 
-class StudentRequestTranscriptManageFormPage(KofaEditFormPage):
-    """ Page to edit personal data by student
+class StudentTranscriptRequestProcessFormPage(KofaEditFormPage):
+    """ Page to process transcript requests
     """
     grok.context(IStudent)
-    grok.name('manage_transcript_request')
+    grok.name('process_transcript_request')
     grok.require('waeup.manageStudent')
+    grok.template('transcriptprocess')
     form_fields = grok.AutoFields(IStudentTranscript)
-    label = _('Manage transcript request')
-    pnav = 4
-
-    def update(self):
-        super(StudentRequestTranscriptManageFormPage, self).update()
+    label = _('Process transcript request')
+    buttonname = _('Save comment and mark as processed')
+    pnav = 4
+
+    def update(self, SUBMIT=None):
+        super(StudentTranscriptRequestProcessFormPage, self).update()
+        tabs.need()
+        self.tab1 = self.tab2 = ''
+        qs = self.request.get('QUERY_STRING', '')
+        if not qs:
+            qs = 'tab1'
+        setattr(self, qs, 'active')
         if self.context.state != TRANSCRIPT:
-            self.flash(_("Wrong state"))
-            self.redirect(self.url(self.context))
-        return
-
-    #@action(_('Save'), style='primary')
-    #def save(self, **data):
-    #    msave(self, **data)
-    #    return
-
-    @action(_('Save comment and mark as processed'), style='primary')
-    def process(self, **data):
-        if self.context.state == TRANSCRIPT:
-            IWorkflowInfo(self.context).fireTransition('process_transcript')
-            message = _('Transcript request processed.')
-            self.flash(message)
-        else:
             self.flash(_('Student is in wrong state.'))
             self.redirect(self.url(self.context))
             return
-        self.applyData(self.context, **data)
-        comment = data['transcript_comment']
+        if self.context.transcript_comment is not None:
+            self.correspondence = self.context.transcript_comment.replace(
+                '\n', '<br>')
+        else:
+            self.correspondence = ''
+        if SUBMIT is None:
+            return
+        IWorkflowInfo(self.context).fireTransition('process_transcript')
+        self.flash(_('Transcript request processed.'))
+        comment = self.request.form.get('comment', '').replace('\r', '')
+        tz = getattr(queryUtility(IKofaUtils), 'tzinfo', pytz.utc)
+        today = now(tz).strftime('%d/%m/%Y %H:%M:%S %Z')
+        old_transcript_comment = self.context.transcript_comment
+        if old_transcript_comment == None:
+            old_transcript_comment = ''
+        self.context.transcript_comment = '''On %s %s wrote:
+
+%s
+
+%s''' % (today, self.request.principal.id, comment,
+         old_transcript_comment)
+        self.context.writeLogMessage(
+            self, 'comment: %s' % comment.replace('\n', '<br>'))
+        subject = _('Transcript processed')
         if comment:
             self.context.writeLogMessage(
                 self, 'comment: %s' %
                 comment.replace('\r\n', '<br>'))
-            args = {'subject':message, 'body':comment}
-        else:
-            args = {'subject':message,}
+            args = {'subject':subject, 'body':comment}
+        else:
+            args = {'subject':subject,}
         self.redirect(self.url(self.context) +
             '/contactstudent?%s' % urlencode(args))
Index: in/waeup.kofa/trunk/src/waeup/kofa/students/browser_templates/requesttranscript.pt
===================================================================
--- /main/waeup.kofa/trunk/src/waeup/kofa/students/browser_templates/requesttranscript.pt	(revision 10458)
+++ 	(revision )
@@ -1,57 +1,0 @@
-<form method="POST" i18n:domain="waeup.kofa">
-  <table class="form-table" tal:condition="view/with_ac">
-    <tbody>
-      <tr>
-        <td i18n:translate="">
-        Comment:
-        </td>
-        <td>
-        <textarea cols="60" name="comment" rows="6"></textarea>
-        </td>
-      </tr>
-      <tr>
-        <td i18n:translate="">
-        Dispatch Address:
-        </td>
-        <td>
-        <textarea cols="60" name="address" rows="6"></textarea>
-        </td>
-      </tr>
-      <tr>
-        <td i18n:translate="">
-        Activation Code:
-        </td>
-        <td>
-        <span tal:replace="view/ac_prefix">PIN Prefix</span> -
-        <input name="ac_series" type="text" class="span1" maxlength="3"
-               value="" tal:attributes="value view/ac_series"/> -
-        <input name="ac_number" type="text" class="span3" maxlength="10"
-               value="" tal:attributes="value view/ac_number" />
-        <font color="red"><span tal:replace="view/notice">Notice</span>
-        </font>
-        </td>
-      </tr>
-      <tr>
-        <td>&nbsp;</td>
-        <td i18n:translate="">
-        The activation code can be found on the payment slip.
-        </td>
-      </tr>
-      <tr>
-        <td colspan="2">
-          <input type="submit" name="SUBMIT" class="btn primary"
-                 tal:attributes="value view/buttonname" />
-        </td>
-      </tr>
-    </tbody>
-  </table>
-
-  <span tal:omit-tag="" tal:condition="not: view/with_ac">
-    <input type="submit" name="SUBMIT" class="btn primary"
-           tal:attributes="value view/buttonname" />
-  </span>
-
-  <h1 i18n:translate="">Correspondence</h1>
-  <p tal:content="structure view/correspondence"></p>
-
-</form>
Index: /main/waeup.kofa/trunk/src/waeup/kofa/students/browser_templates/transcriptprocess.pt
===================================================================
--- /main/waeup.kofa/trunk/src/waeup/kofa/students/browser_templates/transcriptprocess.pt	(revision 10459)
+++ /main/waeup.kofa/trunk/src/waeup/kofa/students/browser_templates/transcriptprocess.pt	(revision 10459)
@@ -0,0 +1,39 @@
+<form method="POST" i18n:domain="waeup.kofa">
+
+  <ul class="tabs" data-tabs="tabs">
+    <li tal:attributes="class view/tab1"><a href="#tab-1">
+    <span i18n:translate="">Process request</span></a></li>
+    <li tal:attributes="class view/tab2"><a href="#tab-2">
+    <span i18n:translate="">View correspondence</span></a></li>
+  </ul>
+
+  <div class="tab-content">
+    <div id="tab-1" tal:attributes="class view/tab1">
+
+      <table class="form-table">
+        <tbody>
+          <tr>
+            <td i18n:translate="">
+            Comment:
+            </td>
+            <td>
+            <textarea cols="60" name="comment" rows="6"></textarea>
+            </td>
+          </tr>
+          <tr>
+            <td colspan="2">
+              <br />
+              <input type="submit" name="SUBMIT" class="btn primary"
+                     tal:attributes="value view/buttonname" />
+            </td>
+          </tr>
+        </tbody>
+      </table>
+    </div>
+
+    <div id="tab-2" tal:attributes="class view/tab2">
+      <p tal:content="structure view/correspondence"></p>
+    </div>
+  </div>
+
+</form>
Index: /main/waeup.kofa/trunk/src/waeup/kofa/students/browser_templates/transcriptrequest.pt
===================================================================
--- /main/waeup.kofa/trunk/src/waeup/kofa/students/browser_templates/transcriptrequest.pt	(revision 10459)
+++ /main/waeup.kofa/trunk/src/waeup/kofa/students/browser_templates/transcriptrequest.pt	(revision 10459)
@@ -0,0 +1,70 @@
+<form method="POST" i18n:domain="waeup.kofa">
+
+  <ul class="tabs" data-tabs="tabs">
+    <li tal:attributes="class view/tab1"><a href="#tab-1">
+    <span i18n:translate="">Send new request</span></a></li>
+    <li tal:attributes="class view/tab2"><a href="#tab-2">
+    <span i18n:translate="">View correspondence</span></a></li>
+  </ul>
+
+  <div class="tab-content">
+    <div id="tab-1" tal:attributes="class view/tab1">
+
+      <table class="form-table" tal:condition="view/with_ac">
+        <tbody>
+          <tr>
+            <td i18n:translate="">
+            Comment:
+            </td>
+            <td>
+            <textarea cols="60" name="comment" rows="6"></textarea>
+            </td>
+          </tr>
+          <tr>
+            <td i18n:translate="">
+            Dispatch Address:
+            </td>
+            <td>
+            <textarea cols="60" name="address" rows="6"></textarea>
+            </td>
+          </tr>
+          <tr>
+            <td i18n:translate="">
+            Activation Code:
+            </td>
+            <td>
+            <span tal:replace="view/ac_prefix">PIN Prefix</span> -
+            <input name="ac_series" type="text" class="span1" maxlength="3"
+                   value="" tal:attributes="value view/ac_series"/> -
+            <input name="ac_number" type="text" class="span3" maxlength="10"
+                   value="" tal:attributes="value view/ac_number" />
+            <font color="red"><span tal:replace="view/notice">Notice</span>
+            </font>
+            </td>
+          </tr>
+          <tr>
+            <td>&nbsp;</td>
+            <td i18n:translate="">
+            The activation code can be found on the payment slip.
+            </td>
+          </tr>
+          <tr>
+            <td colspan="2">
+              <input type="submit" name="SUBMIT" class="btn primary"
+                     tal:attributes="value view/buttonname" />
+            </td>
+          </tr>
+        </tbody>
+      </table>
+      <span tal:omit-tag="" tal:condition="not: view/with_ac">
+        <input type="submit" name="SUBMIT" class="btn primary"
+               tal:attributes="value view/buttonname" />
+      </span>
+    </div>
+
+    <div id="tab-2"  tal:attributes="class view/tab2">
+      <p tal:content="structure view/correspondence"></p>
+    </div>
+  </div>
+
+</form>
Index: /main/waeup.kofa/trunk/src/waeup/kofa/students/viewlets.py
===================================================================
--- /main/waeup.kofa/trunk/src/waeup/kofa/students/viewlets.py	(revision 10458)
+++ /main/waeup.kofa/trunk/src/waeup/kofa/students/viewlets.py	(revision 10459)
@@ -692,11 +692,11 @@
         return self.view.url(self.view.context, self.target)
 
-class ManageTranscriptRequestActionButton(ManageActionButton):
+class ProcessTranscriptRequestActionButton(ManageActionButton):
     grok.order(9)
     grok.context(IStudent)
     grok.view(StudentBaseDisplayFormPage)
-    grok.require('waeup.manageStudent')
+    grok.require('waeup.viewTranscript')
     text = _('Manage transcript request')
-    target = 'manage_transcript_request'
+    target = 'process_transcript_request'
     icon = 'actionicon_transcript.png'
 
