Index: waeup_product/trunk/skins/waeup_default/getWAeUPLayouts.py
===================================================================
--- waeup_product/trunk/skins/waeup_default/getWAeUPLayouts.py	(revision 46)
+++ waeup_product/trunk/skins/waeup_default/getWAeUPLayouts.py	(revision 47)
@@ -1,9 +1,33 @@
+#-*- mode: python; mode: fold -*-
 ##parameters=
 # $Id$
 """Return custom layouts types."""
-layouts = {}
-
-# common header layout
-common_layout = {
+
+##    'widgets': { ###(
+##        '': {
+##            'type': 'String Widget',
+##            'data': {
+##                'title': '',
+##                'fields': ('',),
+##                'is_required': False,
+##                'label': '',
+##                'label_edit': '',
+##                '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': 10,
+##                'size_max': 0,
+##            },
+
+###)
+
+common_layout = {###(
     'widgets': {
         'LanguageSelector': {
@@ -70,8 +94,8 @@
         },
     }
-layouts['waeup_common'] = common_layout
 #
-#
-student_layout = {
+###)
+
+student_layout = { ###(
     'widgets': {
         'jamb_is_admitted': {
@@ -119,26 +143,26 @@
             },
         },
-        'jamb_pin_usage': {
-            'type': 'Int Widget',
-            'data': {
-                'title': 'Jamb Pin usage',
-                'fields': ('jamb_pin_usage',),
-                'is_required': False,
-                'label': 'Nr of Cardusage',
-                'label_edit': 'Nr of Cardusage',
-                'description': '',
-                'help': 'How many times has the scratchcard been used',
-                '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': 2,
-                'size_max': 2,
-            },
-        },
+##        'jamb_pin_usage': {
+##            'type': 'Int Widget',
+##            'data': {
+##                'title': 'Jamb Pin usage',
+##                'fields': ('jamb_pin_usage',),
+##                'is_required': False,
+##                'label': 'Nr of Cardusage',
+##                'label_edit': 'Nr of Cardusage',
+##                'description': '',
+##                'help': 'How many times has the scratchcard been used',
+##                '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': 2,
+##                'size_max': 2,
+##            },
+##        },
         'faculty': {
             'type': 'String Widget',
@@ -171,13 +195,143 @@
             [{'widget_id': 'jamb_is_admitted', 'ncols': 1},],
             [{'widget_id': 'jamb_where_admitted', 'ncols': 1},],
-            [{'widget_id': 'jamb_pin_usage', 'ncols': 1},],
+            #[{'widget_id': 'jamb_pin_usage', 'ncols': 1},],
             [{'widget_id': 'faculty', 'ncols': 1},],
         ]
     },
 }
-layouts['student'] = student_layout
-#
-#
-scratch_card = {
+###)
+
+student_personal_layout = { ###(
+    'widgets': {
+        'firstname': {
+            'type': 'String Widget',
+            'data': {
+                'title': '',
+                'fields': ('firstname',),
+                'is_required': False,
+                'label': 'First Name',
+                'label_edit': 'First Name',
+                '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': 10,
+                'size_max': 0,
+            },
+        },
+        'middlename': {
+            'type': 'String Widget',
+            'data': {
+                'title': '',
+                'fields': ('middlename',),
+                'is_required': False,
+                'label': 'Middle Name',
+                'label_edit': 'Middle Name',
+                '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': 10,
+                'size_max': 0,
+            },
+        },
+        'lastname': {
+            'type': 'String Widget',
+            'data': {
+                'title': '',
+                'fields': ('lastname',),
+                'is_required': False,
+                'label': 'Last Name',
+                'label_edit': 'Last Name',
+                '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': 10,
+                'size_max': 0,
+            },
+        },
+        'sex': {
+            'type': 'Boolean Widget',
+            'data': {
+                'title': '',
+                'fields': ('sex',),
+                'is_required': False,
+                'label': 'Sex',
+                'label_edit': 'Sex',
+                'label_false': 'male',
+                'label_true': 'female',
+                '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': 10,
+                'size_max': 0,
+            },
+        },
+        'birthday': {
+            'type': 'Date Widget',
+            'data': {
+                'title': '',
+                'fields': ('birthday',),
+                'is_required': False,
+                'label': '',
+                'label_edit': 'Day of birth',
+                'description': 'Day of birth',
+                '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': 10,
+                'size_max': 0,
+            },
+        },
+    },
+    'layout': {
+        'style_prefix': 'layout_default_',
+        'flexible_widgets': (),
+        'ncols': 1,
+        'rows': [
+            [{'widget_id': 'firstname', 'ncols': 1},],
+            [{'widget_id': 'middlename', 'ncols': 1},],
+            [{'widget_id': 'lastname', 'ncols': 1},],
+            [{'widget_id': 'sex', 'ncols': 1},],
+            [{'widget_id': 'birthday', 'ncols': 1},],
+        ]
+    },
+}
+
+###)
+
+scratch_card = { ###(
     'widgets': {
         'sc_id': {
@@ -237,7 +391,91 @@
 }
 
-layouts['scratch_card'] = scratch_card
-
-jamb_layout = {
+
+###)
+
+admission = { ###(
+    'widgets': {
+        'sc_id': {
+            'type': 'String Widget',
+            'data': {
+                'title': 'SC ID',
+                'fields': ('admission_sc_id',),
+                'is_required': False,
+                'label': 'Card Serial Number ',
+                'label_edit': 'Card Serial Number',
+                'description': 'Card Serial Number ',
+                'help': 'This can be found on the bottom right of the reverse side of your Scratch Card',
+                'is_i18n': False,
+                'readonly_layout_modes': (),
+                'hidden_layout_modes': (),
+                'hidden_readonly_layout_modes': (),
+                'hidden_empty': False,
+                'hidden_if_expr': 'python:1',
+                'css_class': '',
+                'widget_mode_expr': '',
+                'display_width': 10,
+                'size_max': 0,
+            },
+        },
+        'sc_pin': {
+            'type': 'String Widget',
+            'data': {
+                'title': 'SC Pin',
+                'fields': ('admission_sc_pin'),
+                'is_required': True,
+                'label': 'PIN',
+                'label_edit': 'PIN',
+                'description': '',
+                'help': 'PIN-(Personal Identification Number) is an 8 or 12 digit number on the reverse side of the scratch card which you can purchase from many Banks',
+                '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': 10,
+                'size_max': 10,
+            },
+        },
+        'jamb_id': {
+            'type': 'StudentId Widget',
+            'data': {
+                'title': 'Registration Number',
+                'fields': ('reg_nr'),
+                'is_required': True,
+                'label': 'Registration Number',
+                'label_edit': 'Registration Number',
+                'description': '',
+                'help': 'This is the combination of 8 digits and 2 letters you are assigned when you purchase an examination form.',
+                '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': 10,
+                'size_max': 10,
+            },
+        },
+    },
+   'layout': {
+        'style_prefix': 'layout_admission_',
+        'flexible_widgets': (),
+        'ncols': 1,
+        'rows': [
+            [{'widget_id': 'sc_id', 'ncols': 1},],
+            [{'widget_id': 'sc_pin', 'ncols': 1},],
+            [{'widget_id': 'jamb_id', 'ncols': 1},],
+        ]
+    },
+}
+
+###)
+
+jamb_layout = { ###(
     'widgets': {
         'reg_nr': {
@@ -459,6 +697,12 @@
     },
 }
-
+###)
+
+layouts = {}
+layouts['waeup_common'] = common_layout
+layouts['student'] = student_layout
+layouts['student_personal'] = student_personal_layout
+layouts['scratch_card'] = scratch_card
+layouts['admission'] = admission
 layouts['jamb'] = jamb_layout
-
 return layouts
Index: waeup_product/trunk/skins/waeup_default/getWAeUPSchemas.py
===================================================================
--- waeup_product/trunk/skins/waeup_default/getWAeUPSchemas.py	(revision 46)
+++ waeup_product/trunk/skins/waeup_default/getWAeUPSchemas.py	(revision 47)
@@ -1,3 +1,6 @@
-university_schema = {
+#-*- mode: python; mode: fold -*-
+# $Id$
+
+university_schema = { ###(
    'allow_discussion': {
         'type': 'CPS Int Field',
@@ -9,5 +12,7 @@
 }
 
-students_folder_schema = {
+###)
+
+students_folder_schema = { ###(
    'allow_discussion': {
         'type': 'CPS Int Field',
@@ -19,5 +24,7 @@
 }
 
-student_schema = {
+###)
+
+student_schema = { ###(
    'allow_discussion': {
         'type': 'CPS Int Field',
@@ -81,26 +88,51 @@
         },
     },
-    'jamb_pin_usage': {
-        'type': 'CPS Int Field',
-        'data': {
-            'default_expr': 'python:0',
-            'is_searchabletext': False,
-            'acl_read_permissions': '',
-            'acl_read_roles': '',
-            'acl_read_expr': '',
-            'acl_write_permissions': '',
-            'acl_write_roles': '',
-            'acl_write_expr': '',
-            'read_ignore_storage': False,
-            'read_process_expr': '',
-            'read_process_dependent_fields': (),
-            'write_ignore_storage': False,
-            'write_process_expr': '',
-        },
-    },
 }
 #
+###)
+
+student_personal_schema = { ###(
+   'allow_discussion': {
+        'type': 'CPS Int Field',
+        'data': {
+            'default_expr': 'python:0',
+            'is_searchabletext': 0,
+            },
+        },
+     '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,
+        },
+    },
+     'sex': {
+        'type': 'CPS Boolean Field',
+        'data': {
+            'is_searchabletext': 1,
+        },
+    },
+     'birthday': {
+        'type': 'CPS DateTime Field',
+        'data': {
+            'is_searchabletext': 1,
+        },
+    },
+}
 #
-jamb_schema = {
+###)
+
+jamb_schema = { ###(
    'allow_discussion': {
         'type': 'CPS Int Field',
@@ -115,4 +147,57 @@
             'default_expr': 'string:',
             'is_searchabletext': True,
+            'acl_read_permissions': '',
+            'acl_read_roles': '',
+            'acl_read_expr': '',
+            'acl_write_permissions': '',
+            'acl_write_roles': '',
+            'acl_write_expr': '',
+            'read_ignore_storage': False,
+            'read_process_expr': '',
+            'read_process_dependent_fields': (),
+            'write_ignore_storage': False,
+            'write_process_expr': '',
+        },
+    },
+    'admission_sc_id': {
+        'type': 'CPS String Field',
+        'data': {
+            'default_expr': '',
+            'is_searchabletext': True,
+            'acl_read_permissions': '',
+            'acl_read_roles': '',
+            'acl_read_expr': '',
+            'acl_write_permissions': '',
+            'acl_write_roles': '',
+            'acl_write_expr': '',
+            'read_ignore_storage': False,
+            'read_process_expr': '',
+            'read_process_dependent_fields': (),
+            'write_ignore_storage': False,
+            'write_process_expr': '',
+        },
+    },
+    'admission_sc_pin': {
+        'type': 'CPS String Field',
+        'data': {
+            'is_searchabletext': True,
+            'acl_read_permissions': '',
+            'acl_read_roles': '',
+            'acl_read_expr': '',
+            'acl_write_permissions': '',
+            'acl_write_roles': '',
+            'acl_write_expr': '',
+            'read_ignore_storage': False,
+            'read_process_expr': '',
+            'read_process_dependent_fields': (),
+            'write_ignore_storage': False,
+            'write_process_expr': '',
+        },
+    },
+    'admission_sc_pin_usage': {
+        'type': 'CPS Int Field',
+        'data': {
+            'default_expr': 'python:0',
+            'is_searchabletext': False,
             'acl_read_permissions': '',
             'acl_read_roles': '',
@@ -274,55 +359,60 @@
 }
 
-scratch_card = {
-   'allow_discussion': {
-        'type': 'CPS Int Field',
-        'data': {
-            'default_expr': 'python:0',
-            'is_searchabletext': 0,
-            },
-        },
-     'sc_id': {
-        'type': 'CPS String Field',
-        'data': {
-            'default_expr': '',
-            'is_searchabletext': 0,
-            'acl_read_permissions': '',
-            'acl_read_roles': '',
-            'acl_read_expr': '',
-            'acl_write_permissions': '',
-            'acl_write_roles': '',
-            'acl_write_expr': '',
-            'read_ignore_storage': False,
-            'read_process_expr': '',
-            'read_process_dependent_fields': (),
-            'write_ignore_storage': False,
-            'write_process_expr': '',
-        },
-    },
-     'sc_pin': {
-        'type': 'CPS String Field',
-        'data': {
-            'default_expr': '',
-            'is_searchabletext': 0,
-            'acl_read_permissions': '',
-            'acl_read_roles': '',
-            'acl_read_expr': '',
-            'acl_write_permissions': '',
-            'acl_write_roles': '',
-            'acl_write_expr': '',
-            'read_ignore_storage': False,
-            'read_process_expr': '',
-            'read_process_dependent_fields': (),
-            'write_ignore_storage': False,
-            'write_process_expr': '',
-        },
-    },
-}
+###)
+
+##scratch_card = { ###(
+####   'allow_discussion': {
+####        'type': 'CPS Int Field',
+####        'data': {
+####            'default_expr': 'python:0',
+####            'is_searchabletext': 0,
+####            },
+####        },
+##     'sc_id': {
+##        'type': 'CPS String Field',
+##        'data': {
+##            'default_expr': '',
+##            'is_searchabletext': 0,
+##            'acl_read_permissions': '',
+##            'acl_read_roles': '',
+##            'acl_read_expr': '',
+##            'acl_write_permissions': '',
+##            'acl_write_roles': '',
+##            'acl_write_expr': '',
+##            'read_ignore_storage': False,
+##            'read_process_expr': '',
+##            'read_process_dependent_fields': (),
+##            'write_ignore_storage': False,
+##            'write_process_expr': '',
+##        },
+##    },
+##     'sc_pin': {
+##        'type': 'CPS String Field',
+##        'data': {
+##            'default_expr': '',
+##            'is_searchabletext': 0,
+##            'acl_read_permissions': '',
+##            'acl_read_roles': '',
+##            'acl_read_expr': '',
+##            'acl_write_permissions': '',
+##            'acl_write_roles': '',
+##            'acl_write_expr': '',
+##            'read_ignore_storage': False,
+##            'read_process_expr': '',
+##            'read_process_dependent_fields': (),
+##            'write_ignore_storage': False,
+##            'write_process_expr': '',
+##        },
+##    },
+##}
 schemas = {}
+###)
+
 schemas['university'] = university_schema
 schemas['students'] = students_folder_schema
 schemas['student'] = student_schema
+schemas['student_personal'] = student_personal_schema
 schemas['jamb'] = jamb_schema
-schemas['scratch_card'] = scratch_card
+#schemas['scratch_card'] = scratch_card
 
 return schemas
Index: waeup_product/trunk/skins/waeup_default/getWAeUPTypes.py
===================================================================
--- waeup_product/trunk/skins/waeup_default/getWAeUPTypes.py	(revision 46)
+++ waeup_product/trunk/skins/waeup_default/getWAeUPTypes.py	(revision 47)
@@ -1,2 +1,3 @@
+#-*- mode: python; mode: fold -*-
 ##parameters=
 # $Id$
@@ -8,5 +9,5 @@
 ChangePermissions = 'Change permissions'
 
-university_type = {
+university_type = { ###(
     'title': 'WAeUP Base Folder',
     'description': 'The WAeUP Container',
@@ -55,5 +56,7 @@
 }
 
-students_folder_type = {
+###)
+
+students_folder_type = { ###(
     'title': 'WAeUP Student Folder',
     'description': 'The WAeUP Student Folder',
@@ -103,5 +106,7 @@
 }
 
-student_type = {
+###)
+
+student_type = { ###(
     'title': 'WAeUP Student',
     'description': '',
@@ -116,5 +121,5 @@
     'global_allow': True,
     'filter_content_types': True,
-    'allowed_content_types': ('Jamb',),
+    'allowed_content_types': ('Jamb','StudentPersonal'),
     'allow_discussion': False,
     'cps_is_searchable': True,
@@ -130,6 +135,6 @@
          {'id': 'view',
           'name': 'action_view',
-          #'action': 'string:${object_url}/student_view',
-          'action': 'string:${object_url}/cpsdocument_view',
+          'action': 'string:${object_url}/student_view',
+          #'action': 'string:${object_url}/cpsdocument_view',
           'condition': '',
           'permission': ('View',),
@@ -137,7 +142,7 @@
           'visible': True,},
          {'id': 'new_content',
-          'name': 'Add Jamb Data',
+          'name': 'Add Data',
           'action': 'string:${object_url}/folder_factories',
-          'condition': "python:len(object.contentItems()) == 0 ",
+          'condition': "python:1 or len(object.contentItems()) == 0 ",
           'permission': ('Modify portal content',),
           'category': 'object',
@@ -146,5 +151,5 @@
           'name': 'action_folder_contents',
           'action': 'string:${object_url}/folder_contents',
-          'condition': "python:object.getTypeInfo().cps_proxy_type != 'document'",
+          'condition': "python:1 or object.getTypeInfo().cps_proxy_type != 'document'",
           'permission': ('Modify portal content',),
           'category': 'object',
@@ -159,5 +164,8 @@
     )
 }
-scratch_card = {
+
+###)
+
+scratch_card = { ###(
     'title': 'WAeUP Scratchcard',
     'description': '',
@@ -210,6 +218,7 @@
 }
 #
-#
-jamb_type = {
+###)
+
+jamb_type = { ###(
     'title': "JAMB data",
     'description': 'The data from JAMB',
@@ -229,5 +238,32 @@
     #'schemas': ['common','metadata','jamb'],
     'schemas': ['jamb'],
-    'layouts': ['jamb',],
+    'layouts': ['jamb'],
+    'flexible_layouts': (),
+    'storage_methods': ('admitted:store_admission_pin'),
+    'cps_workspace_wf': 'workspace_content_wf',
+    'cps_section_wf': 'section_content_wf',
+}
+
+###)
+
+student_personal_type = { ###(
+    'title': "Student personal data",
+    'description': '',
+    'content_icon': '',
+    'content_meta_type': 'CPS Document',
+    'product': 'CPSDocument',
+    'factory': 'addCPSDocument',
+    'immediate_view': 'cpsdocument_view',
+    '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': ['common','metadata','jamb'],
+    'schemas': ['student_personal'],
+    'layouts': ['student_personal'],
     'flexible_layouts': (),
     'storage_methods': (),
@@ -235,4 +271,5 @@
     'cps_section_wf': 'section_content_wf',
 }
+###)
 
 types = {}
@@ -240,4 +277,5 @@
 types['StudentsFolder'] = students_folder_type
 types['Student'] = student_type
+types['StudentPersonal'] = student_personal_type
 types['ScratchCard'] = scratch_card
 types['Jamb'] = jamb_type
Index: waeup_product/trunk/skins/waeup_default/portlet_studentnavigation.pt
===================================================================
--- waeup_product/trunk/skins/waeup_default/portlet_studentnavigation.pt	(revision 46)
+++ waeup_product/trunk/skins/waeup_default/portlet_studentnavigation.pt	(revision 47)
@@ -1,8 +1,10 @@
 <tal:block define="mtool here/portal_membership;
-                   anonymous mtool/isAnonymousUser"
+                   anonymous mtool/isAnonymousUser;
+                   user python: mtool.getAuthenticatedMember();
+                   folder_id python:str(user)[1:]"
                    >
-  <tal:block condition="not:anonymous">
+  <tal:block condition="python: not anonymous">
     <a href="" i18n:translate=""
-       tal:attributes="href string:${here/portal_url}/sections/unidemo/students">Studentadministration</a>
+       tal:attributes="href string:${here/portal_url}/sections/unidemo/students/${folder_id}">Studentadministration</a>
   </tal:block>
   <tal:block condition="anonymous">
