Index: WAeUP_SRP/trunk/CHANGES.txt
===================================================================
--- WAeUP_SRP/trunk/CHANGES.txt	(revision 3703)
+++ WAeUP_SRP/trunk/CHANGES.txt	(revision 3705)
@@ -50,2 +50,14 @@
 -----------------
 - Add academic and pastoral report slips
+
+1.9 (2008-10-02)
+-----------------
+- add Uniben profile (was default profile)
+- enable transfer students import
+
+Two files must be imported for creating new transfer student records:
+
+1. transferred_from_XX.csv: id, matric_no = 'transferred', import_mode = 'edit'
+
+2. transferred_to_XX.csv: entry_mode = 'transfer', import_mode = 'create', reg_transition = 'return', 
+   all fields from students_catalog except id and edited according to new study course 
Index: WAeUP_SRP/trunk/WAeUPImport.py
===================================================================
--- WAeUP_SRP/trunk/WAeUPImport.py	(revision 3703)
+++ WAeUP_SRP/trunk/WAeUPImport.py	(revision 3705)
@@ -766,4 +766,5 @@
         jamb_reg_no = mapping.get('jamb_reg_no',None)
         matric_no = mapping.get('matric_no',None)
+        entry_mode = mapping.get('entry_mode',None)
         msg = ''
         student_id = mapping.get('id',None)
@@ -772,5 +773,5 @@
                 msg = "student_id must not be specified in create mode"
                 break
-            if jamb_reg_no:
+            if jamb_reg_no and not entry_mode == 'transfer':
                 res = self.students_catalog(jamb_reg_no = jamb_reg_no)
                 if res:
@@ -846,5 +847,5 @@
                 student_record = res[0]
                 if matric_no and student_record.matric_no:
-                    if  matric_no != student_record.matric_no:
+                    if  matric_no != student_record.matric_no and not matric_no == 'transferred':
                         res = self.students_catalog(matric_no = matric_no)
                         if res:
@@ -1137,6 +1138,7 @@
     ###)
 
-    def create_old(self,mapping): ###(
-        "edit student verdicts and create StudentStudyLevel object if not existent"
+
+    def edit(self,mapping): ###(
+        "edit student verdicts"
         wftool = self.portal_workflow
         logger = logging.getLogger('WAeUPTool.mass_edit_verdict')
@@ -1145,6 +1147,88 @@
         matric_no = mapping.get('matric_no',None)
         editable_keys = mapping.keys()
