Index: waeup_product/trunk/Extensions/install.py
===================================================================
--- waeup_product/trunk/Extensions/install.py	(revision 48)
+++ waeup_product/trunk/Extensions/install.py	(revision 49)
@@ -63,17 +63,17 @@
                         'action'    : 'string:${object/absolute_url}/check_admission',
                         'permission': (View, ),
-                        'condition' : 'member',
-                        'category'  : 'student',
-                        'visible'   : 1,
-                      },
-                      { 'tool'      : 'portal_actions',
-                        'id'        : 'new_student',
-                        'name'      : 'Add Student',
-                        'action'    : 'string:${object/absolute_url}/create_student_form',
-                        'permission': (View),
-                        'condition' : 'python: member and here.portal_type == "StudentsFolder"',
-                        'category'  : 'student',
-                        'visible'   : 1,
-                      },
+                        'condition' : 'python: not member',
+                        'category'  : 'student',
+                        'visible'   : 1,
+                      },
+##                      { 'tool'      : 'portal_actions',
+##                        'id'        : 'new_student',
+##                        'name'      : 'Add Student',
+##                        'action'    : 'string:${object/absolute_url}/create_student_form',
+##                        'permission': (View),
+##                        'condition' : 'python: 0 and member and here.portal_type == "StudentsFolder"',
+##                        'category'  : 'student',
+##                        'visible'   : 1,
+##                      },
                       { 'tool'      : 'portal_actions',
                         'id'        : 'edit_student',
@@ -81,5 +81,5 @@
                         'action'    : 'cpsdocument_edit_form',
                         'permission': ( ),
-                        'condition' : 'python: member and  here.portal_type == "Student"',
+                        'condition' : 'python: 0 and member and  here.portal_type == "Student"',
                         'category'  : 'student',
                         'visible'   : 1,
@@ -87,8 +87,8 @@
                       { 'tool'      : 'portal_actions',
                         'id'        : 'add_jamb',
-                        'name'      : 'Add Jamb Data',
-                        'action'    : 'string:${object/absolute_url}/create_jamb_form',
+                        'name'      : 'Add Student JAMB',
+                        'action'    : 'string:${object/absolute_url}/create_jamb',
                         'permission': (),
-                        'condition' : 'python:not here.portal_type in ("Jamb","StudentsFolder") and len(object.contentItems()) == 0',
+                        'condition' : 'python: member and here.portal_type in ("StudentsFolder",) and "StudentManager" in member.getGroups()',
                         'category'  : 'student',
                         'visible'   : 1,
@@ -99,5 +99,5 @@
                         'action'    : 'string:${object/absolute_url}/create_personal_form',
                         'permission': (),
-                        'condition' : 'python:not here.portal_type in ("Jamb","StudentsFolder")',
+                        'condition' : 'python: 0 and member and not here.portal_type in ("Jamb","StudentsFolder") and not "StudentManager" in member.getGroups()',
                         'category'  : 'student',
                         'visible'   : 1,
@@ -108,5 +108,5 @@
                         'action'    : 'cpsdocument_edit_form',
                         'permission': ( ),
-                        'condition' : 'python: here.portal_type == "Jamb"',
+                        'condition' : 'python: member and here.portal_type in ("Student",) and "StudentManager" in member.getGroups()',
                         'category'  : 'student',
                         'visible'   : 1,
Index: waeup_product/trunk/skins/waeup_default/cpsdocument_edit_form.pt
===================================================================
--- waeup_product/trunk/skins/waeup_default/cpsdocument_edit_form.pt	(revision 49)
+++ waeup_product/trunk/skins/waeup_default/cpsdocument_edit_form.pt	(revision 49)
@@ -0,0 +1,69 @@
+<tal:block define="res python:here.editCPSDocument(REQUEST=request);
+                   rendered_main python: res[0];
+                   portal_status_message python: res[1];
+                   edition python:1;
+  ">
+<metal:block define-macro="edit_form">
+<metal:block use-macro="here/content_lib_master/macros/master">
+  <metal:block fill-slot="css_slot">
+    <link rel="Stylesheet" type="text/css" href=""
+      tal:attributes="href string:${base_url}document.css" />
+
+    <metal:block define-macro="widgets_javascript">
+    <!-- XXX this has to move to CPSSchemas -->
+    <style type="text/css"
+      tal:content="string:@import url(${base_url}calendar-win2k-1.css);"></style>
+    <script type="text/javascript" src="calendar.js"
+      tal:attributes="src string:${base_url}calendar.js"></script>
+    <script type="text/javascript" src="lang/calendar-en.js"
+      tal:define="local cpsmcat/getSelectedLanguage"
+      tal:attributes="src string:${base_url}lang/calendar-${local}.js"></script>
+    <script type="text/javascript" src="calendar-setup.js"
+      tal:attributes="src string:${base_url}calendar-setup.js"></script>
+
+    <script type="text/javascript">
+    <!--
+     function popup_rte(input_id, label_edit) {
+       var args, value
+       value = document.getElementById(input_id).value;
+       args='?input_id='+input_id+'&label_edit='+escape(label_edit);
+       popup = window.open('popup_rte_form'+args, input_id, 'toolbar=0, scrollbars=0, location=0, statusbar=0, menubar=0, resizable=1, dependent=1, width=640, height=480')
+       if(!popup.opener)
+         popup.opener = window;
+       return false;
+   }
+   //-->
+   </script>
+   </metal:block>
+  </metal:block>
+
+  <metal:block fill-slot="header"
+    tal:define="creation creation|nothing;
+                edition edition|nothing;
+                metadata metadata|nothing">
+    <h1 tal:condition="creation" i18n:translate="">
+      Create a document of type
+      <tal:block i18n:name="type_name" i18n:translate=""
+            tal:define="type_name request/type_name;
+                        type_info python:here.portal_types[type_name]"
+            tal:content="type_info/Title">Type Title</tal:block>
+    </h1>
+    <h1 tal:condition="not:creation">
+      <img tal:replace="structure python:here.getImgTag('/'+here.getIcon(), base_url='')">
+      <tal:block condition="edition"
+        i18n:translate="">Edit <span i18n:name="title"
+        tal:content="here/title_or_id">Page Title</span></tal:block>
+      <tal:block tal:condition="metadata"
+        i18n:translate="">heading_metadata_edit</tal:block>
+    </h1>
+  </metal:block>
+
+  <metal:block fill-slot="main">
+    <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_default/getWAeUPLayouts.py
===================================================================
--- waeup_product/trunk/skins/waeup_default/getWAeUPLayouts.py	(revision 48)
+++ waeup_product/trunk/skins/waeup_default/getWAeUPLayouts.py	(revision 49)
@@ -103,5 +103,5 @@
             'data': {
                 'title': 'Jamb Admission',
-                'fields': ('jamb_where_admitted',),
+                'fields': ('jamb_is_admitted',),
                 'is_required': False,
                 'label': 'Jamb Admission',
@@ -121,26 +121,26 @@
             },
         },
-        'jamb_where_admitted': {
-            'type': 'String Widget',
-            'data': {
-                'title': 'Jamb Admission Location',
-                'fields': ('jamb_where_admitted',),
-                'is_required': False,
-                'label': 'University',
-                'label_edit': 'University',
-                '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,
-            },
-        },
+##        'jamb_where_admitted': {
+##            'type': 'String Widget',
+##            'data': {
+##                'title': 'Jamb Admission Location',
+##                'fields': ('jamb_where_admitted',),
+##                'is_required': False,
+##                'label': 'University',
+##                'label_edit': 'University',
+##                '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,
+##            },
+##        },
 ##        'jamb_pin_usage': {
 ##            'type': 'Int Widget',
@@ -194,5 +194,5 @@
         'rows': [
             [{'widget_id': 'jamb_is_admitted', 'ncols': 1},],
-            [{'widget_id': 'jamb_where_admitted', 'ncols': 1},],
+            #[{'widget_id': 'jamb_where_admitted', 'ncols': 1},],
             #[{'widget_id': 'jamb_pin_usage', 'ncols': 1},],
             [{'widget_id': 'faculty', 'ncols': 1},],
@@ -477,5 +477,5 @@
 ###)
 
-jamb_layout = { ###(
+jamb_layoutcreate = { ###(
     'widgets': {
         'reg_nr': {
@@ -679,7 +679,51 @@
             },
         },
+        'sc_id': {
+            'type': 'String Widget',
+            'data': {
+                'title': '',
+                'fields': ('admission_sc_id',),
+                'is_required': False,
+                'label': 'Scratch card ID used',
+                'label_edit': 'Scratch card ID used',
+                '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,
+            },
+        },
+        'sc_pin': {
+            'type': 'String Widget',
+            'data': {
+                'title': '',
+                'fields': ('admission_sc_pin',),
+                'is_required': False,
+                'label': 'Scratch card PIN used',
+                'label_edit': 'Scratch card PIN used',
+                '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,
+            },
+        },
     },
     'layout': {
-        'style_prefix': 'layout_default_',
+        'style_prefix': 'layout_jambcreate_',
         'flexible_widgets': (),
         'ncols': 1,
@@ -687,4 +731,6 @@
             [{'widget_id': 'reg_nr', 'ncols': 1},],
             [{'widget_id': 'name', 'ncols': 1},],
+            #[{'widget_id': 'sc_id', 'ncols': 1},],
+            #[{'widget_id': 'sc_pin', 'ncols': 1},],
             [{'widget_id': 'age', 'ncols': 1},],
             [{'widget_id': 'sex', 'ncols': 1},],
@@ -699,4 +745,272 @@
 ###)
 
+jamb_layout = { ###(
+    'widgets': {
+        'reg_nr': {
+            'type': 'StudentId Widget',
+            'data': {
+                'title': 'Student ID',
+                'fields': ('reg_nr',),
+                'is_required': True,
+                'label': 'Student ID',
+                'label_edit': 'Student ID',
+                'description': 'The Student ID from JAMB',
+                'help': 'The Student ID from JAMB',
+                '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': 8,
+                'size_max': 8,
+            },
+        },
+        'name': {
+            'type': 'String Widget',
+            'data': {
+                'title': '',
+                'fields': ('name',),
+                'is_required': False,
+                'label': 'Name',
+                'label_edit': 'Name',
+                'description': '',
+                'help': 'Please enter your full name.',
+                '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': 40,
+                'size_max': 0,
+            },
+        },
+        'age': {
+            'type': 'Int Widget',
+            'data': {
+                'title': '',
+                'fields': ('age',),
+                'is_required': False,
+                'label': 'Age',
+                'label_edit': 'Age',
+                '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': 2,
+                'size_max': 2,
+            },
+        },
+        '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': 20,
+                'size_max': 0,
+            },
+        },
+        'state': {
+            'type': 'String Widget',
+            'data': {
+                'title': '',
+                'fields': ('state_of_origin',),
+                'is_required': False,
+                'label': 'State',
+                'label_edit': 'State',
+                '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,
+            },
+        },
+        'exam_results': {
+            'type': 'String Widget',
+            'data': {
+                'title': '',
+                'fields': ('exam_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,
+            },
+        },
+        'aggregate': {
+            'type': 'String Widget',
+            'data': {
+                'title': 'Agregate',
+                'fields': ('aggregate',),
+                'is_required': False,
+                'label': 'Aggregate',
+                'label_edit': 'Aggregate',
+                '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,
+            },
+        },
+        '2nd_choice': {
+            'type': 'String Widget',
+            'data': {
+                'title': 'Second choice',
+                'fields': ('2nd_choice',),
+                'is_required': False,
+                'label': 'Second choice',
+                'label_edit': 'Second choice',
+                'description': '',
+                'help': 'second_choice',
+                '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,
+            },
+        },
+        '3rd_choice': {
+            'type': 'String Widget',
+            'data': {
+                'title': 'Third_choice',
+                'fields': ('3rd_choice',),
+                'is_required': False,
+                'label': 'Third choice',
+                'label_edit': 'Third choice',
+                'description': 'third_choice',
+                'help': 'third_choice',
+                '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,
+            },
+        },
+        'sc_id': {
+            'type': 'String Widget',
+            'data': {
+                'title': '',
+                'fields': ('admission_sc_id',),
+                'is_required': False,
+                'label': 'Scratch card ID used',
+                'label_edit': 'Scratch card ID used',
+                '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,
+            },
+        },
+        'sc_pin': {
+            'type': 'String Widget',
+            'data': {
+                'title': '',
+                'fields': ('admission_sc_pin',),
+                'is_required': False,
+                'label': 'Scratch card PIN used',
+                'label_edit': 'Scratch card PIN used',
+                '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,
+            },
+        },
+    },
+    'layout': {
+        'style_prefix': 'layout_default_',
+        'flexible_widgets': (),
+        'ncols': 1,
+        'rows': [
+            [{'widget_id': 'reg_nr', 'ncols': 1},],
+            [{'widget_id': 'name', 'ncols': 1},],
+            [{'widget_id': 'sc_id', 'ncols': 1},],
+            [{'widget_id': 'sc_pin', 'ncols': 1},],
+            [{'widget_id': 'age', 'ncols': 1},],
+            [{'widget_id': 'sex', 'ncols': 1},],
+            [{'widget_id': 'state', 'ncols': 1},],
+            [{'widget_id': 'exam_results', 'ncols': 1},],
+            [{'widget_id': 'aggregate', 'ncols': 1},],
+            [{'widget_id': '2nd_choice', 'ncols': 1},],
+            [{'widget_id': '3rd_choice', 'ncols': 1},],
+        ]
+    },
+}
+###)
+
 layouts = {}
 layouts['waeup_common'] = common_layout
@@ -705,4 +1019,5 @@
 layouts['scratch_card'] = scratch_card
 layouts['admission'] = admission
+layouts['jambcreate'] = jamb_layoutcreate
 layouts['jamb'] = jamb_layout
 return layouts
Index: waeup_product/trunk/skins/waeup_default/getWAeUPSchemas.py
===================================================================
--- waeup_product/trunk/skins/waeup_default/getWAeUPSchemas.py	(revision 48)
+++ waeup_product/trunk/skins/waeup_default/getWAeUPSchemas.py	(revision 49)
@@ -52,22 +52,22 @@
         },
     },
-    'jamb_where_admitted': {
-        'type': 'CPS String Field',
-        'data': {
-            'default_expr': 'string:Lagos',
-            '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': '',
-        },
-    },
+##    'jamb_where_admitted': {
+##        'type': 'CPS String Field',
+##        'data': {
+##            'default_expr': 'string:Lagos',
+##            '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': '',
+##        },
+##    },
     'faculty': {
         'type': 'CPS String Field',
@@ -163,5 +163,4 @@
         'type': 'CPS String Field',
         'data': {
-            'default_expr': '',
             'is_searchabletext': True,
             'acl_read_permissions': '',
Index: waeup_product/trunk/skins/waeup_default/getWAeUPTypes.py
===================================================================
--- waeup_product/trunk/skins/waeup_default/getWAeUPTypes.py	(revision 48)
+++ waeup_product/trunk/skins/waeup_default/getWAeUPTypes.py	(revision 49)
@@ -135,5 +135,5 @@
          {'id': 'view',
           'name': 'action_view',
-          'action': 'string:${object_url}/student_view',
+          'action': 'string:${object_url}/student_index_html',
           #'action': 'string:${object_url}/cpsdocument_view',
           'condition': '',
Index: waeup_product/trunk/skins/waeup_default/logged_in.pt
===================================================================
--- waeup_product/trunk/skins/waeup_default/logged_in.pt	(revision 49)
+++ waeup_product/trunk/skins/waeup_default/logged_in.pt	(revision 49)
@@ -0,0 +1,122 @@
+<metal:html>
+
+<metal:body use-macro="here/main_template/macros/master">
+    
+    <metal:main fill-slot="main"
+                tal:define="p_props here/portal_properties;">
+      <metal:skin tal:condition="exists: here/portal_skins | nothing">
+        <div tal:condition="here/portal_skins/updateSkinCookie | nothing"
+             tal:define="dummy here/setupCurrentSkin">
+        </div>
+      </metal:skin>
+      <tal:block condition="isAnon">
+        <tal:block define="dummy python:request.RESPONSE.expireCookie('__ac',path='/')" />
+          <h1 i18n:translate="heading_login_failure">Login failure</h1>
+          <p>
+            <span i18n:translate="description_login_failure">
+              You are not currently logged in. Your username and or password may be
+              incorrect. Your browser may also not be configured to accept HTTP
+              cookies. If you need help please contact
+            </span>
+            <a href="mailto:admin@here.com" title="Email Admin"
+               tal:attributes="href string:mailto:${p_props/email_from_address}"
+               tal:content="p_props/email_from_address">Email Admin</a>.
+          </p>
+          <p i18n:translate="">
+            help_password_forgotten
+            <tal:block i18n:name="link_password_forgotten"
+                       replace="string:${base_url}account_lost_password_form"/>
+          </p>
+          <p>
+            or <a href="" tal:attributes="href string:${base_url}/sections/unidemo/students/check_admission">check your admission status</a>
+          </p>
+        </tal:block><!-- isAnon -->
+
+        <tal:block condition="not: isAnon"
+                   define="first_time python:(member.getProperty('login_time', None) ==
+                   here.ZopeTime('2000/01/01'));
+                   dum_home mtool/createMemberArea"
+                   >
+          <tal:block 
+              condition="python:'Students' in member.getGroups()"
+              tal:define="dummy python: context.process_student(member=member,sc_pin=request.get('sc_pin'))" />
+          <tal:block condition="first_time">
+            <div tal:define="now here/ZopeTime;
+            dum_reg python:member.setProperties(last_login_time=now,
+            login_time=now)" />
+            
+            <h1>Welcome!</h1>
+            <p>This is the first time that you've logged in to <span
+                                                                   replace="p_props/title">Here</span>. Before you start exploring you need
+              to change your original password. This will ensure that the password we
+            sent you via email cannot be used in a malicious manner.</p>
+            
+            <p>Please use the form below to change your password.</p>
+
+      <form action="change_password" method="post"
+            tal:attributes="action string:${base_url}change_password">
+        <input type="hidden" name="user" value=""
+               tal:attributes="value member" />
+        <input type="hidden" name="domains:tokens" value="" />
+        <input type="hidden" name="redirect" value=""
+               tal:attributes="value base_url" />
+
+      <table border="1" width="100%" cellspacing="1" cellpadding="1">
+
+       <tr valign="top" align="left">
+         <th>Username</th>
+         <td><span tal:replace="member">You</span></td>
+       </tr>
+
+       <tr valign="top" align="left">
+         <th>New password</th>
+         <td><input type="password" name="password" /></td>
+       </tr>
+
+       <tr valign="top" align="left">
+        <th>Confirm new password</th>
+        <td><input type="password" name="confirm" /></td>
+       </tr>
+
+       <tr>
+        <td></td>
+        <td>
+          <input type="submit" class="standalone" value="Change password" />
+        </td>
+       </tr>
+
+      </table>
+
+      </form>
+
+    </tal:block><!-- first_time -->
+
+    <tal:block condition="not: first_time">
+
+      <tal:block define="d_reg python:member.setProperties(
+                                      last_login_time=member.getProperty('login_time', None));
+                         ereg python:member.setProperties(
+                                     login_time=here.ZopeTime());
+                      "/>
+
+      <div tal:condition="request/came_from | nothing ">
+        <div tal:define="came_from python:request.get('came_from');
+                         response request/RESPONSE;
+                         dredirect python: response.redirect(came_from);
+                        " />
+      </div>
+
+      <h1 i18n:translate="heading_login_success">Login success</h1>
+      <p i18n:translate="description_login_success">
+         Welcome. You are currently logged in.
+      </p>
+
+   </tal:block><!-- not first_time -->
+
+  </tal:block><!-- not isAnon -->
+
+</metal:main>
+
+</metal:body>
+
+</metal:html>
Index: waeup_product/trunk/skins/waeup_default/logged_out.pt
===================================================================
--- waeup_product/trunk/skins/waeup_default/logged_out.pt	(revision 49)
+++ waeup_product/trunk/skins/waeup_default/logged_out.pt	(revision 49)
@@ -0,0 +1,26 @@
+<metal:html>
+
+<metal:body use-macro="here/main_template/macros/master">
+
+<metal:main fill-slot="main">
+
+  <p tal:condition="isAnon"
+     i18n:translate="description_logout_success">
+    You have been logged out. <br />
+    <a href="" tal:attributes="href string:${base_url}/sections/unidemo/students/check_admission">check your admission</a>
+
+  </p>
+
+  <p tal:condition="not:isAnon">
+    <span i18n:translate="description_logout_zmi_warning">
+      You are logged in outside the portal.  You may need to
+    </span>
+    <a href="/manage_zmi_logout"
+       i18n:translate="link_logout_zmi">
+      log out of the Zope management interface
+    </a>.
+  </p>
+
+</metal:main>
+</metal:body>
+</metal:html>
Index: waeup_product/trunk/skins/waeup_default/portlet_goto_students.pt
===================================================================
--- waeup_product/trunk/skins/waeup_default/portlet_goto_students.pt	(revision 48)
+++ 	(revision )
@@ -1,17 +1,0 @@
-<tal:block define="mtool here/portal_membership;
-                   anonymous mtool/isAnonymousUser">
-  <tal:block condition="not:anonymous">
-    <span i18n:translate="">You are currently logged in as
-      <em i18n:name="member"
-       tal:content="mtool/getAuthenticatedMember" />
-    </span><br />
-    (<a href="" i18n:translate=""
-    tal:attributes="href string:${here/portal_url}/logout">log out</a>)
-  </tal:block>
-  <tal:block condition="anonymous">
-    <span >You are currently not logged in </span>
-  </tal:block>
-<br />
-<a tal:condition="python: 0" href="" i18n:translate=""
-    tal:attributes="href string:${here/portal_url}/sections/unidemo/students">Studentadministration</a>
-</tal:block>
Index: waeup_product/trunk/skins/waeup_default/portlet_session_info.pt
===================================================================
--- waeup_product/trunk/skins/waeup_default/portlet_session_info.pt	(revision 49)
+++ waeup_product/trunk/skins/waeup_default/portlet_session_info.pt	(revision 49)
@@ -0,0 +1,22 @@
+<tal:block define="mtool here/portal_membership;
+           anonymous mtool/isAnonymousUser;
+           member mtool/getAuthenticatedMember"
+           >
+  <tal:block condition="not:anonymous">
+    <span i18n:translate="">You are currently logged in as
+      <em i18n:name="member"
+          tal:content="member" /><br />
+      <a href="" tal:condition="python: 'Students' in member.getGroups()" 
+         tal:attributes="href string:${here/portal_url}/sections/unidemo/students/${member}">goto your personal area</a>
+    </span><br />
+    (<a href="" i18n:translate=""
+        tal:attributes="href string:${here/portal_url}/logout">log out</a>)
+  </tal:block>
+  <tal:block condition="anonymous">
+    <span >You are currently not logged in </span><br />
+    <a href="" tal:attributes="href string:${here/portal_url}/sections/unidemo/students/check_admission">check your admission status</a>
+  </tal:block>
+  <br />
+  <a tal:condition="python: 0" href="" i18n:translate=""
+     tal:attributes="href string:${here/portal_url}/sections/unidemo/students">Studentadministration</a>
+</tal:block>
Index: waeup_product/trunk/skins/waeup_default/portlet_studentnavigation.pt
===================================================================
--- waeup_product/trunk/skins/waeup_default/portlet_studentnavigation.pt	(revision 48)
+++ waeup_product/trunk/skins/waeup_default/portlet_studentnavigation.pt	(revision 49)
@@ -2,9 +2,15 @@
                    anonymous mtool/isAnonymousUser;
                    user python: mtool.getAuthenticatedMember();
-                   folder_id python:str(user)[1:]"
+                   folder_id python:str(user)"
                    >
-  <tal:block condition="python: not anonymous">
+  <tal:block condition="python: 'Students' in user.getGroups()">
     <a href="" i18n:translate=""
-       tal:attributes="href string:${here/portal_url}/sections/unidemo/students/${folder_id}">Studentadministration</a>
+       tal:attributes="href string:${here/portal_url}/sections/unidemo/students/${folder_id}"
+       tal:content="string: Personal area for JAMB Registration ${folder_id}"></a>
+  </tal:block>
+  <tal:block condition="python: 'StudentManager' in user.getGroups()">
+    <a href="" i18n:translate=""
+       tal:attributes="href string:${here/portal_url}/sections/unidemo/students"
+       >Studentadministration</a>
   </tal:block>
   <tal:block condition="anonymous">
