Index: main/waeup.futminna/trunk/src/waeup/futminna/applicants/applicant.py
===================================================================
--- main/waeup.futminna/trunk/src/waeup/futminna/applicants/applicant.py	(revision 8650)
+++ main/waeup.futminna/trunk/src/waeup/futminna/applicants/applicant.py	(revision 8670)
@@ -30,4 +30,7 @@
     grok.provides(ICustomApplicant)
 
+    create_names = Applicant.create_names + [
+        'lga', 'nationality', 'perm_address']
+
 # Set all attributes of Applicant required in IApplicant as field
 # properties. Doing this, we do not have to set initial attributes
Index: main/waeup.futminna/trunk/src/waeup/futminna/applicants/tests.py
===================================================================
--- main/waeup.futminna/trunk/src/waeup/futminna/applicants/tests.py	(revision 8650)
+++ main/waeup.futminna/trunk/src/waeup/futminna/applicants/tests.py	(revision 8670)
@@ -20,4 +20,7 @@
 import tempfile
 import datetime
+import grok
+import pytz
+from zope.event import notify
 from zope.intid.interfaces import IIntIds
 from zope.interface.verify import verifyClass, verifyObject
@@ -26,4 +29,5 @@
 from zope.catalog.interfaces import ICatalog
 from zope.testbrowser.testing import Browser
+from hurry.workflow.interfaces import IWorkflowState
 from waeup.kofa.app import University
 from waeup.kofa.university.faculty import Faculty
@@ -79,4 +83,9 @@
         self.app['applicants']['app2011'] = self.ugcontainer
 
+        self.ugcontainer.mode = 'update'
+        delta = datetime.timedelta(days=10)
+        self.ugcontainer.startdate = datetime.datetime.now(pytz.utc) - delta
+        self.ugcontainer.enddate = datetime.datetime.now(pytz.utc) + delta
+
         # Populate university
         self.certificate = createObject('waeup.Certificate')
@@ -85,4 +94,5 @@
         self.certificate.start_level = 100
         self.certificate.end_level = 500
+        self.certificate.study_mode = u'ug_ft'
         self.app['faculties']['fac1'] = Faculty()
         self.app['faculties']['fac1']['dep1'] = Department()
@@ -94,4 +104,5 @@
         self.certificate2.start_level = 100
         self.certificate2.end_level = 500
+        self.certificate.study_mode = u'pg_ft'
         self.app['faculties']['fac1']['dep1'].certificates.addCertificate(
             self.certificate2)
@@ -133,4 +144,5 @@
         self.browser.getControl(name="form.date_of_birth").value = '09/09/1988'
         self.browser.getControl(name="form.lga").value = ['foreigner']
+        self.browser.getControl(name="form.nationality").value = ['NG']
         self.browser.getControl(name="form.sex").value = ['m']
         self.browser.getControl(name="form.email").value = 'xx@yy.zz'
@@ -216,4 +228,28 @@
         self.assertEqual(payment.p_category,'application')
         self.assertEqual(payment.amount_auth, 300.0)
+        return
+
+    def test_create_ugstudent(self):
+        self.browser.addHeader('Authorization', 'Basic mgr:mgrpw')
+        manage_path = 'http://localhost/app/applicants/%s/%s/%s' % (
+            'app2011', self.ugapplicant.application_number, 'manage')
+        self.browser.open(manage_path)
+        self.fill_correct_values()
+        self.browser.getControl("Save").click()
+        IWorkflowState(self.ugapplicant).setState('admitted')
+        self.browser.getControl(name="form.course1").value = ['CERT1']
+        self.browser.getControl(name="form.course_admitted").value = ['CERT1']
+        self.browser.getControl("Save").click()
+        self.browser.getLink("Create student").click()
+        student_id =  self.app['students'].keys()[0]
+        self.assertTrue(('Student %s created' % student_id)
+            in self.browser.contents)
+        student = self.app['students'][student_id]
+        self.assertEqual(student.email, 'xx@yy.zz')
+        self.assertEqual(student.firstname, 'John')
+        self.assertEqual(student.lastname, 'Tester')
+        # Also additional attributes have been copied.
+        self.assertEqual(student.lga, 'foreigner')
+        self.assertEqual(student.nationality, 'NG')
         return
 
