Index: main/waeup.sirp/trunk/src/waeup/sirp/students/application.py
===================================================================
--- main/waeup.sirp/trunk/src/waeup/sirp/students/application.py	(revision 7339)
+++ main/waeup.sirp/trunk/src/waeup/sirp/students/application.py	(revision 7339)
@@ -0,0 +1,56 @@
+## $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/tests/test_student.py
===================================================================
--- main/waeup.sirp/trunk/src/waeup/sirp/students/tests/test_student.py	(revision 7337)
+++ main/waeup.sirp/trunk/src/waeup/sirp/students/tests/test_student.py	(revision 7339)
@@ -21,8 +21,10 @@
 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
 from waeup.sirp.students.payments import StudentPaymentsContainer
 from waeup.sirp.students.accommodation import StudentAccommodation, BedTicket
+from waeup.sirp.applicants.interfaces import IApplicantBaseData
 from waeup.sirp.students.interfaces import (
     IStudent, IStudentStudyCourse, IStudentPaymentsContainer, IStudentAccommodation,
@@ -38,4 +40,5 @@
         super(StudentTest, self).setUp()
         self.student = Student()
+        self.application = StudentApplication()
         self.studycourse = StudentStudyCourse()
         self.studylevel = StudentStudyLevel()
@@ -53,4 +56,6 @@
         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)
