Index: WAeUP_SRP/trunk/Widgets.py
===================================================================
--- WAeUP_SRP/trunk/Widgets.py	(revision 1174)
+++ WAeUP_SRP/trunk/Widgets.py	(revision 1175)
@@ -141,5 +141,4 @@
 widgetRegistry.register(CertificateCourseIdWidget)
 ###)
-
 
 class CourseIdWidget(CPSStringWidget): ###(
@@ -366,4 +365,55 @@
 ###)
 
+class SecretWidget(CPSStringWidget): ###(
+    """ Secret Widget"""
+    meta_type = "Secret Widget"
+    _properties = CPSStringWidget._properties + (
+        {'id': 'reference', 'type': 'string', 'mode': 'w',
+         'label': 'Reference Record'},
+         {'id': 'check_fields', 'type': 'tokens', 'mode': 'w',
+         'label': 'Fields to check'},
+         )
+    reference = "student"
+    check_fields = ("Firstname", "Middlename","Lastname")
+    def validate(self, datastructure, **kw):
+        """Validate datastructure and update datamodel."""
+        logger = logging.getLogger('Secret.Validate')
+        valid = CPSStringWidget.validate(self, datastructure, **kw)
+        #import pdb;pdb.set_trace()
+        widget_id = self.getWidgetId()
+        value = datastructure[widget_id].upper()
+        err = 0
+        if not valid:
+            err = 'Invalid String'
+        else:
+            #import pdb;pdb.set_trace()
+            record = datastructure[self.reference]
+            found = False
+            cvs = []
+            for field in self.check_fields:
+                cv = getattr(record,field).upper()
+                cvs.append(cv)
+                if cv  == value.upper():
+                    found = True
+                    break
+            matric_no = record.matric_no
+            name = " ".join(cvs)
+            if not found:
+                logger.info('"%(matric_no)s","mismatch", "%(value)s", "not in","%(name)s"' % vars())
+                err = 'No Name does match.'
+            else:
+                logger.info('"%(matric_no)s","found", "%(value)s", "in","%(name)s"' % vars())
+        if err:
+            datastructure.setError(widget_id, err)
+        else:
+            datamodel = datastructure.getDataModel()
+            datamodel[self.fields[0]] = value
+        return not err
+
+InitializeClass(SecretWidget)
+
+widgetRegistry.register(SecretWidget)
+###)
+
 class MatricNoWidget(CPSStringWidget): ###(
     """ MatricNo Widget"""
@@ -372,4 +422,5 @@
         """Validate datastructure and update datamodel."""
         valid = CPSStringWidget.validate(self, datastructure, **kw)
+        logger = logging.getLogger('MatricNo.Validate')
         #import pdb;pdb.set_trace()
         returning = self.returning_import
Index: WAeUP_SRP/trunk/profiles/default/layouts/student_session_results_search.xml
===================================================================
--- WAeUP_SRP/trunk/profiles/default/layouts/student_session_results_search.xml	(revision 1174)
+++ WAeUP_SRP/trunk/profiles/default/layouts/student_session_results_search.xml	(revision 1175)
@@ -19,4 +19,25 @@
   </property>
   <property name="hidden_readonly_layout_modes"/>
+ </widget>
+ <widget name="secret" meta_type="Secret Widget">
+  <property name="title">Secret Widget</property>
+  <property name="fields">
+   <element value="secret"/>
+  </property>
+  <property name="label">Enter Your Firstname,Middlename or Lastname</property>
+  <property name="label_edit">Enter Your Firstname,Middlename or Lastname</property>
+  <property name="readonly_layout_modes"/>
+  <property name="hidden_layout_modes">
+   <element value="edit"/>
+  </property>
+  <property name="hidden_readonly_layout_modes"/>
+  <property name="check_fields">
+   <element value="Firstname"/>
+   <element value="Middlename"/>
+   <element value="Lastname"/>
+  </property>
+  <property name="reference">student</property>
+  <property name="display_width">10</property>
+  <property name="size_max">10</property>
  </widget>
  <widget name="jamb_reg_no" meta_type="JambRegNo Widget">
