Index: main/waeup.uniben/trunk/src/waeup/uniben/applicants/browser.py
===================================================================
--- main/waeup.uniben/trunk/src/waeup/uniben/applicants/browser.py	(revision 16153)
+++ main/waeup.uniben/trunk/src/waeup/uniben/applicants/browser.py	(revision 16164)
@@ -33,5 +33,6 @@
     ExportPDFPageApplicationSlip,
     ApplicantBaseDisplayFormPage,
-    CheckTranscriptStatus)
+    CheckTranscriptStatus,
+    AdditionalFile)
 from waeup.kofa.students.interfaces import IStudentsUtils
 from waeup.kofa.applicants.interfaces import (
@@ -223,5 +224,5 @@
     @property
     def form_fields(self):
-        if self.target is not None and self.target == 'transfull':
+        if self.target is not None and self.target == 'tscf':
             form_fields = grok.AutoFields(ITranscriptApplicant)
             for field in TRANS_OMIT_FIELDS:
@@ -230,5 +231,5 @@
             #form_fields['perm_address'].custom_widget = BytesDisplayWidget
             return form_fields
-        if self.target is not None and self.target == 'transshort':
+        if self.target is not None and self.target == 'tscs':
             form_fields = grok.AutoFields(ITranscriptApplicant)
             for field in TRANS_SHORT_OMIT_FIELDS:
@@ -402,10 +403,10 @@
     @property
     def form_fields(self):
-        if self.target is not None and self.target == 'transfull':
+        if self.target is not None and self.target == 'tscf':
             form_fields = grok.AutoFields(ITranscriptApplicant)
             for field in TRANS_OMIT_FIELDS:
                 form_fields = form_fields.omit(field)
             return form_fields
-        if self.target is not None and self.target == 'transshort':
+        if self.target is not None and self.target == 'tscs':
             form_fields = grok.AutoFields(ITranscriptApplicant)
             for field in TRANS_SHORT_OMIT_FIELDS:
@@ -472,10 +473,10 @@
     @property
     def form_fields(self):
-        if self.target is not None and self.target == 'transfull':
+        if self.target is not None and self.target == 'tscf':
             form_fields = grok.AutoFields(ITranscriptApplicant)
             for field in TRANS_OMIT_FIELDS:
                 form_fields = form_fields.omit(field)
             return form_fields
-        if self.target is not None and self.target == 'transshort':
+        if self.target is not None and self.target == 'tscs':
             form_fields = grok.AutoFields(ITranscriptApplicant)
             for field in TRANS_SHORT_OMIT_FIELDS:
@@ -533,4 +534,31 @@
                 'a':container_title, 'b':self.context.application_number})
         return super(CustomApplicantEditFormPage, self).label
+
+    def display_fileupload(self, filename):
+        if filename[1] == 'res_stat.pdf' \
+            and self.target is not None \
+            and not self.target.startswith('tscf'):
+            return False
+        if filename[1] == 'eligibility.pdf' \
+            and self.target is not None \
+            and not self.target.startswith('tsc'):
+            return False
+        return True
+
+    def dataNotComplete(self, data):
+        store = getUtility(IExtFileStore)
+        if self.context.__parent__.with_picture:
+            store = getUtility(IExtFileStore)
+            if not store.getFileByContext(self.context, attr=u'passport.jpg'):
+                return _('No passport picture uploaded.')
+        if self.target is not None \
+            and self.target.startswith('tscf') \
+            and not store.getFileByContext(self.context, attr=u'res_stat.pdf'):
+            return _('No statement of result pdf file uploaded.')
+        if self.target is not None \
+            and self.target.startswith('tsc') \
+            and not store.getFileByContext(self.context, attr=u'eligibility.pdf'):
+            return _('No eligibility form pdf file uploaded.')
+        return False
 
 class CustomOnlinePaymentApprovePage(OnlinePaymentApprovePage):
@@ -722,4 +750,10 @@
     websites = (('Uniben Alumni Portal', 'https://uniben-alumni.waeup.org/'),
                 ('Uniben Student Portal', 'https://uniben.waeup.org/'),)
-    appl_url1 = 'https://uniben-alumni.waeup.org/applicants/transfull1/register'
-    appl_url2 = 'https://uniben-alumni.waeup.org/applicants/transshort1/register'
+    appl_url1 = 'https://uniben-alumni.waeup.org/applicants/tscf1/register'
+    appl_url2 = 'https://uniben-alumni.waeup.org/applicants/tscs1/register'
+
+class ResultStatement(AdditionalFile):
+    grok.name('res_stat.pdf')
+
+class EligibilityForm(AdditionalFile):
+    grok.name('eligibility.pdf')
Index: main/waeup.uniben/trunk/src/waeup/uniben/applicants/tests/test_browser.py
===================================================================
--- main/waeup.uniben/trunk/src/waeup/uniben/applicants/tests/test_browser.py	(revision 16153)
+++ main/waeup.uniben/trunk/src/waeup/uniben/applicants/tests/test_browser.py	(revision 16164)
@@ -303,5 +303,5 @@
         applicantscontainer.application_fee = 1.0 # Must be set but is not used.
         applicantscontainer.code = u'trans1234'
-        applicantscontainer.prefix = 'transfull'
+        applicantscontainer.prefix = 'tscf'
         applicantscontainer.title = u'This is a trans container'
         applicantscontainer.application_category = 'no'
Index: main/waeup.uniben/trunk/src/waeup/uniben/applicants/utils.py
===================================================================
--- main/waeup.uniben/trunk/src/waeup/uniben/applicants/utils.py	(revision 16153)
+++ main/waeup.uniben/trunk/src/waeup/uniben/applicants/utils.py	(revision 16164)
@@ -31,4 +31,9 @@
     """
 
+    ADDITIONAL_FILES = (
+                 ('Eligibility Form','eligibility.pdf'),
+                 ('Statement of Result','res_stat.pdf'),
+                 )
+
     APP_TYPES_DICT = {
         'pude': ['Post-UDE Screening', 'PUDE'],
@@ -60,6 +65,6 @@
                  '(2nd supplementary advert)', 'ASE'],
         'spft': ['Special Full-Time Programmes', 'SP'],
-        'transfull': ['Transcript Application (without student record)', 'TRF'],
-        'transshort': ['Transcript Application (with student record)', 'TRS'],
+        'tscf': ['Transcript Application (without student record)', 'TRF'],
+        'tscs': ['Transcript Application (with student record)', 'TRS'],
         }
 
