Index: /WAeUP_SRP/trunk/profiles/default/layouts/student_search.xml
===================================================================
--- /WAeUP_SRP/trunk/profiles/default/layouts/student_search.xml	(revision 595)
+++ /WAeUP_SRP/trunk/profiles/default/layouts/student_search.xml	(revision 596)
@@ -17,5 +17,5 @@
   <property name="hidden_layout_modes"/>
   <property name="hidden_readonly_layout_modes"/>
-  <property name="vocabulary">searchable_review_states_voc</property>
+  <property name="vocabulary">searchable_student_states</property>
  </widget>
  <widget name="search_mode" meta_type="Generic Select Widget">
@@ -24,4 +24,5 @@
    <element value="search_mode"/>
   </property>
+  <property name="is_required">True</property>
   <property name="label">Search for</property>
   <property name="label_edit">Search for</property>
@@ -29,5 +30,5 @@
   <property name="hidden_layout_modes"/>
   <property name="hidden_readonly_layout_modes"/>
-  <property name="vocabulary">search_mode_voc</property>
+  <property name="vocabulary">student_search_mode</property>
   <property name="render_format">radio</property>
  </widget>
Index: /WAeUP_SRP/trunk/profiles/default/vocabularies.xml
===================================================================
--- /WAeUP_SRP/trunk/profiles/default/vocabularies.xml	(revision 595)
+++ /WAeUP_SRP/trunk/profiles/default/vocabularies.xml	(revision 596)
@@ -16,5 +16,7 @@
  <object name="exam_types" meta_type="CPS Vocabulary"/>
  <object name="pin_prefixes" meta_type="CPS Vocabulary"/>
- <object name="search_mode_voc" meta_type="CPS Vocabulary"/>
- <object name="searchable_review_states_voc" meta_type="CPS Vocabulary"/>
+ <object name="student_search_mode" meta_type="CPS Vocabulary"/>
+ <object name="searchable_student_states" meta_type="CPS Vocabulary"/>
+ <object name="academics_search_mode" meta_type="CPS Vocabulary"/>
+ <object name="searchable_academics_states" meta_type="CPS Vocabulary"/>
  </object>
Index: eUP_SRP/trunk/profiles/default/vocabularies/search_mode_voc.xml
===================================================================
--- /WAeUP_SRP/trunk/profiles/default/vocabularies/search_mode_voc.xml	(revision 595)
+++ 	(revision )
@@ -1,12 +1,0 @@
-<?xml version="1.0"?>
-<object name="search_mode_voc" meta_type="CPS Vocabulary">
- <property name="title"></property>
- <property name="title_msgid"></property>
- <property name="description"></property>
- <property name="acl_write_roles">Manager</property>
- <item key="student_id" msgid="">Student Id</item>
- <item key="name" msgid="">Name</item>
- <item key="matric_no" msgid="">Matriculation Number</item>
- <item key="jamb_id" msgid="">Jamb Id</item>
- <item key="review_state" msgid="">Review State</item>
-</object>
Index: eUP_SRP/trunk/profiles/default/vocabularies/searchable_review_states_voc.xml
===================================================================
--- /WAeUP_SRP/trunk/profiles/default/vocabularies/searchable_review_states_voc.xml	(revision 595)
+++ 	(revision )
@@ -1,11 +1,0 @@
-<?xml version="1.0"?>
-<object name="searchable_review_states_voc" meta_type="CPS Vocabulary">
- <property name="title"></property>
- <property name="title_msgid"></property>
- <property name="description"></property>
- <property name="acl_write_roles">Manager</property>
- <item key="admission_applied " msgid="">Applied for Admission</item>
- <item key="created" msgid="">Data Imported</item>
- <item key="admission_rejected" msgid="">Admission rejected</item>
- <item key="admitted" msgid="">Admitted</item>
-</object>
Index: /WAeUP_SRP/trunk/profiles/default/vocabularies/searchable_student_states.xml
===================================================================
--- /WAeUP_SRP/trunk/profiles/default/vocabularies/searchable_student_states.xml	(revision 596)
+++ /WAeUP_SRP/trunk/profiles/default/vocabularies/searchable_student_states.xml	(revision 596)
@@ -0,0 +1,12 @@
+<?xml version="1.0"?>
+<object name="searchable_review_states_voc" meta_type="CPS Vocabulary">
+ <property name="title"></property>
+ <property name="title_msgid"></property>
+ <property name="description"></property>
+ <property name="acl_write_roles">Manager</property>
+ <item key="all" msgid="">All States</item>
+ <item key="admission_applied " msgid="">Applied for Admission</item>
+ <item key="created" msgid="">Data Imported</item>
+ <item key="admission_rejected" msgid="">Admission rejected</item>
+ <item key="admitted" msgid="">Admitted</item>
+</object>
Index: /WAeUP_SRP/trunk/profiles/default/vocabularies/student_search_mode.xml
===================================================================
--- /WAeUP_SRP/trunk/profiles/default/vocabularies/student_search_mode.xml	(revision 596)
+++ /WAeUP_SRP/trunk/profiles/default/vocabularies/student_search_mode.xml	(revision 596)
@@ -0,0 +1,11 @@
+<?xml version="1.0"?>
+<object name="search_mode_voc" meta_type="CPS Vocabulary">
+ <property name="title"></property>
+ <property name="title_msgid"></property>
+ <property name="description"></property>
+ <property name="acl_write_roles">Manager</property>
+ <item key="student_id" msgid="">Student Id</item>
+ <item key="name" msgid="">Name</item>
+ <item key="matric_no" msgid="">Matriculation Number</item>
+ <item key="jamb_id" msgid="">Jamb Id</item>
+</object>
Index: /WAeUP_SRP/trunk/skins/waeup_student/searchStudents.py
===================================================================
--- /WAeUP_SRP/trunk/skins/waeup_student/searchStudents.py	(revision 595)
+++ /WAeUP_SRP/trunk/skins/waeup_student/searchStudents.py	(revision 596)
@@ -54,12 +54,10 @@
 state = ds.get('review_state')
 term = ds.get('search_string')