@@ -104,5 +125,5 @@
   </row>
   <row>
-   <cell name="jamb_reg_no" />
+   <cell name="secret" />
   </row>
   <row>
Index: WAeUP_SRP/trunk/profiles/default/schemas/student_returning.xml
===================================================================
--- WAeUP_SRP/trunk/profiles/default/schemas/student_returning.xml	(revision 1174)
+++ WAeUP_SRP/trunk/profiles/default/schemas/student_returning.xml	(revision 1175)
@@ -3,5 +3,5 @@
  <field name="email" meta_type="CPS String Field"/>
  <field name="phone_nr" meta_type="CPS String Field"/>
- <field name="jamb_reg_no" meta_type="CPS String Field"/>
+ <field name="secret" meta_type="CPS String Field"/>
  <field name="matric_no" meta_type="CPS String Field"/>
  <field name="password" meta_type="CPS Password Field"/>
Index: WAeUP_SRP/trunk/skins/waeup_student/createReturningStudent.py
===================================================================
--- WAeUP_SRP/trunk/skins/waeup_student/createReturningStudent.py	(revision 1174)
+++ WAeUP_SRP/trunk/skins/waeup_student/createReturningStudent.py	(revision 1175)
@@ -52,6 +52,5 @@
         return "MatricNo %s not found in Returning Table" % matric_no
     student_brain = res[0]
-    #sid,jamb_reg_no = context.waeup_tool.createOne(student_brain)
-    sid,jamb_reg_no = context.createOne(student_brain)
+    sid,jamb_reg_no = context.waeup_tool.createOne(student_brain)
     logger.info('"%s","Created Student","%s", "%s" ' % (member,sid,matric_no))
     return "Student MatricNo %s, StudentId %s Jamb %s created" % (matric_no,sid,jamb_reg_no)
Index: WAeUP_SRP/trunk/skins/waeup_student/display_session_results.py
===================================================================
--- WAeUP_SRP/trunk/skins/waeup_student/display_session_results.py	(revision 1174)
+++ WAeUP_SRP/trunk/skins/waeup_student/display_session_results.py	(revision 1175)
@@ -62,5 +62,15 @@
 #from Products.zdb import set_trace;set_trace()
 results = (sem1, sem2)
-return context.session_results_anon_view(student=ds.get('student'),
-                                           results=results)
+registered = None
+student_rec = ds.get('student')
+res = context.students_catalog(matric_no = student_rec.matric_no)
+if res:
+    student_id = res[0].id
+    student_obj = getattr(context.portal_url.getPortalObject().campus.students,student_id,None)
+    if student_obj and hasattr(student_obj,'application'):
+        registered = student_id
+    
+return context.session_results_anon_view(student=student_rec,
+                                           results=results,
+                                           registered = registered)
 
Index: WAeUP_SRP/trunk/skins/waeup_student/session_results_anon_view.pt
===================================================================
--- WAeUP_SRP/trunk/skins/waeup_student/session_results_anon_view.pt	(revision 1174)
+++ WAeUP_SRP/trunk/skins/waeup_student/session_results_anon_view.pt	(revision 1175)
@@ -1,4 +1,5 @@
 <metal:html tal:define="student options/student;
-            results options/results"
+            results options/results;
+            registered options/registered"
             >
   <metal:body use-macro="here/main_template/macros/master">
@@ -52,5 +53,9 @@
       </table>
       <br />
-      <form action="" method="post"
+      <div tal:condition="registered">You have already set your Password, please 
+        <a href="" tal:attributes="href string:${context/portal_url}/login_student">login</a> 
+        with your UserId <span tal:replace="registered" />
+      </div>
+      <form tal:condition="not: registered" action="" method="post"
             tal:attributes="action string:${context/portal_url}/set_access_data">
         <input type="hidden" name="matric_no" tal:attributes="value student/matric_no" />
