Index: /main/waeup.kofa/trunk/src/waeup/kofa/applicants/browser.py
===================================================================
--- /main/waeup.kofa/trunk/src/waeup/kofa/applicants/browser.py	(revision 13991)
+++ /main/waeup.kofa/trunk/src/waeup/kofa/applicants/browser.py	(revision 13992)
@@ -1508,5 +1508,5 @@
 class RefereeReportAddFormPage(KofaAddFormPage):
     """Add-form to add an referee report. This form
-    is protected by a mandate. (not yet ready)
+    is protected by a mandate.
     """
     grok.context(IApplicant)
@@ -1515,4 +1515,5 @@
     form_fields = grok.AutoFields(
         IApplicantRefereeReport).omit('creation_date')
+    grok.template('refereereportpage')
     label = _('Add referee report')
     pnav = 3
@@ -1529,7 +1530,7 @@
         # Check mandate
         form = self.request.form
-        mandate_id = form.get('mandate_id', None)
-        mandates = grok.getSite()['mandates']
-        mandate = mandates.get(mandate_id, None)
+        self.mandate_id = form.get('mandate_id', None)
+        self.mandates = grok.getSite()['mandates']
+        mandate = self.mandates.get(self.mandate_id, None)
         if mandate is None and not self.request.form.get('form.actions.submit'):
             self.flash(_('No mandate.'), type='warning')
@@ -1558,6 +1559,6 @@
         self.flash(_('Referee report has been saved. Thank you!'))
         self.context.writeLogMessage(self, 'added: %s' % report.r_id)
-        # XXX: Delete mandate
-        # XXX: Send email
+        # Delete mandate
+        del self.mandates[self.mandate_id]
         self.redirect(self.application_url())
         return
Index: /main/waeup.kofa/trunk/src/waeup/kofa/applicants/browser_templates/refereereportpage.pt
===================================================================
--- /main/waeup.kofa/trunk/src/waeup/kofa/applicants/browser_templates/refereereportpage.pt	(revision 13992)
+++ /main/waeup.kofa/trunk/src/waeup/kofa/applicants/browser_templates/refereereportpage.pt	(revision 13992)
@@ -0,0 +1,23 @@
+<p  i18n:domain="waeup.kofa" i18n:translate="referee_welcome">
+  You have been invited to report about
+  <span  i18n:name="applicant_name" tal:replace="context/display_fullname">
+  </span>.
+  After submission the form, will be blocked.
+  You can neither view nor edit your report after submission.
+</p>
+
+<form action="." tal:attributes="action request/URL" method="post"
+      enctype="multipart/form-data">
+  <input type="hidden" name="mandate_id" tal:attributes="value view/mandate_id" />
+  <table class="form-table">
+    <tbody>
+      <tal:widgets content="structure provider:widgets" />
+    </tbody>
+  </table>
+  <br />
+  <div tal:condition="view/availableActions">
+    <input tal:repeat="action view/actions"
+           tal:replace="structure action/render"
+           />
+  </div>
+</form>
Index: /main/waeup.kofa/trunk/src/waeup/kofa/applicants/tests/test_browser.py
===================================================================
--- /main/waeup.kofa/trunk/src/waeup/kofa/applicants/tests/test_browser.py	(revision 13991)
+++ /main/waeup.kofa/trunk/src/waeup/kofa/applicants/tests/test_browser.py	(revision 13992)
@@ -1570,7 +1570,14 @@
                 container_name_1, self.applicant.application_number)
         self.app['mandates'].addMandate(mandate)
+        self.assertEqual(len(self.app['mandates'].keys()), 1)
         # Let's open the add form page via the mandate view
         self.browser.open('http://localhost/app/mandate?mandate_id=%s'
             % mandate.mandate_id)
+        self.assertTrue('Joan None' in self.browser.contents)
+        # Report can't be saved without required fields
+        self.browser.getControl(name="form.email").value = ''
+        self.browser.getControl("Submit").click()
+        self.assertTrue('Required input is missing' in self.browser.contents)
+        self.browser.getControl(name="form.email").value = 'bb@bb.bb'
         self.browser.getControl("Submit").click()
         self.assertTrue('Referee report has been saved' in self.browser.contents)
@@ -1595,2 +1602,4 @@
             in logcontent
             )
+        # Mandate is deleted
+        self.assertEqual(len(self.app['mandates'].keys()), 0)
