Index: main/kofacustom.lpng/trunk/src/kofacustom/lpng/applicants/browser.py
===================================================================
--- main/kofacustom.lpng/trunk/src/kofacustom/lpng/applicants/browser.py	(revision 17220)
+++ main/kofacustom.lpng/trunk/src/kofacustom/lpng/applicants/browser.py	(revision 17225)
@@ -141,5 +141,5 @@
         if state == STARTED:
             actions = [[_('Save'),
-                        _('Save and Make Donation via USSD')],
+                        _('Save and Make Donation')],
                 [
                  #_('Add online payment ticket'),
@@ -179,4 +179,7 @@
             # Error during image upload. Ignore other values.
             return
+        if not self.request.form.get('confirm_passport', False):
+            self.flash(_('Please tick the checkbox above the save buttons.'))
+            return
         self.applyData(self.context, **data)
         self.flash(_('Form has been saved.'))
@@ -185,19 +188,22 @@
     @action(_('Add online payment ticket'), style='primary')
     def addPaymentTicket(self, **data):
-        self.redirect(self.url(self.context, '@@addafp'))
+        self.redirect(self.url(self.context, 'addafp'))
         return
 
     @action(_('Make Donation'), style='primary')
     def addBalancePaymentTicket(self, **data):
-        self.redirect(self.url(self.context, '@@addbp'))
-        return
-
-    @action(_('Save and Make Donation via USSD'), style='primary')
-    def makeUSSDonation(self, **data):
+        self.redirect(self.url(self.context, 'addbp'))
+        return
+
+    @action(_('Save and Make Donation'), style='primary')
+    def saveAndDonate(self, **data):
         if self.upload_success is False:  # False is not None!
             # Error during image upload. Ignore other values.
             return
+        if not self.request.form.get('confirm_passport', False):
+            self.flash(_('Please tick the checkbox above the save buttons.'))
+            return
         self.applyData(self.context, **data)
-        self.redirect(self.url(self.context, 'ussdinfo'))
+        self.redirect(self.url(self.context, 'addbp'))
         return
         
Index: main/kofacustom.lpng/trunk/src/kofacustom/lpng/applicants/browser_templates/applicanteditpage.pt
===================================================================
--- main/kofacustom.lpng/trunk/src/kofacustom/lpng/applicants/browser_templates/applicanteditpage.pt	(revision 17225)
+++ main/kofacustom.lpng/trunk/src/kofacustom/lpng/applicants/browser_templates/applicanteditpage.pt	(revision 17225)
@@ -0,0 +1,196 @@
+<form action="." tal:attributes="action request/URL" method="post"
+      i18n:domain="waeup.kofa" enctype="multipart/form-data"
+      autocomplete="off">
+
+  <h2 i18n:domain="waeup.kofa" tal:condition="context/translated_state">
+    ...
+    <span tal:replace="context/translated_state">APPLICATIONSTATE
+    </span>
+    <span tal:omit-tag=""
+      i18n:translate="" tal:condition="context/suspended">(account suspended)
+    </span>
+    ...
+  </h2>
+
+  <div class="workflow" tal:condition="context/history">
+    <div tal:repeat="msg context/history/messages">
+      <span tal:replace="msg">MESSAGE</span><br />
+    </div>
+  </div>
+
+  <table class="form-table">
+    <tbody>
+      <tal:widgets content="structure provider:widgets" />
+      <tr tal:condition="view/picture_editable">
+        <td class="fieldname" i18n:translate="">
+          Passport Photo:
+        </td>
+        <td>
+          <img src="passport.jpg" height="180px" /><br />
+          <br />
+      		<div class="input-group half">
+      			<div class="input-group-btn">
+      				<div class="btn btn-default btn-file">
+                Select&hellip;
+                <input type="file" name="form.passport" />
+              </div>
+      			</div>
+      			<input type="text" class="form-control" readonly>
+          </div>
+          <span i18n:translate="">
+            Max. file size:
+          </span>
+          <span tal:replace="view/max_upload_size">10 KB</span>
+        </td>
+      </tr>
+
+      <tal:files>
+        <tr tal:repeat="filename view/additional_files">
+          <tal:cond tal:condition="python:view.display_fileupload(filename)">
+            <td class="fieldname">
+              <span tal:replace="python:filename[0]">FILENAME</span>:
+            </td>
+            <td>
+              <p tal:condition="python:view.file_exists(filename[1])">
+                <a tal:attributes="href python:filename[1]"i18n:translate="">
+                  Download file
+                </a>
+              </p>
+              <div class="input-group half">
+                <div class="input-group-btn">
+                  <div class="btn btn-default btn-file">
+                    Select&hellip;
+                  <input type="file" tal:attributes="name python:filename[1]" />
+                  </div>
+                </div>
+                <input type="text" class="form-control" readonly>
+              </div>
+              <span i18n:translate="">
+                JPG or PDF files only. Max. file size:
+              </span>
+              <span tal:replace="view/max_file_upload_size">10 KB</span>
+            </td>
+          </tal:cond>
+        </tr>
+      </tal:files>
+
+      <tr tal:condition="view/manage_applications">
+        <td class="fieldname" i18n:translate="">Password:</td>
+        <td>
+          <input class="form-control" name="password" type="password"  />
+        </td>
+      </tr>
+      <tr tal:condition="view/manage_applications">
+        <td class="fieldname" i18n:translate="">Retype Password:</td>
+        <td>
+          <input class="form-control" name="control_password" type="password" />
+        </td>
+      </tr>
+      <tr tal:condition="view/manage_applications">
+        <td class="fieldname" i18n:translate="">Application Transition:</td>
+        <td>
+          <select id="transition" name="transition" class="form-control half">
+            <option tal:repeat="transition view/getTransitions"
+                    tal:attributes="value transition/name">
+              <span tal:replace="transition/title">TRANSITIONTITLE</span>
+            </option>
+          </select>
+        </td>
+      </tr>
+    </tbody>
+  </table>
+
+  <div tal:condition="python: not view.manage_applications
+                              and context.__parent__.picture_editable">
+    <input id="confirm_passport" name="confirm_passport"
+           type="checkbox" value="True"/>&nbsp;&nbsp;
+    <span i18n:translate="">
+    I confirm that the Passport Photograph uploaded on this form is a
+    true picture of me.
+    </span>
+  </div>
+  <br />
+
+  <div tal:condition="view/availableActions">
+    <span tal:repeat="action view/actions"
+          tal:omit-tag="">
+      <input tal:condition="python:action.label in view.display_actions[0]"
+             tal:replace="structure action/render"/>
+    </span>
+  </div>
+
+  <tal:refereereports condition="view/display_refereereports">
+    <br /><br />
+    <h3 i18n:translate="">
+        Referee Reports
+    </h3>
+    <table i18n:domain="waeup.kofa" class="table table-condensed">
+      <thead>
+      <tr>
+        <th i18n:translate="">Report Id</th>
+        <th i18n:translate="">Creation Date</th>
+        <th i18n:translate="">Referee</th>
+        <th i18n:translate="">Email Address</th>
+      </tr>
+      </thead>
+      <tbody>
+        <tr tal:repeat="cl context/refereereports">
+          <td> <a tal:attributes="href python:view.url(cl)">
+            <span tal:content="cl/r_id">RID</span></a></td>
+          <td tal:content="python: layout.formatDatetime(cl.creation_date)">CREATION DATE</td>
+          <td tal:content="cl/name">REFEREE</td>
+          <td tal:content="cl/email">EMAIL</td>
+        </tr>
+      </tbody>
+    </table>
+  </tal:refereereports>
+
+  <tal:payments condition="view/display_payments">
+    <br /><br />
+    <h3 i18n:translate="">
+        Payment Tickets
+    </h3>
+
+    <table i18n:domain="waeup.kofa" class="table table-condensed">
+      <thead>
+      <tr>
+        <th>&nbsp;</th>
+        <th i18n:translate="">Payment Id</th>
+        <th i18n:translate="">Creation Date</th>
+        <th i18n:translate="">Payment Date</th>
+        <th i18n:translate="">Category</th>
+        <th i18n:translate="">State</th>
+      </tr>
+      </thead>
+      <tbody>
+        <tr tal:repeat="cl context/payments">
+          <td>
+           <input type="checkbox"  name="val_id"
+           tal:attributes="value cl/__name__"
+           tal:condition="python: not view.unremovable(cl)" />
+          </td>
+          <td> <a tal:attributes="href python:view.url(cl)">
+          <span tal:content="cl/p_id">PID</span></a></td>
+          <td tal:content="python: layout.formatDatetime(cl.creation_date)">CREATION DATE</td>
+          <td tal:content="python: layout.formatDatetime(cl.payment_date)">PAYMENT DATE</td>
+          <td tal:content ="cl/category">CATEGORY</td>
+          <td tal:content ="cl/p_state_title">STATE</td>
+        </tr>
+      </tbody>
+    </table>
+
+    <div tal:condition="view/availableActions">
+      <span tal:repeat="action view/actions"
+            tal:omit-tag="">
+        <input tal:condition="python:action.label in view.display_actions[1]"
+               tal:replace="structure action/render"/>
+      </span>
+    </div>
+    <br />
+    <p i18n:translate="" tal:condition="context/special">
+      <strong>Notice:</strong> If you need to pay for another service,
+      select the corresponding special application category above,
+      click 'Save' and then 'Add online payment ticket' again.
+    </p>
+  </tal:payments>
+</form>