-if state == " ----- ":
-    state = ''
 err = False
 if not term and what in ('student_edit','jamb_id','name','matric_no'):
-    psm = "You must specify a search string"
+    psm = "You must specify a search string when searching in 'All States'"
     err = True
 elif '*' in term:
-    psm = "You cannot use '*'"
+    psm = "you cannot use the '*' alone"
     err = True
 if err: 
@@ -70,15 +68,21 @@
                              is_manager = is_manager,
                              )
-onlyreview = state and what == "review_state"
+with_review = state != "all"
 items = []
 res = []
 portal_type_query = {'query':['Student','StudentApplication','StudentPersonal']}
 st_queries = ('jamb_id','matric_no','name')
+onlyreview = with_review and not what
 if onlyreview:
     res = catalog(portal_type=portal_type_query,
                   review_state=state)
 elif what == "student_id":
-    res = catalog(portal_type='Student',
-                  id = term.strip())
+    if with_review:
+        res = catalog(portal_type='Student',
+                      id = term.strip(),
+                      review_state=state)
+    else:
+        res = catalog(portal_type='Student',
+                      id = term.strip())
 elif what in st_queries: 
     if what == "jamb_id":
@@ -91,13 +95,25 @@
         pt = portal_type_query
         st = "%s*" % term.strip()
-    try:
-        res = catalog(portal_type=pt,SearchableText=st,)
-    except:
-        return context.students_manager_view(rendered = rend,
-                             psm = 'Searchstring "%s" not allowed' % term,
-                             #psm = "%s, %s" % (psm,ds),
-                             students = items,
-                             is_manager = is_manager,
-                             )
+    if with_review:
+        try:
+            res = catalog(portal_type=pt,SearchableText=st,
+                          review_state=state)
+        except:
+            return context.students_manager_view(rendered = rend,
+                                 psm = 'Searchstring "%s" not allowed' % term,
+                                 #psm = "%s, %s" % (psm,ds),
+                                 students = items,
+                                 is_manager = is_manager,
+                                 )
+    else:
+        try:
+            res = catalog(portal_type=pt,SearchableText=st,)
+        except:
+            return context.students_manager_view(rendered = rend,
+                                 psm = 'Searchstring "%s" not allowed' % term,
+                                 #psm = "%s, %s" % (psm,ds),
+                                 students = items,
+                                 is_manager = is_manager,
+                                 )
             
 if res:
