Index: main/waeup.sirp/trunk/src/waeup/sirp/browser/templates/default_waeup_display_form.pt
===================================================================
--- main/waeup.sirp/trunk/src/waeup/sirp/browser/templates/default_waeup_display_form.pt	(revision 7111)
+++ main/waeup.sirp/trunk/src/waeup/sirp/browser/templates/default_waeup_display_form.pt	(revision 7112)
@@ -15,5 +15,5 @@
       </tr>
     </tal:block>
-    <tal:actionbar content="structure provider:files" />
+    <tal:files content="structure provider:files" />
   </tbody>
   <tfoot>
Index: main/waeup.sirp/trunk/src/waeup/sirp/browser/templates/default_waeup_edit_form.pt
===================================================================
--- main/waeup.sirp/trunk/src/waeup/sirp/browser/templates/default_waeup_edit_form.pt	(revision 7111)
+++ main/waeup.sirp/trunk/src/waeup/sirp/browser/templates/default_waeup_edit_form.pt	(revision 7112)
@@ -43,5 +43,5 @@
         </tr>
       </tal:block>
-      <tal:actionbar content="structure provider:files" />
+      <tal:files content="structure provider:files" />
     </tbody>
   </table>
Index: main/waeup.sirp/trunk/src/waeup/sirp/students/browser_templates/baseeditpage.pt
===================================================================
--- main/waeup.sirp/trunk/src/waeup/sirp/students/browser_templates/baseeditpage.pt	(revision 7111)
+++ main/waeup.sirp/trunk/src/waeup/sirp/students/browser_templates/baseeditpage.pt	(revision 7112)
@@ -40,4 +40,5 @@
         </tr>
       </tal:block>
+      <tal:files content="structure provider:files" />
     </tbody>
   </table>
Index: main/waeup.sirp/trunk/src/waeup/sirp/students/browser_templates/basemanagepage.pt
===================================================================
--- main/waeup.sirp/trunk/src/waeup/sirp/students/browser_templates/basemanagepage.pt	(revision 7111)
+++ main/waeup.sirp/trunk/src/waeup/sirp/students/browser_templates/basemanagepage.pt	(revision 7112)
@@ -61,4 +61,5 @@
         </td>
       </tr>
+      <tal:files content="structure provider:files" />
     </tbody>
   </table>
Index: main/waeup.sirp/trunk/src/waeup/sirp/students/browser_templates/basepage.pt
===================================================================
--- main/waeup.sirp/trunk/src/waeup/sirp/students/browser_templates/basepage.pt	(revision 7111)
+++ main/waeup.sirp/trunk/src/waeup/sirp/students/browser_templates/basepage.pt	(revision 7112)
@@ -23,4 +23,5 @@
       </td>
     <tr>
+    <tal:files content="structure provider:files" />
   </tbody>
   <tfoot>
Index: main/waeup.sirp/trunk/src/waeup/sirp/students/browser_templates/imagedisplay.pt
===================================================================
--- main/waeup.sirp/trunk/src/waeup/sirp/students/browser_templates/imagedisplay.pt	(revision 7111)
+++ main/waeup.sirp/trunk/src/waeup/sirp/students/browser_templates/imagedisplay.pt	(revision 7112)
@@ -1,5 +1,5 @@
 <tr>
   <td class="label">
-    <label i18n:translate="" tal:attributes="for viewlet/input_name">
+    <label i18n:translate="">
         <span tal:replace="viewlet/label">FILENAME</span>
     </label>
@@ -7,5 +7,6 @@
   <td class="field">
     <span class="widget">
-      <img tal:attributes="src viewlet/download_name" /><br />
+      <img height="125px" tal:attributes="src viewlet/download_name" />
+      <br />
     </span>
   </td>
Index: main/waeup.sirp/trunk/src/waeup/sirp/students/browser_templates/imageupload.pt
===================================================================
--- main/waeup.sirp/trunk/src/waeup/sirp/students/browser_templates/imageupload.pt	(revision 7111)
+++ main/waeup.sirp/trunk/src/waeup/sirp/students/browser_templates/imageupload.pt	(revision 7112)
@@ -7,7 +7,16 @@
   <td class="field">
     <span class="widget">