-        while True:
-            key = ''
+        key = ''
+        while True:
+            result = self.findStudent('edit',student_id=student_id,matric_no=matric_no)
+            #student_record,msg = self.getStudentRecord(mapping)
+            msg = result['msg']
+            if msg:
+                break
+            student_record = result['student_record']
+            key_used = result['key_used']
+            if key_used in editable_keys:
+                editable_keys.remove(key_used)
+            student_id = student_record.id
+            mapping['id'] = student_id
+            d = {}
+            #import pdb;pdb.set_trace()
+            any_change = False
+            #special treatment for StudentStudyLevel
+            current_session = d['session'] = mapping.get('current_session','')
+            if current_session and student_record.session != current_session:
+                msg = 'student %s: imported session %s does not match current_session %s' % (student_id,
+                                                                                            current_session,
+                                                                                            student_record.session)
+                break
+            current_level = mapping.get('current_level','')
+            if not current_level.isdigit():
+                msg = 'student %s: imported level is empty' % (student_id,)
+                break
+            if current_level and student_record.level != current_level:
+                msg = 'student %s: imported level %s does not match current_level %s' % (student_id,
+                                                                                        current_level,
+                                                                                        student_record.level)
+                break
+            student_review_state =  student_record.review_state
+            if student_review_state == 'deactivated':
+                msg = "student %s in review_state %s" % (student_id, student_review_state)
+                break
+            if student_review_state not in ('courses_validated','returning'):
+                msg = "student %s in wrong review_state %s" % (student_id, student_review_state)
+                break
+            student_obj = getattr(students_folder,student_id)
+            # f2t = self.field2types_student
+            study_course_obj = getattr(student_obj,'study_course',None)
+            if study_course_obj is None:
+                msg = 'student %s: no study_course object' % student_id
+                break
+            level_obj = getattr(study_course_obj,current_level,None)
+            if  level_obj is None:
+                msg = 'student %s: no study_level object for level %s' % (student_id,
+                                                                                current_level)
+                break
+            verdict = d['verdict'] = d['current_verdict']  = mapping.get('current_verdict','')
+
+            #if verdict == student_record.verdict:
+            #    msg = 'student %s: verdict already set to %s' % (student_id,
+            #                                                            verdict)
+
+            level_review_state = wftool.getInfoFor(level_obj,'review_state',None)
+            if level_review_state != "closed":
+                wftool.doActionFor(level_obj,'close')
+                # msg = 'student %s: level %s is not closed' % (student_id,
+                #                                                      current_level)
+
+            study_course_obj.getContent().edit(mapping = d)
+            level_obj.getContent().edit(mapping = d)
+            if student_review_state != "returning":
+                wftool.doActionFor(student_obj,'return')
+            # try:
+            #     wftool.doActionFor(level_obj,'close')
+            # except:
+            #     pass
+            break
+        return student_id,msg,mapping
+    ###)
+
+    def edit_old(self,mapping): ###(
+        "edit student verdicts"
+        wftool = self.portal_workflow
+        logger = logging.getLogger('WAeUPTool.mass_edit_verdict')
+        students_folder = self.portal_url.getPortalObject().campus.students
+        student_id = mapping.get('id',None)
+        matric_no = mapping.get('matric_no',None)
+        editable_keys = mapping.keys()
+        key = ''
+        while True:
             msg = ''
             if student_id:
@@ -1205,17 +1289,8 @@
                 break
             level_obj = getattr(study_course_obj,current_level,None)
-
             if  level_obj is None:
-                # The only difference to the edit method is that we create a StudentStudyLevel object
-                try:
-                    study_course_obj.invokeFactory('StudentStudyLevel',"%s" % current_level)
-                    level_obj = getattr(context,"%s" % current_level)
-                    level_obj.portal_workflow.doActionFor(level,'open')
-                except:
-                    continue
-                #msg = 'student %s: no study_level object for level %s' % (student_id,
-                #                                                                current_level)
-                #break
-
+                msg = 'student %s: no study_level object for level %s' % (student_id,
+                                                                                current_level)
+                break
             verdict = d['verdict'] = d['current_verdict']  = mapping.get('current_verdict','')
 
@@ -1241,181 +1316,3 @@
         return student_id,msg,mapping
     ###)
