Index: main/waeup.sirp/trunk/src/waeup/sirp/applicants/jambtables/browser.py
===================================================================
--- main/waeup.sirp/trunk/src/waeup/sirp/jambtables/browser.py	(revision 5672)
+++ main/waeup.sirp/trunk/src/waeup/sirp/applicants/jambtables/browser.py	(revision 5687)
@@ -24,4 +24,5 @@
 import grok
 
+from zope.formlib.widgets import FileWidget
 from waeup.sirp.browser import (
     WAeUPPage, WAeUPEditFormPage, WAeUPAddFormPage,
@@ -33,6 +34,7 @@
 from waeup.sirp.jambtables.interfaces import (
     IApplicant, IApplicantContainer, IApplicantPrincipal, IApplicantPDEEditData)
-                                              
-
+from waeup.sirp.widgets.passportwidget import (
+    PassportWidget, PassportDisplayWidget
+    )
 #from zope.formlib.objectwidget import ObjectWidget
 from zope.formlib.sequencewidget import ListSequenceWidget, SequenceDisplayWidget
@@ -43,4 +45,7 @@
 from waeup.sirp.widgets.multilistwidget import (
     MultiListWidget, MultiListDisplayWidget)
+from waeup.sirp.image.browser.widget import (
+    ThumbnailWidget, EncodingImageFileWidget,
+    )
 
 results_widget = CustomWidgetFactory(
@@ -77,4 +82,5 @@
     form_fields = grok.AutoFields(IApplicant)
     form_fields['fst_sit_results'].custom_widget = list_results_widget
+    form_fields['passport'].custom_widget = EncodingImageFileWidget
     label = 'Add Applicant'
     title = 'Add Applicant'
@@ -100,4 +106,6 @@
     form_fields = grok.AutoFields(IApplicant)
     form_fields['fst_sit_results'].custom_widget = list_results_display_widget
+    #form_fields['passport'].custom_widget = PassportDisplayWidget
+    form_fields['passport'].custom_widget = ThumbnailWidget
     label = 'Applicant'
     title = 'Applicant'
@@ -108,6 +116,14 @@
     grok.name('edit')
     form_fields = grok.AutoFields(IApplicantPDEEditData)
+    #form_fields['passport'].custom_widget = FileWidget
+    #form_fields['passport'].custom_widget = PassportWidget
+    form_fields['passport'].custom_widget = EncodingImageFileWidget
     grok.template('form_edit_pde')
 
+    def update(self):
+        super(EditApplicant, self).update()
+        print self.request.form
+        return
+    
     @property
     def label(self):
Index: main/waeup.sirp/trunk/src/waeup/sirp/applicants/jambtables/interfaces.py
===================================================================
--- main/waeup.sirp/trunk/src/waeup/sirp/jambtables/interfaces.py	(revision 5672)
+++ main/waeup.sirp/trunk/src/waeup/sirp/applicants/jambtables/interfaces.py	(revision 5687)
@@ -22,11 +22,28 @@
 """Interfaces for JAMB data tables and related components.
 """
-from waeup.sirp.interfaces import IWAeUPObject
+import os
+import waeup.sirp.browser
+from hurry.file import HurryFile
 from zc.sourcefactory.basic import BasicSourceFactory
 from zope import schema
+from zope.app.file.interfaces import IImage
 from zope.interface import Interface, Attribute
 from zope.pluggableauth.interfaces import IPrincipalInfo
 from zope.security.interfaces import IGroupClosureAwarePrincipal as IPrincipal
-
+from waeup.sirp.interfaces import IWAeUPObject
+from waeup.sirp.image.schema import ImageFile
+
+IMAGE_PATH = os.path.join(
+    os.path.dirname(waeup.sirp.browser.__file__),
+    'static'
+    )
+DEFAULT_PASSPORT_IMAGE_MALE = HurryFile(
+    'passport.jpg',
+    open(os.path.join(IMAGE_PATH, 'placeholder_m.jpg')).read(),
+    )
+DEFAULT_PASSPORT_IMAGE_FEMALE = HurryFile(
+    'passport.jpg',
+    open(os.path.join(IMAGE_PATH, 'placeholder_f.jpg')).read(),
+    )
 
 class GenderSource(BasicSourceFactory):
@@ -179,8 +196,13 @@
         required = False,
         )
-    passport = schema.Bool(
+    #passport = schema.Bool(
+    #    title = u'Passport Photograph',
+    #    default = True,
+    #    required = False,
+    #    )
+    passport = ImageFile(
         title = u'Passport Photograph',
-        default = True,
-        required = False,
+        default = DEFAULT_PASSPORT_IMAGE_MALE,
+        required = True,
         )
     aos = schema.TextLine(
@@ -422,7 +444,12 @@
         default = u'm',
         )
-    passport = schema.Bool(
+    #passport = schema.Bool(
+    #    title = u'Passport Photograph',
+    #    default = True,
+    #    )
+    passport = ImageFile(
         title = u'Passport Photograph',
-        default = True,
+        default = DEFAULT_PASSPORT_IMAGE_MALE,
+        required = True,
         )
     #
@@ -578,10 +605,22 @@
         readonly = True,
         )
-    passport = schema.Bool(
+    #passport = schema.Bool(
+    #    title = u'Passport Photograph',
+    #    default = True,
+    #    required = False,
+    #    ),
+    #passport = schema.Bytes(
+    #    title = u'Passport Photograph',
+    #    required = True,
+    #    )
+    #passport = schema.Object(
+    #    title = u'Passport Photograph',
+    #    required = True,
+    #    schema = IImage)
+    passport = ImageFile(
         title = u'Passport Photograph',
-        default = True,
-        required = False,
-        )
-
+        default = DEFAULT_PASSPORT_IMAGE_MALE,
+        required = True,
+        )
 
 class IApplicantPDEImportData(IApplicantBaseData):