-      <img tal:attributes="src viewlet/download_name" /><br />
+      <img align="middle" height="125px"
+           tal:attributes="src viewlet/download_name" />
+      <input type="submit" tal:condition="viewlet/file_exists"
+       tal:attributes="id python:('delete_%s' % viewlet.input_name);
+          name python:('delete_%s' % viewlet.input_name)"
+       value="Delete" class="button" />
+      <br /><br />
       <input type="file" tal:attributes="name viewlet/input_name"/>
-      <br />
+      <input type="submit"
+               tal:attributes="id python:('upload_%s' % viewlet.input_name);
+                  name python:('upload_%s' % viewlet.input_name)"
+               value="Upload" class="button" />
       <span i18n:translate="">
         Max. file size:
Index: main/waeup.sirp/trunk/src/waeup/sirp/students/viewlets.py
===================================================================
--- main/waeup.sirp/trunk/src/waeup/sirp/students/viewlets.py	(revision 7111)
+++ main/waeup.sirp/trunk/src/waeup/sirp/students/viewlets.py	(revision 7112)
@@ -9,6 +9,7 @@
 from waeup.sirp.students.browser import (
     StudentClearanceDisplayFormPage, StudentClearanceManageFormPage,
-    write_log_message)
-from waeup.sirp.students.interfaces import IStudentClearance
+    write_log_message, StudentBaseManageFormPage, StudentBaseDisplayFormPage,
+    StudentBaseEditFormPage)
+from waeup.sirp.students.interfaces import IStudent, IStudentClearance
 
 grok.context(IWAeUPObject) # Make IWAeUPObject the default context
@@ -297,6 +298,36 @@
         return
 
+class PassportDisplay(FileDisplay):
+    """Passport display viewlet.
+    """
+    grok.order(1)
+    grok.context(IStudent)
+    grok.view(StudentBaseDisplayFormPage)
+    grok.require('waeup.viewStudent')
+    grok.template('imagedisplay')
+    label = u'Passport Picture:'
+    download_name = u'passport.jpg'
+
+class PassportUploadManage(FileUpload):
+    """Passport upload viewlet for officers.
+    """
+    grok.order(1)
+    grok.context(IStudent)
+    grok.view(StudentBaseManageFormPage)
+    grok.require('waeup.manageStudents')
+    grok.template('imageupload')
+    label = u'Passport Picture (jpg only):'
+    mus = 1024 * 50
+    download_name = u'passport.jpg'
+    input_name = u'passport'
+
+class PassportUploadEdit(PassportUploadManage):
+    """Passport upload viewlet for students.
+    """
+    grok.view(StudentBaseEditFormPage)
+    grok.require('waeup.handleStudent')
+
 class BirthCertificateDisplay(FileDisplay):
-    """Birth Certificate upload viewlet.
+    """Birth Certificate display viewlet.
     """
     grok.order(1)
@@ -314,5 +345,5 @@
 
 class AcceptanceLetterDisplay(FileDisplay):
-    """Acceptance Letter upload viewlet.
+    """Acceptance Letter display viewlet.
     """
     grok.order(1)
@@ -323,5 +354,5 @@
     """AcceptanceLetter upload viewlet.
     """
-    grok.order(1)
+    grok.order(2)
     label = u'Acceptance Letter (jpg only):'
     mus = 1024 * 150
@@ -334,5 +365,5 @@
     grok.baseclass()
     grok.name('none.jpg')
-    grok.view(StudentClearanceManageFormPage)
+    grok.context(IStudentClearance)
     grok.require('waeup.viewStudent')
     download_name = u'none.jpg'
@@ -351,4 +382,11 @@
         return image
 
+class Passport(Image):
+    """Renders jpeg passport picture.
+    """
+    grok.name('passport.jpg')
+    download_name = u'passport.jpg'
+    grok.context(IStudent)
+
 class BirthCertificateImage(Image):
     """Renders birth certificate jpeg scan.