-
-    def edit(self,mapping): ###(
-        "edit student verdicts"
-        wftool = self.portal_workflow
-        logger = logging.getLogger('WAeUPTool.mass_edit_verdict')
-        students_folder = self.portal_url.getPortalObject().campus.students
-        student_id = mapping.get('id',None)
-        matric_no = mapping.get('matric_no',None)
-        editable_keys = mapping.keys()
-        key = ''
-        while True:
-            result = self.findStudent('edit',student_id=student_id,matric_no=matric_no)
-            #student_record,msg = self.getStudentRecord(mapping)
-            msg = result['msg']
-            if msg:
-                break
-            student_record = result['student_record']
-            key_used = result['key_used']
-            if key_used in editable_keys:
-                editable_keys.remove(key_used)
-            student_id = student_record.id
-            mapping['id'] = student_id
-            d = {}
-            #import pdb;pdb.set_trace()
-            any_change = False
-            #special treatment for StudentStudyLevel
-            current_session = d['session'] = mapping.get('current_session','')
-            if current_session and student_record.session != current_session:
-                msg = 'student %s: imported session %s does not match current_session %s' % (student_id,
-                                                                                            current_session,
-                                                                                            student_record.session)
-                break
-            current_level = mapping.get('current_level','')
-            if not current_level.isdigit():
-                msg = 'student %s: imported level is empty' % (student_id,)
-                break
-            if current_level and student_record.level != current_level:
-                msg = 'student %s: imported level %s does not match current_level %s' % (student_id,
-                                                                                        current_level,
-                                                                                        student_record.level)
-                break
-            student_review_state =  student_record.review_state
-            if student_review_state == 'deactivated':
-                msg = "student %s in review_state %s" % (student_id, student_review_state)
-                break
-            if student_review_state not in ('courses_validated','returning'):
-                msg = "student %s in wrong review_state %s" % (student_id, student_review_state)
-                break
-            student_obj = getattr(students_folder,student_id)
-            # f2t = self.field2types_student
-            study_course_obj = getattr(student_obj,'study_course',None)
-            if study_course_obj is None:
-                msg = 'student %s: no study_course object' % student_id
-                break
-            level_obj = getattr(study_course_obj,current_level,None)
-            if  level_obj is None:
-                msg = 'student %s: no study_level object for level %s' % (student_id,
-                                                                                current_level)
-                break
-            verdict = d['verdict'] = d['current_verdict']  = mapping.get('current_verdict','')
-
-            #if verdict == student_record.verdict:
-            #    msg = 'student %s: verdict already set to %s' % (student_id,
-            #                                                            verdict)
-
-            level_review_state = wftool.getInfoFor(level_obj,'review_state',None)
-            if level_review_state != "closed":
-                wftool.doActionFor(level_obj,'close')
-                # msg = 'student %s: level %s is not closed' % (student_id,
-                #                                                      current_level)
-
-            study_course_obj.getContent().edit(mapping = d)
-            level_obj.getContent().edit(mapping = d)
-            if student_review_state != "returning":
-                wftool.doActionFor(student_obj,'return')
-            # try:
-            #     wftool.doActionFor(level_obj,'close')
-            # except:
-            #     pass
-            break
-        return student_id,msg,mapping
-    ###)
-
-    def edit_old(self,mapping): ###(
-        "edit student verdicts"
-        wftool = self.portal_workflow
-        logger = logging.getLogger('WAeUPTool.mass_edit_verdict')
-        students_folder = self.portal_url.getPortalObject().campus.students
-        student_id = mapping.get('id',None)
-        matric_no = mapping.get('matric_no',None)
-        editable_keys = mapping.keys()
-        key = ''
-        while True:
-            msg = ''
-            if student_id:
-                student_record = self.students_catalog.getRecordByKey(student_id)
-                if student_record is None:
-                    #return '',"no student with id %s" % student_id
-                    msg = "no student with id %s" % student_id
-                    break
-                if matric_no and student_record.matric_no and matric_no != student_record.matric_no:
-                    msg = 'student %s: matric_no %s does not match %s' % (student_record.id,
-                                                                          student_record.matric_no,
-                                                                          matric_no)
-                    break
-                mapping['matric_no'] = student_record.matric_no
-            elif matric_no:
-                res = self.students_catalog(matric_no = matric_no)
-                if not res:
-                    msg = "no student with matric_no %s" % matric_no
-                    break
-                student_record = res[0]
-                editable_keys.remove('matric_no')
-            else:
-                msg = "no id or matric_no specified"
-                break
-            student_id = student_record.id
-            mapping['id'] = student_id
-            d = {}
-            #import pdb;pdb.set_trace()
-            any_change = False
-            #special treatment for StudentStudyLevel
-            current_session = d['session'] = mapping.get('current_session','')
-            if current_session and student_record.session != current_session:
-                msg = 'student %s: imported session %s does not match current_session %s' % (student_id,
-                                                                                            current_session,
-                                                                                            student_record.session)
-                break
-            current_level = mapping.get('current_level','')
-            if not current_level.isdigit():
-                msg = 'student %s: imported level is empty' % (student_id,)
-                break
-            if current_level and student_record.level != current_level:
-                msg = 'student %s: imported level %s does not match current_level %s' % (student_id,
-                                                                                        current_level,
-                                                                                        student_record.level)
-                break
-            student_review_state =  student_record.review_state
-            if student_review_state == 'deactivated':
-                msg = "student %s in review_state %s" % (student_id, student_review_state)
-                break
-            if student_review_state not in ('courses_validated','returning'):
-                msg = "student %s in wrong review_state %s" % (student_id, student_review_state)
-                break
-            student_obj = getattr(students_folder,student_id)
-            # f2t = self.field2types_student
-            study_course_obj = getattr(student_obj,'study_course',None)
-            if study_course_obj is None:
-                msg = 'student %s: no study_course object' % student_id
-                break
-            level_obj = getattr(study_course_obj,current_level,None)
-            if  level_obj is None:
-                msg = 'student %s: no study_level object for level %s' % (student_id,
-                                                                                current_level)
-                break
-            verdict = d['verdict'] = d['current_verdict']  = mapping.get('current_verdict','')
-
-            #if verdict == student_record.verdict:
-            #    msg = 'student %s: verdict already set to %s' % (student_id,
-            #                                                            verdict)
-
-            level_review_state = wftool.getInfoFor(level_obj,'review_state',None)
-            if level_review_state != "closed":
-                wftool.doActionFor(level_obj,'close')
-                # msg = 'student %s: level %s is not closed' % (student_id,
-                #                                                      current_level)
-
-            study_course_obj.getContent().edit(mapping = d)
-            level_obj.getContent().edit(mapping = d)
-            if student_review_state != "returning":
-                wftool.doActionFor(student_obj,'return')
-            # try:
-            #     wftool.doActionFor(level_obj,'close')
-            # except:
-            #     pass
-            break
-        return student_id,msg,mapping
-    ###)
 ###)
