Index: main/waeup.sirp/trunk/src/waeup/sirp/applicants/applicant.py
===================================================================
--- main/waeup.sirp/trunk/src/waeup/sirp/applicants/applicant.py	(revision 7350)
+++ main/waeup.sirp/trunk/src/waeup/sirp/applicants/applicant.py	(revision 7351)
@@ -115,13 +115,13 @@
         student['studycourse'].certificate = self.course_admitted
         # Create StudentApplication object ...
-        application = createObject(u'waeup.StudentApplication')
+        #application = createObject(u'waeup.StudentApplication')
         # ... copy applicant base data
-        form_fields = grok.AutoFields(IApplicantBaseData)
-        field_names = [i.__name__ for i in form_fields]
-        for name in field_names:
-            value = getattr(self,name,None)
-            if value:
-                setattr(application,name,value)
-        site['students'][student.student_id]['application'] = application
+        #form_fields = grok.AutoFields(IApplicantBaseData)
+        #field_names = [i.__name__ for i in form_fields]
+        #for name in field_names:
+        #    value = getattr(self,name,None)
+        #    if value:
+        #        setattr(application,name,value)
+        #site['students'][student.student_id]['application'] = application
         return True, 'Student %s created' % student.student_id
 
Index: main/waeup.sirp/trunk/src/waeup/sirp/applicants/browser.py
===================================================================
--- main/waeup.sirp/trunk/src/waeup/sirp/applicants/browser.py	(revision 7350)
+++ main/waeup.sirp/trunk/src/waeup/sirp/applicants/browser.py	(revision 7351)
@@ -473,5 +473,5 @@
         """
         course_admitted = self.context.course_admitted
-        if ICertificate.providedBy(course_admitted):
+        if getattr(course_admitted, '__parent__',None):
             url = self.url(course_admitted)
             title = course_admitted.title
@@ -688,5 +688,6 @@
         """
         course_admitted = self.context.course_admitted
-        if ICertificate.providedBy(course_admitted):
+        #if ICertificate.providedBy(course_admitted):
+        if getattr(course_admitted, '__parent__',None):
             title = course_admitted.title
             code = course_admitted.code
@@ -763,5 +764,5 @@
 
         course_admitted = self.context.course_admitted
