Index: waeup_product/trunk/skins/waeup_default/getWAeUPLayouts.py
===================================================================
--- waeup_product/trunk/skins/waeup_default/getWAeUPLayouts.py	(revision 178)
+++ waeup_product/trunk/skins/waeup_default/getWAeUPLayouts.py	(revision 179)
@@ -274,5 +274,5 @@
                 'title': 'Email',
                 'fields': ('email',),
-                'is_required': False,
+                'is_required': True,
                 'label': 'Email',
                 'label_edit': 'Email',
@@ -869,164 +869,7 @@
 }###)
 
-student_documents = { ###(
+student_personal_addon = { ###(
     'widgets': {
-        'photo': { ###(
-            'type': 'Photo Widget',
-            'data': {
-                'title': '',
-                'fields': ('photo',),
-                'is_required': False,
-                'label': 'Personal Picture',
-                'label_edit': 'Personal Picture',
-                'description': '',
-                'help': '',
-                'is_i18n': False,
-                'readonly_layout_modes': (),
-                'hidden_layout_modes': (),
-                'hidden_readonly_layout_modes': (),
-                'hidden_empty': False,
-                'hidden_if_expr': '',
-                'widget_mode_expr': '',
-                'css_class': '',
-                'css_class_expr': '',
-                'javascript_expr': '',
-                'deletable': True,
-                'size_max': 204800,
-                'display_width': 90,
-                'display_height': 180,
-                'allow_resize': True,
-                'render_position': 'left',
-                'configurable': 'nothing',
-                'keep_original': 1,
-            },
-        },###)
-        'birth_certificate': { ###(
-            'type': 'Image Widget',
-            'data': {
-                'title': '',
-                'fields': ('birth_certificate',),
-                'is_required': False,
-                'label': 'Birth Certificate',
-                'label_edit': 'Birth Certificate',
-                'description': '',
-                'help': '',
-                'is_i18n': False,
-                'readonly_layout_modes': (),
-                'hidden_layout_modes': (),
-                'hidden_readonly_layout_modes': (),
-                'hidden_empty': False,
-                'hidden_if_expr': '',
-                'widget_mode_expr': '',
-                'css_class': '',
-                'css_class_expr': '',
-                'javascript_expr': '',
-                'deletable': True,
-                'size_max': 204800,
-                'display_width': 300,
-                'display_height':600,
-                'allow_resize': True,
-            },
-        },###)
-        'passport': { ###(
-            'type': 'Image Widget',
-            'data': {
-                'title': '',
-                'fields': ('passport',),
-                'is_required': False,
-                'label': 'scanned Passport',
-                'label_edit': 'scanned Passport',
-                'description': '',
-                'help': '',
-                'is_i18n': False,
-                'readonly_layout_modes': (),
-                'hidden_layout_modes': (),
-                'hidden_readonly_layout_modes': (),
-                'hidden_empty': False,
-                'hidden_if_expr': '',
-                'widget_mode_expr': '',
-                'css_class': '',
-                'css_class_expr': '',
-                'javascript_expr': '',
-                'deletable': True,
-                'size_max': 204800,
-                'display_width': 300,
-                'display_height':600,
-                'allow_resize': True,
-            },
-        },###)
-        'results_first': { ###(
-            'type': 'Image Widget',
-            'data': {
-                'title': '',
-                'fields': ('results_first',),
-                'is_required': False,
-                'label': '1st Sitting Results',
-                'label_edit': '1st Sitting Results',
-                'description': '',
-                'help': '',
-                'is_i18n': False,
-                'readonly_layout_modes': (),
-                'hidden_layout_modes': (),
-                'hidden_readonly_layout_modes': (),
-                'hidden_empty': False,
-                'hidden_if_expr': '',
-                'widget_mode_expr': '',
-                'css_class': '',
-                'css_class_expr': '',
-                'javascript_expr': '',
-                'deletable': True,
-                'size_max': 204800,
-                'display_width': 300,
-                'display_height':600,
-                'allow_resize': True,
-            },
-        },###)
-        'results_second': { ###(
-            'type': 'Image Widget',
-            'data': {
-                'title': '',
-                'fields': ('results_second',),
-                'is_required': False,
-                'label': '2nd Sitting Results',
-                'label_edit': '2nd Sitting Results',
-                'description': '',
-                'help': '',
-                'is_i18n': False,
-                'readonly_layout_modes': (),
-                'hidden_layout_modes': (),
-                'hidden_readonly_layout_modes': (),
-                'hidden_empty': False,
-                'hidden_if_expr': '',
-                'widget_mode_expr': '',
-                'css_class': '',
-                'css_class_expr': '',
-                'javascript_expr': '',
-                'deletable': True,
-                'size_max': 40960,
-                'display_width': 300,
-                'display_height':600,
-                'allow_resize': True,
-            },
-        },###)
-    },
-    'layout': {
-        'style_prefix': 'layout_personal_',
-        'flexible_widgets': (),
-        'ncols': 1,
-        'rows': [
-            [{'widget_id': 'photo', 'ncols': 1},],
-            [{'widget_id': 'birth_certificate', 'ncols': 1},],
-            [{'widget_id': 'passport', 'ncols': 1},],
-            [{'widget_id': 'results_first', 'ncols': 1},],
-            [{'widget_id': 'results_second', 'ncols': 1},],
-        ]
-    },
-}
-
-###)
-
-student_eligibility = { ###(
-    'widgets': {
-        'firstname': firstname,
+        'firstname': middlename,
         'middlename': middlename,
         'lastname': lastname,
@@ -1051,5 +894,310 @@
         ]
     },
+}###)
+
+schoolresults = { ###(
+            'type': 'Ordered List Widget',
+            'data': {
+                'title': '',
+                'fields': ['schoolresults'],
+                'is_required': 0,
+                'label': 'School Results',
+                'label_edit': 'School Results',
+                'description': '',
+                'help': '',
+                'is_i18n': 0,
+                'readonly_layout_modes': [],
+                'hidden_layout_modes': [],
+                'hidden_readonly_layout_modes': [],
+                'hidden_empty': 0,
+                'hidden_if_expr': '',
+                'widget_mode_expr': '',
+                'css_class': '',
+                'css_class_expr': '',
+                'javascript_expr': '',
+                'width': 40,
+                'height': 5,
+                'format_empty': '',
+            },
+        }###)
+
+student_eligibility = { ###(
+    'widgets': {
+        'jamb_results': {
+            'type': 'String Widget',
+            'data': {
+                'title': '',
+                'fields': ('jamb_results',),
+                'is_required': False,
+                'label': 'JAMB Results',
+                'label_edit': 'JAMB Results',
+                'description': '',
+                'help': '',
+                'is_i18n': False,
+                'readonly_layout_modes': (),
+                'hidden_layout_modes': (),
+                'hidden_readonly_layout_modes': (),
+                'hidden_empty': False,
+                'hidden_if_expr': '',
+                'css_class': '',
+                'widget_mode_expr': '',
+                'display_width': 20,
+                'size_max': 0,
+            },
+        },
+        'jamb_aggregate': {
+            'type': 'Int Widget',
+            'data': {
+                'title': 'Agregate',
+                'fields': ('jamb_aggregate',),
+                'is_required': False,
+                'label': 'Score',
+                'label_edit': 'Score',
+                'description': '',
+                'help': '',
+                'is_i18n': False,
+            },
+        },
+        'jamb_listing_date': {
+            'type': 'Date Widget',
+            'data': {
+                'title': 'Listing Date',
+                'fields': ('jamb_listing_date',),
+                'is_required': False,
+                'label': 'Listing Date',
+                'label_edit': 'Listing Date',
+                'description': '',
+                'help': '',
+                'is_i18n': False,
+                'readonly_layout_modes': (),
+                'hidden_layout_modes': (),
+                'hidden_readonly_layout_modes': (),
+                'hidden_empty': False,
+                'hidden_if_expr': '',
+                'css_class': '',
+                'widget_mode_expr': '',
+                'display_width': 3,
+                'size_max': 0,
+            },
+        },
+        'faculty': {
+            'type': 'Select Widget',
+            'data': {
+                'title': 'Faculty',
+                'fields': ('faculty',),
+                'is_required': True,
+                'label': 'Faculty',
+                'label_edit': 'Faculty',
+                'description': '',
+                'help': '',
+                'is_i18n': False,
+                'vocabulary': 'get_faculties_voc',
+            },
+        },
+        'course': {
+            'type': 'Select Widget',
+            'data': {
+                'title': 'Study Course',
+                'fields': ('course',),
+                'is_required': True,
+                'label': 'Study Course',
+                'label_edit': 'Study Course',
+                'description': '',
+                'help': 'The course to study',
+                'vocabulary': 'get_departments_voc',
+                'is_i18n': False,
+            },
+        },
+        'schoolresults': schoolresults,
+    },
+    'layout': {
+        'style_prefix': 'layout_waeup_',
+        'flexible_widgets': (),
+        'ncols': 1,
+        'rows': [
+            [{'widget_id': 'jamb_results', 'ncols': 1},],
+            [{'widget_id': 'jamb_aggregate', 'ncols': 1},],
+            [{'widget_id': 'jamb_listing_date', 'ncols': 1},],
+            [{'widget_id': 'faculty', 'ncols': 1},],
+            [{'widget_id': 'course', 'ncols': 1},],
+            [{'widget_id': 'schoolresults', 'ncols': 1},],
+        ]
+    },
+}###)
+
+student_schoolresults = { ###(
+    'widgets': {
+        'schoolresults': schoolresults,
+    },
+    'layout': {
+        'style_prefix': 'layout_results_',
+        'flexible_widgets': (),
+        'ncols': 1,
+        'rows': [
+            #[{'widget_id': 'jamb_results', 'ncols': 1},],
+            #[{'widget_id': 'jamb_aggregate', 'ncols': 1},],
+            #[{'widget_id': 'jamb_listing_date', 'ncols': 1},],
+            #[{'widget_id': 'faculty', 'ncols': 1},],
+            #[{'widget_id': 'course', 'ncols': 1},],
+            [{'widget_id': 'schoolresults', 'ncols': 1},],
+        ]
+    },
+}###)
+
+student_documents = { ###(
+    'widgets': {
+        'photo': { ###(
+            'type': 'Photo Widget',
+            'data': {
+                'title': '',
+                'fields': ('photo',),
+                'is_required': False,
+                'label': 'Personal Picture',
+                'label_edit': 'Personal Picture',
+                'description': '',
+                'help': '',
+                'is_i18n': False,
+                'readonly_layout_modes': (),
+                'hidden_layout_modes': (),
+                'hidden_readonly_layout_modes': (),
+                'hidden_empty': False,
+                'hidden_if_expr': '',
+                'widget_mode_expr': '',
+                'css_class': '',
+                'css_class_expr': '',
+                'javascript_expr': '',
+                'deletable': True,
+                'size_max': 204800,
+                'display_width': 90,
+                'display_height': 180,
+                'allow_resize': True,
+                'render_position': 'left',
+                'configurable': 'nothing',
+                'keep_original': 1,
+            },
+        },###)
+        'birth_certificate': { ###(
+            'type': 'Image Widget',
+            'data': {
+                'title': '',
+                'fields': ('birth_certificate',),
+                'is_required': False,
+                'label': 'Birth Certificate',
+                'label_edit': 'Birth Certificate',
+                'description': '',
+                'help': '',
+                'is_i18n': False,
+                'readonly_layout_modes': (),
+                'hidden_layout_modes': (),
+                'hidden_readonly_layout_modes': (),
+                'hidden_empty': False,
+                'hidden_if_expr': '',
+                'widget_mode_expr': '',
+                'css_class': '',
+                'css_class_expr': '',
+                'javascript_expr': '',
+                'deletable': True,
+                'size_max': 204800,
+                'display_width': 300,
+                'display_height':600,
+                'allow_resize': True,
+            },
+        },###)
+        'passport': { ###(
+            'type': 'Image Widget',
+            'data': {
+                'title': '',
+                'fields': ('passport',),
+                'is_required': False,
+                'label': 'scanned Passport',
+                'label_edit': 'scanned Passport',
+                'description': '',
+                'help': '',
+                'is_i18n': False,
+                'readonly_layout_modes': (),
+                'hidden_layout_modes': (),
+                'hidden_readonly_layout_modes': (),
+                'hidden_empty': False,
+                'hidden_if_expr': '',
+                'widget_mode_expr': '',
+                'css_class': '',
+                'css_class_expr': '',
+                'javascript_expr': '',
+                'deletable': True,
+                'size_max': 204800,
+                'display_width': 300,
+                'display_height':600,
+                'allow_resize': True,
+            },
+        },###)
+        'results_first': { ###(
+            'type': 'Image Widget',
+            'data': {
+                'title': '',
+                'fields': ('results_first',),
+                'is_required': False,
+                'label': '1st Sitting Results',
+                'label_edit': '1st Sitting Results',
+                'description': '',
+                'help': '',
+                'is_i18n': False,
+                'readonly_layout_modes': (),
+                'hidden_layout_modes': (),
+                'hidden_readonly_layout_modes': (),
+                'hidden_empty': False,
+                'hidden_if_expr': '',
+                'widget_mode_expr': '',
+                'css_class': '',
+                'css_class_expr': '',
+                'javascript_expr': '',
+                'deletable': True,
+                'size_max': 204800,
+                'display_width': 300,
+                'display_height':600,
+                'allow_resize': True,
+            },
+        },###)
+        'results_second': { ###(
+            'type': 'Image Widget',
+            'data': {
+                'title': '',
+                'fields': ('results_second',),
+                'is_required': False,
+                'label': '2nd Sitting Results',
+                'label_edit': '2nd Sitting Results',
+                'description': '',
+                'help': '',
+                'is_i18n': False,
+                'readonly_layout_modes': (),
+                'hidden_layout_modes': (),
+                'hidden_readonly_layout_modes': (),
+                'hidden_empty': False,
+                'hidden_if_expr': '',
+                'widget_mode_expr': '',
+                'css_class': '',
+                'css_class_expr': '',
+                'javascript_expr': '',
+                'deletable': True,
+                'size_max': 40960,
+                'display_width': 300,
+                'display_height':600,
+                'allow_resize': True,
+            },
+        },###)
+    },
+    'layout': {
+        'style_prefix': 'layout_personal_',
+        'flexible_widgets': (),
+        'ncols': 1,
+        'rows': [
+            [{'widget_id': 'photo', 'ncols': 1},],
+            [{'widget_id': 'birth_certificate', 'ncols': 1},],
+            [{'widget_id': 'passport', 'ncols': 1},],
+            [{'widget_id': 'results_first', 'ncols': 1},],
+            [{'widget_id': 'results_second', 'ncols': 1},],
+        ]
+    },
 }