Index: WAeUP_SRP/trunk/WAeUPTool.py
===================================================================
--- WAeUP_SRP/trunk/WAeUPTool.py	(revision 3703)
+++ WAeUP_SRP/trunk/WAeUPTool.py	(revision 3705)
@@ -971,4 +971,9 @@
         self.with_timing = with_timing
 
+        if brain.screening_type in ('cest','sandwich',):
+            reg_no = "%s%s/%s" % (brain.course1[:3],brain.serial,brain.entry_session)
+        else:
+            reg_no = brain.reg_no
+
         #ignore argument entry_session
         if not brain.entry_session:
@@ -979,8 +984,5 @@
             self._v_certificates = self.getCertificatesDict()
         students_folder = self.portal_url.getPortalObject().campus.students
-        if brain.screening_type in ('cest','sandwich',):
-            reg_no = "%s%s/%s" % (brain.course1[:3],brain.serial,brain.entry_session)
-        else:
-            reg_no = brain.reg_no
+
         res = self.students_catalog(jamb_reg_no = reg_no)
         if res:
Index: WAeUP_SRP/trunk/__init__.py
===================================================================
--- WAeUP_SRP/trunk/__init__.py	(revision 3703)
+++ WAeUP_SRP/trunk/__init__.py	(revision 3705)
@@ -113,5 +113,5 @@
         'default',
         'WAeUP_SRP',
-        "WAeUP Default Profile (Uniben)",
+        "WAeUP Default Profile",
         'profiles/default',
         'WAeUP_SRP',