-        if ICertificate.providedBy(course_admitted):
+        if getattr(course_admitted, '__parent__',None):
             f_label = '<font size=12>Department:</font>'
             f_text = '<font size=12>%s</font>' % (
@@ -847,4 +848,5 @@
     form_fields = grok.AutoFields(IApplicant)
     form_fields['date_of_birth'].custom_widget = FriendlyDateWidget('le-year')
+    form_fields['student_id'].for_display = True
     grok.template('applicanteditpage')
     manage_applications = True
@@ -993,5 +995,5 @@
             actions = [['Save', 'Final Submit'],
                        ['Remove selected tickets']]
-        elif state == SUBMITTED:
+        else:
             actions = [[],[]]
         return actions
Index: main/waeup.sirp/trunk/src/waeup/sirp/applicants/interfaces.py
===================================================================
--- main/waeup.sirp/trunk/src/waeup/sirp/applicants/interfaces.py	(revision 7350)
+++ main/waeup.sirp/trunk/src/waeup/sirp/applicants/interfaces.py	(revision 7351)
@@ -396,5 +396,5 @@
         title = u'Student Id',
         required = False,
-        readonly = True,
+        readonly = False,
         )
     locked = schema.Bool(
Index: main/waeup.sirp/trunk/src/waeup/sirp/students/application.py
===================================================================
--- main/waeup.sirp/trunk/src/waeup/sirp/students/application.py	(revision 7350)
+++ 	(revision )
@@ -1,56 +1,0 @@
-## $Id$
-##
-## Copyright (C) 2011 Uli Fouquet & Henrik Bettermann
-## This program is free software; you can redistribute it and/or modify
-## it under the terms of the GNU General Public License as published by
-## the Free Software Foundation; either version 2 of the License, or
-## (at your option) any later version.
-##
-## This program is distributed in the hope that it will be useful,
-## but WITHOUT ANY WARRANTY; without even the implied warranty of
-## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-## GNU General Public License for more details.
-##
-## You should have received a copy of the GNU General Public License
-## along with this program; if not, write to the Free Software
-## Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
-##
-"""
-Container which holds the data of the orginal applicant object created during
-application and copied after admission.
-"""
-import grok
-from zope.component.interfaces import IFactory
-from zope.interface import implementedBy
-from waeup.sirp.applicants.interfaces import IApplicantBaseData
-from waeup.sirp.students.interfaces import IStudentNavigation
-from waeup.sirp.utils.helpers import attrs_to_fields
-
-class StudentApplication(grok.Container):
-    """This is a container for application data.
-    """
-    grok.implements(IApplicantBaseData, IStudentNavigation)
-    grok.provides(IApplicantBaseData)
-
-    def __init__(self):
-        super(StudentApplication, self).__init__()
-        return
-
-    def getStudent(self):
-        return self.__parent__
-
-StudentApplication = attrs_to_fields(StudentApplication)
-
-class StudentApplicationFactory(grok.GlobalUtility):
-    """A factory for students.
-    """
-    grok.implements(IFactory)
-    grok.name(u'waeup.StudentApplication')
-    title = u"Create a new student application object.",
-    description = u"This factory instantiates new student application instances."
-
-    def __call__(self, *args, **kw):
-        return StudentApplication()
-
-    def getInterfaces(self):
-        return implementedBy(StudentApplication)
Index: main/waeup.sirp/trunk/src/waeup/sirp/students/browser.py
===================================================================
--- main/waeup.sirp/trunk/src/waeup/sirp/students/browser.py	(revision 7350)
+++ main/waeup.sirp/trunk/src/waeup/sirp/students/browser.py	(revision 7351)
@@ -102,10 +102,4 @@
         return self.context.fullname
 
-class ApplicationBreadcrumb(Breadcrumb):
-    """A breadcrumb for the application data.
-    """
-    grok.context(IApplicantBaseData)
-    title = 'Application'
-
 class SudyCourseBreadcrumb(Breadcrumb):
     """A breadcrumb for the student study course.
@@ -475,19 +469,4 @@
             write_log_message(self, 'saved: % s' % fields_string)
         return
-
-class StudentApplicationDisplayFormPage(SIRPDisplayFormPage):
-    """ Page to display application data
-    """
-    grok.context(IApplicantBaseData)
-    grok.name('index')
-    grok.require('waeup.viewStudent')
-    form_fields = grok.AutoFields(IApplicantBaseData)
-    form_fields['date_of_birth'].custom_widget = FriendlyDateDisplayWidget('le')
-    title = 'Application Data'
-    pnav = 4
-
-    @property
-    def label(self):
-        return '%s: Application Data' % self.context.getStudent().fullname
 
 class StudentClearanceDisplayFormPage(SIRPDisplayFormPage):
Index: main/waeup.sirp/trunk/src/waeup/sirp/students/tests/test_browser.py
===================================================================
--- main/waeup.sirp/trunk/src/waeup/sirp/students/tests/test_browser.py	(revision 7350)
+++ main/waeup.sirp/trunk/src/waeup/sirp/students/tests/test_browser.py	(revision 7351)
@@ -368,6 +368,6 @@
         self.assertMatches('...Student admitted by zope.mgr...',
                            self.browser.contents)
-        # Only the StudentApplication object does not exist
-        self.assertFalse('Application Data' in self.browser.contents)
+        # Only the Application Slip does not exist
+        self.assertFalse('Application Slip' in self.browser.contents)
         return
 
Index: main/waeup.sirp/trunk/src/waeup/sirp/students/tests/test_student.py
===================================================================
--- main/waeup.sirp/trunk/src/waeup/sirp/students/tests/test_student.py	(revision 7350)
+++ main/waeup.sirp/trunk/src/waeup/sirp/students/tests/test_student.py	(revision 7351)
@@ -21,5 +21,4 @@
 from zope.interface import verify
 from waeup.sirp.students.student import Student, StudentFactory
-from waeup.sirp.students.application import StudentApplication
 from waeup.sirp.students.studycourse import StudentStudyCourse
 from waeup.sirp.students.studylevel import StudentStudyLevel, CourseTicket
@@ -40,5 +39,4 @@
         super(StudentTest, self).setUp()
         self.student = Student()
-        self.application = StudentApplication()
         self.studycourse = StudentStudyCourse()
         self.studylevel = StudentStudyLevel()
@@ -56,6 +54,4 @@
         verify.verifyClass(IStudent, Student)
         verify.verifyObject(IStudent, self.student)
-        verify.verifyClass(IApplicantBaseData, StudentApplication)
-        verify.verifyObject(IApplicantBaseData, self.application)
         verify.verifyClass(IStudentStudyCourse, StudentStudyCourse)
         verify.verifyObject(IStudentStudyCourse, self.studycourse)
Index: main/waeup.sirp/trunk/src/waeup/sirp/students/viewlets.py
===================================================================
--- main/waeup.sirp/trunk/src/waeup/sirp/students/viewlets.py	(revision 7350)
+++ main/waeup.sirp/trunk/src/waeup/sirp/students/viewlets.py	(revision 7351)
@@ -67,11 +67,12 @@
 class StudentManageApplicationLink(StudentManageLink):
     grok.order(2)
-    link = 'application'
-    text = u'Application Data'
+    link = 'application_slip'
+    text = u'Application Slip'
 
     def render(self):
-        application = self.context.getStudent().get(self.link)
-        if application is not None:
-            url = self.view.url(application)
+        slip = getUtility(IExtFileStore).getFileByContext(
+            self.context.getStudent(), attr=self.link)
+        if slip:
+            url = self.view.url(self.context,self.link)
             return u'<div class="portlet"><a href="%s">%s</a></div>' % (
                     url, self.text)
@@ -141,14 +142,15 @@
     text = u'Base Data'
 
-class StudentApplicationLink(StudentLink):
+class ApplicationSlipLink(StudentLink):
     grok.order(2)
-    link = 'application'
-    text = u'Application Data'
+    link = 'application_slip'
+    text = u'Application Slip'
 
     @property
     def target_url(self):
-        application = self.context.getStudent().get(self.link)
-        if application is not None:
-            return self.view.url(application)
+        slip = getUtility(IExtFileStore).getFileByContext(
+            self.context.getStudent(), attr=self.link)
+        if slip:
+            return self.view.url(self.context,self.link)
         return
 
@@ -437,5 +439,5 @@
 
 class Image(grok.View):
-    """Renders jpeg images for students.
+    """Renders images for students.
     """
     grok.baseclass()
@@ -472,6 +474,12 @@
     grok.context(IStudent)
 
+class ApplicationSlipImage(Image):
+    """Renders application slip scan.
+    """
+    grok.name('application_slip')
+    download_name = u'application_slip'
+
 class BirthCertificateImage(Image):
-    """Renders birth certificate jpeg scan.
+    """Renders birth certificate scan.
     """
     grok.name('birth_certificate')
@@ -479,5 +487,5 @@
 
 class AcceptanceLetterImage(Image):
-    """Renders acceptance letter jpeg scan.
+    """Renders acceptance letter scan.
     """
     grok.name('acceptance_letter')