+
 ###)
 
@@ -2229,5 +2377,7 @@
 layouts['student_documents'] = student_documents
 layouts['student_personal'] = student_personal_layout
+layouts['student_personal_addon'] = student_personal_addon
 layouts['student_eligibility'] = student_eligibility
+layouts['student_schoolresults'] = student_schoolresults
 layouts['accommodation'] = accommodation
 layouts['accobook'] = accobook
Index: waeup_product/trunk/skins/waeup_default/getWAeUPSchemas.py
===================================================================
--- waeup_product/trunk/skins/waeup_default/getWAeUPSchemas.py	(revision 178)
+++ waeup_product/trunk/skins/waeup_default/getWAeUPSchemas.py	(revision 179)
@@ -415,4 +415,10 @@
         },
     },
+     'username': {
+        'type': 'CPS String Field',
+        'data': {
+            'is_searchabletext': 1,
+        },
+    },
      'email': {
         'type': 'CPS String Field',
@@ -443,4 +449,7 @@
 ###)
 
+student_eligibility = { ###(
+}###)
+
 student_documents = { ###(
      'photo': {
@@ -478,77 +487,50 @@
 
 student_eligibility = { ###(
-     'firstname': {
-        'type': 'CPS String Field',
-        'data': {
-            'is_searchabletext': 1,
-        },
-    },
-    'middlename': {
-        'type': 'CPS String Field',
-        'data': {
-            'is_searchabletext': 1,
-        },
-    },
-     'lastname': {
-        'type': 'CPS String Field',
-        'data': {
-            'is_searchabletext': 1,
-        },
-    },
-     'username': {
-        'type': 'CPS String Field',
-        'data': {
-            'is_searchabletext': 0,
-        },
-    },
-     'sex': {
-        'type': 'CPS Boolean Field',
-        'default_expr': 'python:True',
-        'data': {
-            'is_searchabletext': 0,
-        },
-    },
-##     'birthday': {
-##        'type': 'CPS DateTime Field',
-##        'data': {
-##            'is_searchabletext': 1,
-##        },
-##    },
-     'age': {
+    'reg_nr': {
+        'type': 'CPS String Field',
+        'data': {
+            'default_expr': 'string:',
+            'is_searchabletext': True,
+        },
+    },
+    'jamb_results': {
+        'type': 'CPS String Field',
+        'data': {
+            'default_expr': 'string:',
+        },
+    },
+    'jamb_aggregate': {
+        'type': 'CPS String Field',
+        'data': {
+            'default_expr': 'string:',
+            'is_searchabletext': False,
+        },
+    },
+    'faculty': {
+        'type': 'CPS String Field',
+        'data': {
+            'default_expr': 'string:',
+            'is_searchabletext': False,
+        },
+    },
+    'course': {
+        'type': 'CPS String Field',
+        'data': {
+            'default_expr': 'string:',
+            'is_searchabletext': False,
+        },
+    },
+    'jamb_listing_date': {
         'type': 'CPS DateTime Field',
         'data': {
-            'is_searchabletext': 0,
-        },
-    },
-    'email': {
-        'type': 'CPS String Field',
-        'data': {
-            'is_searchabletext': 1,
-        },
-    },
-    'pw': {
-        'type': 'CPS String Field',
-        'data': {
-            'default_expr': 'string:default',
-        },
-    },
-    'rpw': {
-        'type': 'CPS String Field',
-        'data': {
-            'default_expr': 'string:default',
-        },
-    },
-##     'photo': {
-##        'type': 'CPS Image Field',
-##        'data': {
-##            'is_searchabletext': 0,
-##        },
-##    },
-##     'birth_certificate': {
-##        'type': 'CPS Image Field',
-##        'data': {
-##            'is_searchabletext': 0,
-##        },
-##    },
+            'is_searchabletext': False,
+        },
+    },
+    'schoolresults': { ###(
+        'type': 'CPS List List Field',
+        'data': {
+            'is_searchabletext': False,
+            },
+        },###)
 }
 ###)
@@ -887,6 +869,6 @@
 schemas['student_admission'] = student_admission
 schemas['student_clearance'] = student_clearance
+schemas['student_eligibility'] = student_eligibility
 schemas['student_documents'] = student_documents
-schemas['student_eligibility'] = student_eligibility
 schemas['student_accommodation'] = student_accommodation
 schemas['student_hostel_fee'] = student_hostel_fee
Index: waeup_product/trunk/skins/waeup_default/getWAeUPTypes.py
===================================================================
--- waeup_product/trunk/skins/waeup_default/getWAeUPTypes.py	(revision 178)
+++ waeup_product/trunk/skins/waeup_default/getWAeUPTypes.py	(revision 179)
@@ -289,9 +289,9 @@
           },
          {'id'        : 'eligibility',
-          'name'      : 'eligibility',
+          'name'      : 'Post-Primary Results',
           'action'    : 'eligibility',
           'condition':  'object/memberIsOwner',
           'permission': (ModifyPortalContent,),
-          'visible': False,
+          'visible': True,
           },
          {'id'        : 'JAMB',
@@ -437,4 +437,48 @@
 ###)
 
+student_eligibility_type = { ###(
+    'title': "Student eligibility data",
+    'description': '',
+    'content_icon': '',
+    'content_meta_type': 'StudentEligibility',
+    'product': 'WAeUP',
+    'factory': 'addStudentEligibility',
+    'immediate_view': 'temporary_view_all',
+    'global_allow': True,
+    'filter_content_types': True,
+    'allowed_content_types': (),
+    'allow_discussion': False,
+    'cps_is_searchable': True,
+    'cps_proxy_type': 'document',
+    'cps_display_as_document_in_listing': True,
+    'cps_is_portalbox': False,
+    'schemas': ['student_eligibility'],
+    'layouts': ['student_eligibility'],
+    'flexible_layouts': (),
+    'storage_methods': (),
+    'cps_workspace_wf': 'workspace_content_wf',
+    'cps_section_wf': 'section_content_wf',
+    'actions': (
+         {'id': 'view',
+          'name': 'Standard View',
+          'action': 'temporary_view_all',
+          'permission': (View,),
+          'category': 'object',
+          'visible': True,},
+         {'id': 'edit',
+          'name': 'action_edit',
+          'action': 'string:${object_url}/student_eligibility_edit_form',
+          'permission': (ModifyPortalContent,),
+          'category': 'object',
+          'visible': True,},
+         {'id': 'metadata',
+          'name': 'action_metadata',
+          'action': 'cpsdocument_metadata',
+          'condition': "python:member and 'Manager' in member.getRoles()",
+          'permissions': (UniversityManage,)},
+          )
+}
+###)
+
 student_documents = { ###(
     'title': "Students documents data",
@@ -934,4 +978,5 @@
 types['Student'] = student_type
 types['StudentDocuments'] = student_documents
+types['StudentEligibility'] = student_eligibility_type
 types['StudentPersonal'] = student_personal_type
 types['StudyLevel'] = study_level_folder
Index: waeup_product/trunk/skins/waeup_student/eligibility.py
===================================================================
--- waeup_product/trunk/skins/waeup_student/eligibility.py	(revision 178)
+++ waeup_product/trunk/skins/waeup_student/eligibility.py	(revision 179)
@@ -1,3 +1,3 @@
-##parameters=REQUEST
+##parameters=REQUEST=None
 # $Id$
 """
@@ -5,10 +5,9 @@
 return html renderer + psm
 """
-type_name = 'Jamb'
-ti = context.portal_types[type_name]
-
-REQUEST.set('type_name',type_name)
-
-validate = REQUEST.has_key("cpsdocument_edit_button")
+request = REQUEST
+rget = request.get
+rset = request.set
+fget = request.form.get
+fhas = request.form.has_key
 
 
@@ -16,39 +15,67 @@
 pr = context.portal_registration
 pm = context.portal_membership
+eli = context.ELIGIBILITY.getContent()
+sr = eli.schoolresults
 
-jamb = getattr(context,'JAMB')
-jamb_rendered = jamb.getContent().render(layout_id = 'admission_slip', 
-                               layout_mode = 'view',
-                               schema_id = 'jamb')
-
-res,psm,ds = lt.renderLayout(layout_id= 'student_eligibility',
+res,psm,ds = lt.renderLayout(layout_id= 'student_schoolresults',
                       schema_id= 'student_eligibility',
                       context=context,
-                      mapping=validate and REQUEST,
+                      mapping=request,
                       ob={},
                       layout_mode='create',
+                      formaction = "eligibility",
+                      schoolresults = sr,
                       )
-res = jamb_rendered + res
-if psm == 'invalid':
-    return context.eligibility_form(rendered = res,
+
+inr = 0
+if fhas('add') and (fget('type') or fget('subject') or fget('result')):
+    sr.append((fget('type'),fget('subject'),fget('result')))
+    psm = "new result added"
+elif fhas('change') and fget('keys'):
+    for k in fget('keys'):
+        sr[int(k)] = (fget('type_%s' % k),fget('subject_%s' % k),fget('result_%s' % k))
+        inr += 1
+    psm = "%s items changed" % inr
+elif fhas('delete') and fget('keys'):
+    new = []
+    todelete = fget('keys')
+    for k in range(len(sr)):
+        if str(k) not in todelete:
+            new.append(sr[k])
+    inr = len(todelete)
+    sr = new
+    psm = "%s items deleted" % inr
+else:
+    psm = ''
+eli.edit(mapping={'schoolresults': sr})
+res,dummy,ds = lt.renderLayout(layout_id= 'student_schoolresults',
+                      schema_id= 'student_eligibility',
+                      context=context,
+                      mapping=request,
+                      ob={},
+                      layout_mode='create',
+                      formaction = "eligibility",
+                      schoolresults = sr,
+                      )
+
+return context.eligibility_form(rendered = res,
                                  #psm = str(ds),
-                                 psm = "Please correct your input",
-                                 ds = ds,
+                                 psm = psm,
                                  )
-elif psm == '':
-    return context.eligibility_form(rendered = res,
-                                 psm = None,
-                                 ds = ds,
-                                 )
-elif psm == 'valid':
-    s_personal = context.PERSONAL.getContent()
-    s_personal.edit(mapping={'email': ds.get('email')})
-    #pw = REQUEST.get("widget__pw")
-    #pm.setPassword(pw)
-psm = 'Email has been successfully set.'
-return context.REQUEST.RESPONSE.redirect('%s' % context.portal_url.getUrlFromRpath('/students'))
-
-##return context.eligibility_form(rendered = res,
-##                                 psm = psm,
+##elif psm == '':
+##    return context.eligibility_form(rendered = res,
+##                                 psm = None,
 ##                                 ds = ds,
 ##                                 )
+##elif psm == 'valid':
+##    s_personal = context.PERSONAL.getContent()
+##    s_personal.edit(mapping={'email': ds.get('email')})
+##    #pw = REQUEST.get("widget__pw")
+##    #pm.setPassword(pw)
+##psm = 'Email has been successfully set.'
+##return context.REQUEST.RESPONSE.redirect('%s' % context.portal_url.getUrlFromRpath('/students'))
+##
+####return context.eligibility_form(rendered = res,
+####                                 psm = psm,
+####                                 ds = ds,
+####                                 )
Index: waeup_product/trunk/skins/waeup_student/eligibility_form.pt
===================================================================
--- waeup_product/trunk/skins/waeup_student/eligibility_form.pt	(revision 178)
+++ waeup_product/trunk/skins/waeup_student/eligibility_form.pt	(revision 179)
@@ -1,5 +1,4 @@
 <tal:block define="rendered_main options/rendered;
                    portal_status_message options/psm;
-                   data_storage options/ds;
                    jamb options/jamb/getContent|nothing;
                    edition python:1;"
@@ -14,5 +13,5 @@
     </metal:block>
       <metal:block fill-slot="main">
-        <h1> Fill in your Email and give a new Password </h1>
+        <h1> Fill in your post-primary school results</h1>
         <div tal:replace="structure rendered_main" />
       </metal:block>
Index: waeup_product/trunk/skins/waeup_student/layout_results_create.pt
===================================================================
--- waeup_product/trunk/skins/waeup_student/layout_results_create.pt	(revision 179)
+++ waeup_product/trunk/skins/waeup_student/layout_results_create.pt	(revision 179)
@@ -0,0 +1,117 @@
+<tal:block define="global creation python:1" />
+<metal:block define-macro="default_edit"
+             tal:define="layout options/layout;
+             ds options/datastructure;
+             creation creation|nothing;
+             metadata metadata|nothing;
+             type_name request/type_name|nothing;
+             ti python:type_name and getattr(here.portal_types,type_name,None) or getattr(here.portal_types,here.portal_type,None);
+             creation_form python:ti and ti.getActionById('create', 'cpsdocument_create_form') or 'cpsdocument_create_form' ;
+             edit_form     python:ti and ti.getActionById('edit',   'cpsdocument_edit_form') or  'cpsdocument_edit_form';
+             metadata_form python:ti and ti.getActionById('metadata', 'cpsdocument_metadata') or 'cpsdocument_metadata';
+             formaction options/formaction;
+             first_layout options/first_layout|python:0;
+             last_layout options/last_layout|python:0;
+             is_flexible options/is_flexible;
+             cpsmcat nocall:here/translation_service;
+             results options/schoolresults;
+             "
+             >
+  <form action='eligibility' method='post' tal:attributes="action formaction"
+        enctype='multipart/form-data' class='workflow'>
+    <table cellspacing="0" cellpadding="2" border="0" width="100%" tal:condition="results|nothing">
+      <tr>
+        <td align="left" valign="top">
+          &nbsp;
+        </td>
+        <td align="left" valign="top">
+          <div>Type</div>
+        </td>
+        <td align="left" valign="top">
+          <div>Subject</div>
+        </td>
+        <td align="left" valign="top">
+          <div>Result</div>
+        </td>
+      </tr>
+      <span tal:repeat="row results" tal:omit-tag="">
+        <tr tal:define="rindex repeat/row/index">
+          <td align="left" valign="top">
+            <input type="checkbox" name="keys:list" value="100" tal:attributes="value string:${repeat/row/index}"/>
+          </td>
+          <td align="left" valign="top">
+            <div>
+              <input type="text" name="key_0" value="100" size="20" 
+                     tal:attributes="name string:type_${rindex};value python:row[0]" />
+            </div>
+          </td>
+          <td align="left">
+            <div class="form-item">
+              <input type="text" name="label_0" value="Year 1 (100 Level)" size="40" 
+                     tal:attributes="name string:subject_${rindex};value python:row[1]" />
+            </div>
+          </td>
+          <td align="left">
+            <div class="form-item">
+              <input type="text" name="msgid_0" value="" size="10" 
+                     tal:attributes="name string:result_${rindex};value python:row[2]" />
+            </div>
+          </td>
+        </tr>
+      </span>
+      <tr>
+        <td align="left" colspan="3">
+          <input type="submit" name="change" value=" Change " />
+          <input type="submit" name="delete" value=" Delete " />
+        </td>
+      </tr>
+    </table>
+    <table cellspacing="0" cellpadding="2" border="0" width="100%">
+      <tr>
+        <td align="left" valign="top" colspan="2">
+          <div>Add a new postprimary school result</div>
+        </td>
+      </tr>
+      <tr>
+        <td align="left" valign="top">
+          &nbsp;
+        </td>
+        <td align="left" valign="top">
+          <div>Type</div>
+        </td>
+        <td align="left" valign="top">
+          <div>Subject</div>
+        </td>
+        <td align="left" valign="top">
+          <div>Result</div>
+        </td>
+      </tr>
+      <tr>
+        <td align="left" valign="top">
+          &nbsp;
+        </td>
+        <td align="left" valign="top">
+          <div>
+            <input type="text" name="type" value="" size="20" /> 
+          </div>
+        </td>
+        <td align="left">
+          <div class="form-item">
+            <input type="text" name="subject" value="" size="40" />
+          </div>
+        </td>
+        <td align="left">
+          <div class="form-item">
+            <input type="text" name="result" value="" size="10" />
+          </div>
+        </td>
+      </tr>
+      <tr>
+        <td align="left" colspan="3">
+          <input type="submit" name="add" value=" Add " />
+        </td>
+      </tr>
+    </table>
+  </form>
+</metal:block>
+  
Index: waeup_product/trunk/skins/waeup_student/personal_addon.py
===================================================================
--- waeup_product/trunk/skins/waeup_student/personal_addon.py	(revision 179)
+++ waeup_product/trunk/skins/waeup_student/personal_addon.py	(revision 179)
@@ -0,0 +1,51 @@
+##parameters=REQUEST
+# $Id$
+"""
+process the Admission Form
+return html renderer + psm
+"""
+type_name = 'Jamb'
+ti = context.portal_types[type_name]
+
+REQUEST.set('type_name',type_name)
+
+validate = REQUEST.has_key("cpsdocument_edit_button")
+
+
+lt = context.portal_layouts
+pr = context.portal_registration
+pm = context.portal_membership
+
+jamb = getattr(context,'JAMB')
+jamb_rendered = jamb.getContent().render(layout_id = 'admission_slip', 
+                               layout_mode = 'view',
+                               schema_id = 'jamb')
+
+res,psm,ds = lt.renderLayout(layout_id= 'student_personal_addon',
+                      schema_id= 'student_personal',
+                      context=context,
+                      mapping=validate and REQUEST,
+                      ob={},
+                      layout_mode='create',
+                      )
+res = jamb_rendered + res
+if psm == 'invalid':
+    return context.personal_addon_form(rendered = res,
+                                 #psm = str(ds),
+                                 psm = "Please correct your input",
+                                 ds = ds,
+                                 )
+elif psm == '':
+    return context.personal_addon_form(rendered = res,
+                                 psm = None,
+                                 ds = ds,
+                                 )
+elif psm == 'valid':
+    s_personal = context.PERSONAL.getContent()
+    s_personal.edit(mapping={'email': ds.get('email')})
+    #pw = REQUEST.get("widget__pw")
+    #pm.setPassword(pw)
+psm = 'Email has been successfully set. '
+##return context.REQUEST.RESPONSE.redirect('%s' % context.portal_url.getUrlFromRpath('/students'))
+
+return context.eligibility()
Index: waeup_product/trunk/skins/waeup_student/personal_addon_form.pt
===================================================================
--- waeup_product/trunk/skins/waeup_student/personal_addon_form.pt	(revision 179)
+++ waeup_product/trunk/skins/waeup_student/personal_addon_form.pt	(revision 179)
@@ -0,0 +1,23 @@
+<tal:block define="rendered_main options/rendered;
+                   portal_status_message options/psm;
+                   data_storage options/ds;
+                   jamb options/jamb/getContent|nothing;
+                   edition python:1;"
+                   >
+<metal:block define-macro="edit_form">
+<metal:block use-macro="here/content_lib_master/macros/master">
+  <metal:block fill-slot="header"
+    tal:define="creation creation|nothing;
+                edition edition|nothing;
+                metadata metadata|nothing"
+                >
+    </metal:block>
+      <metal:block fill-slot="main">
+        <h1> Fillin Your Email</h1>
+        <div tal:replace="structure rendered_main" />
+      </metal:block>
+      <metal:block fill-slot="sub">
+      </metal:block>
+    </metal:block>
+  </metal:block>
+</tal:block>
Index: waeup_product/trunk/skins/waeup_student/process_waeup_login.py
===================================================================
--- waeup_product/trunk/skins/waeup_student/process_waeup_login.py	(revision 178)
+++ waeup_product/trunk/skins/waeup_student/process_waeup_login.py	(revision 179)
@@ -32,5 +32,9 @@
 pkw['aggregate'] = getattr(jc,'aggregate')
 pkw['faculty'] = getattr(jc,'faculty')
+pkw['course'] = getattr(jc,'course')
 pkw['age'] = getattr(jc,'age')
+pkw['jamb_results'] = getattr(jc,'exam_results')
+pkw['jamb_aggregate'] = getattr(jc,'aggregate')
+pkw['jamb_listing_date'] = getattr(jc,'listing_date')
 pkw['state'] = getattr(jc,'state')
 
@@ -43,5 +47,11 @@
 context.notifyCPSDocumentCreation(ob=pd)
 
-return response.redirect("%s/eligibility" % ma.absolute_url())
-return ma.eligibility(REQUEST=context.REQUEST)
+pdid = 'ELIGIBILITY'
+ma.invokeFactory('StudentEligibility', pdid)
+pd = getattr(ma,pdid)
+pd.getContent().edit(mapping=pkw)
+context.notifyCPSDocumentCreation(ob=pd)
 
+return response.redirect("%s/personal_addon" % ma.absolute_url())
+#return ma.personal_addon(REQUEST=context.REQUEST)
+
Index: waeup_product/trunk/skins/waeup_student/register_level.py
===================================================================
--- waeup_product/trunk/skins/waeup_student/register_level.py	(revision 178)
+++ waeup_product/trunk/skins/waeup_student/register_level.py	(revision 179)
@@ -28,6 +28,5 @@
                                  create = 1,
                                  type_name = type_name,
-                                 psm = str(ds),
-                                 #psm = 'Please correct your errors',
+                                 psm = 'Please correct your errors',
                                  )
 elif psm == '':
@@ -36,5 +35,4 @@
                                  type_name = type_name,
                                  psm = psm,
-                                 #psm = str(ds),
                                  )
     