@@ -119,6 +119,14 @@
         for_=ICPSSite)
     profile_registry.registerProfile(
+        'uniben',
+        'WAeUP Uniben Profile',
+        "University of Benin",
+        'profiles/uniben',
+        'WAeUP_SRP',
+        BASE,
+        for_=ICPSSite)        
+    profile_registry.registerProfile(
         'fceokene',
-        'FCE Okene Profile',
+        'WAeUP FCE Okene Profile',
         "Federal College of Education",
         'profiles/fceokene',
@@ -128,5 +136,5 @@
     profile_registry.registerProfile(
         'aaua',
-        'AAUA Profile',
+        'WAeUP AAUA Profile',
         "Adekunle Ajasin University",
         'profiles/aaua',
@@ -136,5 +144,5 @@
     profile_registry.registerProfile(
         'unilorin',
-        'Unilorin Profile',
+        'WAeUP Unilorin Profile',
         "University of Ilorin",
         'profiles/unilorin',
@@ -144,5 +152,5 @@
     profile_registry.registerProfile(
         'ois',
-        'OIS Profile',
+        'WAeUP OIS Profile',
         "Olashore International School",
         'profiles/ois',
Index: WAeUP_SRP/trunk/profiles/uniben/layouts/import_student.xml
===================================================================
--- WAeUP_SRP/trunk/profiles/uniben/layouts/import_student.xml	(revision 3705)
+++ WAeUP_SRP/trunk/profiles/uniben/layouts/import_student.xml	(revision 3705)
@@ -0,0 +1,392 @@
+<?xml version="1.0"?>
+<?xml-stylesheet type="text/xsl" href="layout.xsl"?>
+<object name="import_student" meta_type="CPS Layout">
+ <property name="layout_create_method"></property>
+ <property name="layout_edit_method"></property>
+ <property name="layout_view_method"></property>
+ <property name="style_prefix">layout_waeup_</property>
+ <property name="flexible_widgets"/>
+ <property name="validate_values_expr"></property>
+ <widget name="import_mode" meta_type="Select Widget">
+  <property name="title">Import Mode</property>
+  <property name="fields">
+   <element value="import_mode"/>
+  </property>
+  <property name="is_required">True</property>
+  <property name="label">Import Mode</property>
+  <property name="label_edit">Import Mode</property>
+  <property name="readonly_layout_modes"/>
+  <property name="hidden_layout_modes"/>
+  <property name="hidden_readonly_layout_modes"/>
+  <property name="vocabulary">import_modes</property>
+ </widget>
+ <widget name="id" meta_type="String Widget">
+  <property name="title">Id</property>
+  <property name="fields">
+   <element value="id"/>
+  </property>
+  <property name="is_required">False</property>
+  <property name="label">Id</property>
+  <property name="label_edit">Id</property>
+  <property name="readonly_layout_modes"/>
+  <property name="hidden_layout_modes"/>
+  <property name="hidden_readonly_layout_modes"/>
+ </widget>
+
+ <widget name="reg_transition" meta_type="String Widget">
+  <property name="title">Transition after import</property>
+  <property name="fields">
+   <element value="reg_transition"/>
+  </property>
+  <property name="label">Transition</property>
+  <property name="label_edit">Transition</property>
+  <property name="is_required">True</property>
+  <property name="readonly_layout_modes"/>
+  <property name="hidden_layout_modes"/>
+  <property name="hidden_readonly_layout_modes"/>
+ </widget>
+ <widget name="email" meta_type="Email Widget">
+  <property name="title">Email</property>
+  <property name="fields">
+   <element value="email"/>
+  </property>
+  <property name="is_required">False</property>
+  <property name="label">Email</property>
+  <property name="label_edit">Email</property>
+  <property name="readonly_layout_modes"/>
+  <property name="hidden_layout_modes"/>
+  <property name="hidden_readonly_layout_modes"/>
+ </widget>
+ <widget name="app_email" meta_type="Email Widget">
+  <property name="title">Application Email</property>
+  <property name="fields">
+   <element value="app_email"/>
+  </property>
+  <property name="is_required">False</property>
+  <property name="label">Application Email</property>
+  <property name="label_edit">Application Email</property>
+  <property name="readonly_layout_modes"/>
+  <property name="hidden_layout_modes"/>
+  <property name="hidden_readonly_layout_modes"/>
+ </widget>
+ <widget name="phone" meta_type="String Widget">
+  <property name="title">Phone</property>
+  <property name="fields">
+   <element value="phone"/>
+  </property>
+  <property name="label">Phone</property>
+  <property name="label_edit">Phone</property>
+  <property name="readonly_layout_modes"/>
+  <property name="hidden_layout_modes"/>
+  <property name="hidden_readonly_layout_modes"/>
+  <property name="display_width">15</property>
+ </widget>
+ <widget name="perm_address" meta_type="String Widget">
+  <property name="title">Address</property>
+  <property name="fields">
+   <element value="perm_address"/>
+  </property>
+  <property name="label">Address</property>
+  <property name="label_edit">Address</property>
+  <property name="readonly_layout_modes"/>
+  <property name="hidden_layout_modes"/>
+  <property name="hidden_readonly_layout_modes"/>
+  <property name="display_width">60</property>
+ </widget>
+ <widget name="firstname" meta_type="String Widget">
+  <property name="title">First Name</property>
+  <property name="fields">
+   <element value="firstname"/>
+  </property>
+  <property name="is_required">False</property>
+  <property name="label">First Name</property>
+  <property name="label_edit">First Name</property>
+  <property name="readonly_layout_modes"/>
+  <property name="hidden_layout_modes"/>
+  <property name="hidden_readonly_layout_modes"/>
+ </widget>
+ <widget name="middlename" meta_type="String Widget">
+  <property name="title">Middle Name</property>
+  <property name="fields">
+   <element value="middlename"/>
+  </property>
+  <property name="label">Middle Name</property>
+  <property name="label_edit">Middle Name</property>
+  <property name="readonly_layout_modes"/>
+  <property name="hidden_layout_modes"/>
+  <property name="hidden_readonly_layout_modes"/>
+ </widget>
+ <widget name="lastname" meta_type="String Widget">
+  <property name="title">Last Name</property>
+  <property name="fields">
+   <element value="lastname"/>
+  </property>
+  <property name="is_required">True</property>
+  <property name="label">Last Name</property>
+  <property name="label_edit">Last Name</property>
+  <property name="readonly_layout_modes"/>
+  <property name="hidden_layout_modes"/>
+  <property name="hidden_readonly_layout_modes"/>
+ </widget>
+<widget name="birthday" meta_type="DateTime Widget">
+ <property name="title">Birthday</property>
+ <property name="fields">
+  <element value="birthday"/>
+ </property>
+ <property name="label">Birthday</property>
+ <property name="label_edit">Birthday</property>
+ <property name="readonly_layout_modes"/>
+ <property name="hidden_layout_modes"/>
+ <property name="hidden_readonly_layout_modes"/>
+ <property name="view_format">%d/%m/%Y</property>
+ <property name="time_setting">False</property>
+ <property name="time_hour_default">00</property>
+</widget>
+  <widget name="entry_mode" meta_type="Select Widget">
+  <property name="title">Entry Mode</property>
+  <property name="fields">
+   <element value="entry_mode"/>
+  </property>
+  <property name="label">Entry Mode</property>
+  <property name="label_edit">Entry Mode</property>
+  <property name="readonly_layout_modes"/>
+  <property name="hidden_layout_modes"/>
+  <property name="hidden_readonly_layout_modes"/>
+  <property name="vocabulary">entry_modes</property>
+ </widget>
+  <widget name="current_mode" meta_type="Select Widget">
+  <property name="title">Current Mode</property>
+  <property name="fields">
+   <element value="current_mode"/>
+  </property>
+  <property name="label">Current Mode</property>
+  <property name="label_edit">Current Mode</property>
+  <property name="is_required">True</property>
+  <property name="readonly_layout_modes"/>
+  <property name="hidden_layout_modes"/>
+  <property name="hidden_readonly_layout_modes"/>
+  <property name="vocabulary">entry_modes</property>
+ </widget>
+ <widget name="current_session" meta_type="WAeUP Session Widget">
+  <property name="title">Current Session</property>
+  <property name="fields">
+   <element value="current_session"/>
+  </property>
+  <property name="label">Current Session</property>
+  <property name="label_edit">Current Session</property>
+  <property name="is_required">True</property>
+  <property name="description">The last session school fee has been paid for</property>
+  <property name="help">The last session school fee has been paid for</property>
+  <property name="readonly_layout_modes"/>
+  <property name="hidden_layout_modes"/>
+  <property name="hidden_readonly_layout_modes"/>
+  <property name="vocabulary">unset</property>
+  <property name="sorted">True</property>
+ </widget>
+ <widget name="current_level" meta_type="WAeUP Level Widget">
+  <property name="title">Current Level</property>
+  <property name="fields">
+   <element value="current_level"/>
+  </property>
+  <property name="label">Current Level</property>
+  <property name="label_edit">Current Level</property>
+  <property name="is_required">True</property>
+  <property name="description">The last level school fee has been paid for</property>
+  <property name="help">The last level school fee has been paid for</property>
+  <property name="readonly_layout_modes"/>
+  <property name="hidden_layout_modes"/>
+  <property name="hidden_readonly_layout_modes"/>
+  <property name="vocabulary">unset</property>
+  <property name="sorted">True</property>
+ </widget>
+ <widget name="current_verdict" meta_type="WAeUP Verdict Widget">
+  <property name="title">Current Verdict</property>
+  <property name="fields">
+   <element value="current_verdict"/>
+  </property>
+  <property name="label">Current Verdict</property>
+  <property name="label_edit">Current Verdict</property>
+  <property name="description">The verdict of the current level</property>
+  <property name="help">The verdict of the current level</property>
+  <property name="readonly_layout_modes"/>
+  <property name="hidden_layout_modes"/>
+  <property name="hidden_readonly_layout_modes"/>
+  <property name="vocabulary">verdicts</property>
+  <property name="sorted">True</property>
+ </widget>
+ <widget name="previous_verdict" meta_type="WAeUP Verdict Widget">
+  <property name="title">Previous Verdict</property>
+  <property name="fields">
+   <element value="previous_verdict"/>
+  </property>
+  <property name="label">Previous Verdict</property>
+  <property name="label_edit">Previous Verdict</property>
+  <property name="description">The verdict of the previous level</property>
+  <property name="help">The verdict of the previous level</property>
+  <property name="readonly_layout_modes"/>
+  <property name="hidden_layout_modes"/>
+  <property name="hidden_readonly_layout_modes"/>
+  <property name="vocabulary">verdicts</property>
+  <property name="sorted">True</property>
+ </widget>
+ <widget name="entry_session" meta_type="WAeUP Session Widget">
+  <property name="title">Entry Session</property>
+  <property name="fields">
+   <element value="entry_session"/>
+  </property>
+  <property name="label">Entry Session</property>
+  <property name="label_edit">Entry Session</property>
+  <property name="is_required">False</property>
+  <property name="readonly_layout_modes"/>
+  <property name="hidden_layout_modes"/>
+  <property name="hidden_readonly_layout_modes"/>
+  <property name="vocabulary">unset</property>
+  <property name="sorted">True</property>
+ </widget>
+ <widget name="jamb_reg_no" meta_type="String Widget">
+  <property name="title">JAMB Registration No</property>
+  <property name="fields">
+   <element value="jamb_reg_no"/>
+  </property>
+  <property name="label">JAMB Registration No</property>
+  <property name="label_edit">JAMB Registration No</property>
+  <property name="readonly_layout_modes"/>
+  <property name="hidden_layout_modes"/>
+  <property name="hidden_readonly_layout_modes"/>
+  <property name="display_width">10</property>
+ </widget>
+
+ <widget name="jamb_score" meta_type="String Widget">
+  <property name="title">JAMB Score</property>
+  <property name="fields">
+   <element value="jamb_score"/>
+  </property>
+  <property name="label">JAMB Score</property>
+  <property name="label_edit">JAMB Score</property>
+  <property name="readonly_layout_modes"/>
+  <property name="hidden_layout_modes"/>
+  <property name="hidden_readonly_layout_modes"/>
+  <property name="display_width">3</property>
+ </widget>
+
+ <widget name="jamb_age" meta_type="String Widget">
+  <property name="title">JAMB Age</property>
+  <property name="fields">
+   <element value="jamb_age"/>
+  </property>
+  <property name="label">JAMB Age</property>
+  <property name="label_edit">JAMB Age</property>
+  <property name="readonly_layout_modes"/>
+  <property name="hidden_layout_modes">
+      edit
+  </property>
+  <property name="hidden_readonly_layout_modes"/>
+ </widget>
+
+ <widget name="jamb_sex" meta_type="String Widget">
+  <property name="title">JAMB Sex</property>
+  <property name="fields">
+   <element value="jamb_sex"/>
+  </property>
+  <property name="label">JAMB Sex</property>
+  <property name="label_edit">JAMB Sex</property>
+  <property name="readonly_layout_modes"/>
+  <property name="hidden_layout_modes">
+      edit
+  </property>
+  <property name="hidden_readonly_layout_modes"/>
+ </widget>
+
+ <widget name="jamb_lga" meta_type="String Widget">
+  <property name="title">JAMB LGA</property>
+  <property name="fields">
+   <element value="jamb_lga"/>
+  </property>
+  <property name="label">JAMB LGA</property>
+  <property name="label_edit">JAMB LGA</property>
+  <property name="readonly_layout_modes"/>
+  <property name="hidden_layout_modes"/>
+  <property name="hidden_readonly_layout_modes"/>
+ </widget>
+
+  <widget name="jamb_state" meta_type="String Widget">
+  <property name="title">JAMB State</property>
+  <property name="fields">
+   <element value="jamb_state"/>
+  </property>
+  <property name="label">JAMB State</property>
+  <property name="label_edit">JAMB State</property>
+  <property name="readonly_layout_modes"/>
+  <property name="hidden_layout_modes"/>
+  <property name="hidden_readonly_layout_modes"/>
+ </widget>
+
+ <widget name="lga" meta_type="WAeUP LGA Widget">
+  <property name="title">LGA</property>
+  <property name="fields">
+   <element value="lga"/>
+  </property>
+  <property name="label">LGA</property>
+  <property name="label_edit">LGA</property>
+  <property name="readonly_layout_modes"/>
+  <property name="hidden_layout_modes">
+      edit
+  </property>
+  <property name="hidden_readonly_layout_modes"/>
+ </widget>
+
+  <widget name="state" meta_type="WAeUP LGA Widget">
+  <property name="title">State</property>
+  <property name="fields">
+   <element value="state"/>
+  </property>
+  <property name="label">State</property>
+  <property name="label_edit">State</property>
+  <property name="readonly_layout_modes"/>
+  <property name="hidden_layout_modes">
+      edit
+  </property>
+  <property name="hidden_readonly_layout_modes"/>
+ </widget>
+
+ <widget name="matric_no" meta_type="String Widget">
+  <property name="title">Matriculation No</property>
+  <property name="fields">
+   <element value="matric_no"/>
+  </property>
+  <property name="label">Matriculation No</property>
+  <property name="label_edit">Matriculation No</property>
+  <property name="readonly_layout_modes"/>
+  <property name="hidden_layout_modes"/>
+  <property name="hidden_readonly_layout_modes"/>
+  <property name="display_width">10</property>
+ </widget>
+ <widget name="sex" meta_type="WAeUP Sex Widget">
+  <property name="title">Sex</property>
+  <property name="fields">
+   <element value="sex"/>
+  </property>
+  <property name="label">Sex</property>
+  <property name="label_edit">Sex</property>
+  <property name="is_required">True</property>
+  <property name="readonly_layout_modes"/>
+  <property name="hidden_layout_modes"/>
+  <property name="hidden_readonly_layout_modes"/>
+  <property name="label_false">male</property>
+  <property name="label_true">female</property>
+  <property name="render_format">select</property>
+ </widget>
+ <widget name="study_course" meta_type="StudyCourse Widget">
+  <property name="title">Study Course Code</property>
+  <property name="fields">
+   <element value="study_course"/>
+  </property>
+  <property name="label">Study Course Code</property>
+  <property name="label_edit">Study Course Code</property>
+  <property name="is_required">True</property>
+  <property name="readonly_layout_modes"/>
+  <property name="hidden_layout_modes"/>
+  <property name="hidden_readonly_layout_modes"/>
+  <property name="display_width">10</property>
+ </widget>
+</object>
Index: WAeUP_SRP/trunk/profiles/uniben/vocabularies/entry_modes.xml
===================================================================
--- WAeUP_SRP/trunk/profiles/uniben/vocabularies/entry_modes.xml	(revision 3703)
+++ WAeUP_SRP/trunk/profiles/uniben/vocabularies/entry_modes.xml	(revision 3705)
@@ -18,3 +18,4 @@
  <item key="ct_ft" msgid="">Certificate Full Time</item>
  <item key="ct_pt" msgid="">Certificate Part Time</item>
+ <item key="transfer" msgid="">Transfer Student</item>
 </object>
