Index: WAeUP_SRP/ois/profiles_custom/default/actions.xml
===================================================================
--- WAeUP_SRP/ois/profiles_custom/default/actions.xml	(revision 3662)
+++ WAeUP_SRP/ois/profiles_custom/default/actions.xml	(revision 3662)
@@ -0,0 +1,186 @@
+<?xml version="1.0"?>
+<object name="portal_actions" meta_type="CMF Actions Tool">
+ <action-provider name="portal_membership">
+  <action title="Search Members" action_id="member_view" category="user"
+     condition_expr="member"
+     url_expr="string:${portal_url}/search_members_form" visible="False">
+   <permission>View</permission>
+  </action>
+  <action title="Staff Login" action_id="login_staff" category="student"
+     condition_expr="not: member" url_expr="string:${portal_url}/login_staff"
+     visible="True">
+   <permission>View</permission>
+  </action>
+  <action title="Log out" action_id="logout" category="user"
+     condition_expr="member" url_expr="string:${portal_url}/logout"
+     visible="True">
+   <permission>View</permission>
+  </action>
+  <action title="action_my_preferences" action_id="preferences"
+     category="user"
+     condition_expr="python:member and member.has_role(&quot;Member&quot;)"
+     url_expr="string:${portal_url}/member_view?dirname=members&amp;id=${member}"
+     visible="True">
+   <permission>View</permission>
+  </action>
+  <action title="Student Login" action_id="login_student" category="student"
+     condition_expr="python: not member and (portal.portal_url().find('fceokene.waeup.org') &gt;-1)"
+     url_expr="string:${portal_url}/login_student" visible="True">
+   <permission>View</permission>
+  </action>
+  <action title="Log out" action_id="logout_student" category="student"
+     condition_expr="member" url_expr="string:${portal_url}/logout"
+     visible="True"/>
+ </action-provider>
+ <action-provider name="portal_actions">
+  <action title="action_print" action_id="print" category="global_header"
+     condition_expr=""
+     url_expr="string:javascript:if%20(window.print)%20window.print();"
+     visible="False">
+   <permission>View</permission>
+  </action>
+  <action title="Search Portal" action_id="waeup_search" category="global"
+     condition_expr="member" url_expr="string:./waeup_search_form"
+     visible="True">
+   <permission>View</permission>
+  </action>
+  <action title="Import Data" action_id="import" category="global"
+     condition_expr="python:member and member.has_role('Manager')" url_expr="string:${portal_url}/import"
+     visible="True">
+   <permission>View</permission>
+  </action>
+  <action title="Directories" action_id="directories" category="global"
+     condition_expr="python:portal.portal_directories.isSectionOfficer()"
+     url_expr="string:${portal_url}/cpsdirectory_view" visible="False">
+   <permission>View</permission>
+  </action>
+  <action title="Portal Members" action_id="members" category="global"
+     condition_expr="python:portal.portal_directories.members.isSectionOfficer()"
+     url_expr="string:${portal_url}/search_members_form" visible="True">
+   <permission>View</permission>
+  </action>
+  <action title="Home" action_id="home" category="navigation"
+     condition_expr="member" url_expr="string:${portal_url}/campus"
+     visible="True">
+   <permission>View</permission>
+  </action>
+  <action title="Academics" action_id="view_academics" category="navigation"
+     condition_expr="member" url_expr="string:${portal_url}/campus/academics"
+     visible="True">
+   <permission>View</permission>
+  </action>
+  <action title="Hostels" action_id="view_accommodation" category="navigation"
+     condition_expr="python:portal.campus.accommodation.isSectionOfficer()"
+     url_expr="string:${portal_url}/campus/accommodation" visible="True">
+   <permission>View</permission>
+  </action>
+  <action title="Students" action_id="view_students" category="navigation"
+     condition_expr="python:portal.campus.students.isStaff()"
+     url_expr="string:${portal_url}/campus/students" visible="True">
+   <permission>View</permission>
+  </action>
+  <action title="PINs" action_id="view_pins" category="navigation"
+     condition_expr="python:portal.campus.pins.isSectionOfficer()"
+     url_expr="string:${portal_url}/campus/pins" visible="True">
+   <permission>View</permission>
+  </action>
+  <action title="Documents" action_id="view_documents" category="navigation"
+     condition_expr="python:portal.campus.documents.isSectionOfficer()"
+     url_expr="string:${portal_url}/campus/documents"
+     visible="True">
+   <permission>View</permission>
+  </action>
+  
+  <action title="Uploads" action_id="view_uploads" category="navigation"
+     condition_expr="python:portal.campus.uploads.isSectionOfficer()"
+     url_expr="string:${portal_url}/campus/uploads"
+     visible="True">
+   <permission>View</permission>
+  </action>  
+  
+  <action title="Contact" action_id="contact_admin" category="navigation"
+     condition_expr="member"
+     url_expr="string:${portal_url}/contact_admin_form" visible="True">
+   <permission>View</permission>
+  </action>
+  <action title="Enquiries" action_id="support_anon"
+     category="student_navigation" condition_expr="not:member"
+     url_expr="string:${portal_url}/contact_admin_form" visible="True">
+   <permission>View</permission>
+  </action>
+  <action title="Enquiries" action_id="support" category="student_navigation"
+     condition_expr="member" url_expr="string:${portal_url}/support_form"
+     visible="True">
+   <permission>View</permission>
+  </action>
+  <action title="Unchecked Items" action_id="unchecked" category="object"
+     condition_expr="python:member and 'academics' in object_url"
+     url_expr="string:./unchecked" visible="True">
+   <permission>Modify portal content</permission>
+  </action>
+  <action title="PCE Screening Test" action_id="apply_pce_admission"
+     category="student" condition_expr="not:member"
+     url_expr="string:${portal_url}/apply_admission/pce" visible="False">
+   <permission>View</permission>
+  </action>
+  <action title="PRE-NCE Application" action_id="apply_prence_admission"
+     category="student" condition_expr="not:member"
+     url_expr="string:${portal_url}/apply_admission/prence" visible="False">
+   <permission>View</permission>
+  </action>
+  <action title="Check Admission 06/07" action_id="check_admission"
+     category="student" condition_expr="not:member"
+     url_expr="string:${portal_url}/check_admission" visible="False">
+   <permission>View</permission>
+  </action>
+  <action title="Change Password" action_id="change_password"
+     category="student" condition_expr="member"
+     url_expr="string:${portal_url}/change_password" visible="True">
+   <permission>View</permission>
+  </action>
+  <action title="Home" action_id="students_home" category="student_navigation"
+     condition_expr="not:member" url_expr="string:${portal_url}"
+     visible="True">
+   <permission>View</permission>
+  </action>
+  <action title="Prospectus" action_id="prospectus"
+     category="student_navigation" condition_expr="member"
+     url_expr="string:${portal_url}/campus/academics" visible="True">
+   <permission>View</permission>
+  </action>
+  <action title="My Study" action_id="registration"
+     category="student_navigation" condition_expr="member"
+     url_expr="string:${portal_url}/campus/students" visible="True">
+   <permission>View</permission>
+  </action>
+  <action title="My Accommodation" action_id="reserve_accommodation"
+     category="student_navigation" condition_expr="member"
+     url_expr="string:${portal_url}/campus/students/${member}/reserve_accommodation" visible="True"/>
+  <action title="My Payments" action_id="payments"
+     category="student_navigation" condition_expr="member"
+     url_expr="string:${portal_url}/campus/students/${member}/payments"
+     visible="True"/>
+  <action title="Register Courses" action_id="register_courses"
+     category="student" condition_expr="member"
+     url_expr="string:${portal_url}/register_courses" visible="False"/>
+  <action title="Request Transfer" action_id="request_transfer"
+     category="student"
+     condition_expr="python: here.isStudent() and here.getStudentWorkflowInfo()['tr']"
+     url_expr="string:${portal_url}/request_transfer" visible="False"/>
+ </action-provider>
+ <action-provider name="portal_registration">
+  <action title="Join" action_id="join" category="user"
+     condition_expr="python:portal.portal_registration.enable_portal_joining and not member"
+     url_expr="string:${portal_url}/join_form" visible="True">
+   <permission>Add portal member</permission>
+  </action>
+ </action-provider>
+ <action-provider name="portal_workflow"/>
+ <action-provider name="portal_properties">
+  <action title="Portal Base Data" action_id="configPortal"
+     category="global" condition_expr=""
+     url_expr="string:${portal_url}/config_form" visible="True">
+   <permission>Manage portal</permission>
+  </action>
+ </action-provider>
+</object>
Index: WAeUP_SRP/ois/profiles_custom/default/layouts/acco_hall.xml
===================================================================
--- WAeUP_SRP/ois/profiles_custom/default/layouts/acco_hall.xml	(revision 3662)
+++ WAeUP_SRP/ois/profiles_custom/default/layouts/acco_hall.xml	(revision 3662)
@@ -0,0 +1,243 @@
+<?xml version="1.0"?>
+<?xml-stylesheet type="text/xsl" href="layout.xsl"?>
+<object name="acco_hall" meta_type="CPS Layout">
+ <property name="layout_create_method"></property>
+ <property name="layout_edit_method"></property>
+ <property name="layout_view_method"></property>
+ <property name="style_prefix">layout_waeup_</property>
+ <property name="flexible_widgets"/>
+ <property name="validate_values_expr"></property>
+
+ <widget name="sort_id" meta_type="Int Widget">
+  <property name="fields">
+   <element value="sort_id"/>
+  </property>
+  <property name="is_required">True</property>
+  <property name="label">Sort Id</property>
+  <property name="label_edit">Sort Id</property>
+  <property name="is_limited">True</property>
+  <property name="min_value">1</property>
+  <property name="max_value">1000</property>
+ </widget>
+
+ <widget name="beds_for_pre" meta_type="MultiSelect Widget">
+  <property name="fields">
+   <element value="beds_for_pre"/>
+  </property>
+  <property name="is_required">False</property>
+  <property name="label">Beds for PRE-NCE Students</property>
+  <property name="label_edit">Beds for PRE-NCE Students</property>
+  <property name="help">Name the bedspaces for PRE-NCE year students.
+                        Attention: The bed letters must not exceed the number of beds per room.</property>
+  <property name="readonly_layout_modes"/>
+  <property name="hidden_layout_modes"/>
+  <property name="hidden_readonly_layout_modes"/>
+  <property name="vocabulary">waeup_bed_letters</property>
+ </widget>
+
+ <widget name="beds_for_final" meta_type="MultiSelect Widget">
+  <property name="fields">
+   <element value="beds_for_final"/>
+  </property>
+  <property name="is_required">False</property>
+  <property name="label">Beds for NCE-3 Students</property>
+  <property name="label_edit">Beds for NCE-3 Students</property>
+  <property name="help">Name the bedspaces for final year students.
+                        Attention: The bed letters must not exceed the number of beds per room.</property>
+  <property name="readonly_layout_modes"/>
+  <property name="hidden_layout_modes"/>
+  <property name="hidden_readonly_layout_modes"/>
+  <property name="vocabulary">waeup_bed_letters</property>
+ </widget>
+ <widget name="beds_for_fresh" meta_type="MultiSelect Widget">
+  <property name="fields">
+   <element value="beds_for_fresh"/>
+  </property>
+  <property name="is_required">False</property>
+  <property name="label">Beds for NCE-1 Students</property>
+  <property name="label_edit">Beds for NCE-1 Students</property>
+  <property name="help">Name the beds for first year students.
+                        Attention: The bed letters must not exceed the number of beds per room.</property>
+  <property name="readonly_layout_modes"/>
+  <property name="hidden_layout_modes"/>
+  <property name="hidden_readonly_layout_modes"/>
+  <property name="vocabulary">waeup_bed_letters</property>
+ </widget>
+ <widget name="beds_per_room" meta_type="Int Widget">
+  <property name="fields">
+   <element value="beds_per_room"/>
+  </property>
+    <property name="is_required">False</property>
+    <property name="label">Beds per Room</property>
+    <property name="label_edit">Beds per Room</property>
+    <property name="is_limited">True</property>
+    <property name="min_value">1</property>
+    <property name="max_value">10</property>
+  </widget>
+<widget name="Title" meta_type="String Widget">
+ <property name="title">Title</property>
+ <property name="fields">
+  <element value="Title"/>
+ </property>
+  <property name="is_required">False</property>
+  <property name="label">Hall Name</property>
+  <property name="label_edit">Hall Name</property>
+  <property name="display_width">40</property>
+  <property name="size_max">40</property>
+ </widget>
+  <widget name="nr_of_blocks" meta_type="Int Widget">
+  <property name="title">No of Blocks (unused)</property>
+    <property name="fields">
+      <element value="nr_of_blocks"/>
+    </property>
+    <property name="is_required">False</property>
+    <property name="label">No of Blocks (unused)</property>
+    <property name="label_edit">No of Blocks (unused)</property>
+    <property name="is_limited">True</property>
+    <property name="min_value">1</property>
+    <property name="max_value">10</property>
+  </widget>
+ <widget name="nr_of_floors" meta_type="Int Widget">
+  <property name="fields">
+   <element value="nr_of_floors"/>
+  </property>
+  <property name="is_required">False</property>
+  <property name="label">No of Floors </property>
+  <property name="label_edit">No of Floors</property>
+    <property name="is_limited">True</property>
+    <property name="min_value">1</property>
+    <property name="max_value">5</property>
+ </widget>
+<widget name="blocks_for_female" meta_type="MultiSelect Widget">
+ <property name="title">Blocks for Female</property>
+ <property name="fields">
+  <element value="blocks_for_female"/>
+ </property>
+ <property name="is_required">False</property>
+ <property name="label">Blocks for Female</property>
+ <property name="label_edit">Blocks for Female</property>
+ <property name="readonly_layout_modes"/>
+ <property name="hidden_layout_modes"/>
+ <property name="hidden_readonly_layout_modes"/>
+<property name="vocabulary">waeup_block_letters</property>
+</widget>
+<widget name="blocks_for_male" meta_type="MultiSelect Widget">
+ <property name="title">Blocks for Male</property>
+ <property name="fields">
+  <element value="blocks_for_male"/>
+ </property>
+ <property name="is_required">False</property>
+ <property name="label">Blocks for Male</property>
+ <property name="label_edit">Blocks for Male</property>
+ <property name="readonly_layout_modes"/>
+ <property name="hidden_layout_modes"/>
+ <property name="hidden_readonly_layout_modes"/>
+<property name="vocabulary">waeup_block_letters</property>
+</widget>
+ <widget name="reserved_rooms" meta_type="WAeUPReservedRooms Widget">
+  <property name="title">Reserved Rooms</property>
+  <property name="fields">
+   <element value="reserved_rooms"/>
+  </property>
+  <property name="label">Reserved Rooms</property>
+  <property name="label_edit">Reserved Rooms</property>
+  <property
+     name="help">Enter the reserved room numbers separeted by comma.</property>
+  <property name="readonly_layout_modes"/>
+  <property name="hidden_layout_modes"/>
+  <property name="hidden_readonly_layout_modes"/>
+ </widget>
+ <widget name="rooms_per_floor" meta_type="Int Widget">
+  <property name="fields">
+   <element value="rooms_per_floor"/>
+  </property>
+  <property name="is_required">False</property>
+  <property name="label">Rooms per Floor</property>
+  <property name="label_edit">Rooms per Floor</property>
+    <property name="is_limited">True</property>
+    <property name="min_value">1</property>
+    <property name="max_value">500</property>
+ </widget>
+ <widget name="text" meta_type="Text Widget">
+  <property name="fields">
+   <element value="text"/>
+  </property>
+  <property name="label">Text</property>
+  <property name="label_edit">Text</property>
+  <property name="help">Short Description</property>
+  <property name="is_i18n">True</property>
+  <property name="hidden_layout_modes"/>
+  <property name="css_class">description</property>
+  <property name="width">72</property>
+ </widget>
+ <widget name="special_handling" meta_type="Select Widget">
+ <property name="title">Special Handling code</property>
+ <property name="fields">
+  <element value="special_handling"/>
+ </property>
+ <property name="is_required">False</property>
+ <property name="label">Special Handling Code</property>
+ <property name="label_edit">Special Handling Code</property>
+ <property name="readonly_layout_modes"/>
+ <property name="hidden_layout_modes"/>
+ <property name="hidden_readonly_layout_modes"/>
+<property name="vocabulary">acco_special_handling</property>
+</widget>
+<widget name="maintenance_code" meta_type="Select Widget">
+ <property name="title">Maintenance Fee Prefix</property>
+ <property name="fields">
+  <element value="maintenance_code"/>
+ </property>
+ <property name="is_required">False</property>
+ <property name="label">Maintenance Fee Prefix</property>
+ <property name="label_edit">Maintenance Fee Prefix</property>
+ <property name="readonly_layout_modes"/>
+ <property name="hidden_layout_modes"/>
+ <property name="hidden_readonly_layout_modes"/>
+<property name="vocabulary">pin_prefixes</property>
+</widget>
+<table>
+  <row>
+   <cell name="Title"/>
+  </row>
+  <row>
+   <cell name="sort_id"/>
+  </row>
+  <row>
+   <cell name="maintenance_code"/>
+  </row>
+  <row>
+   <cell name="text"/>
+  </row>
+  <row>
+   <cell name="blocks_for_female"/>
+  </row>
+  <row>
+   <cell name="blocks_for_male"/>
+  </row>
+  <row>
+   <cell name="nr_of_blocks"/>
+  </row>
+  <row>
+   <cell name="nr_of_floors"/>
+  </row>
+  <row>
+   <cell name="rooms_per_floor"/>
+  </row>
+  <row>
+   <cell name="beds_per_room"/>
+  </row>
+  <row>
+   <cell name="beds_for_pre"/>
+  </row>  
+  <row>
+   <cell name="beds_for_fresh"/>
+  </row>
+  <row>
+   <cell name="beds_for_final"/>
+  </row>
+  <row>
+   <cell name="reserved_rooms"/>
+  </row>
+ </table>
+</object>
Index: WAeUP_SRP/ois/profiles_custom/default/layouts/members.xml
===================================================================
--- WAeUP_SRP/ois/profiles_custom/default/layouts/members.xml	(revision 3662)
+++ WAeUP_SRP/ois/profiles_custom/default/layouts/members.xml	(revision 3662)
@@ -0,0 +1,171 @@
+<?xml version="1.0"?>
+<?xml-stylesheet type="text/xsl" href="layout.xsl"?>
+<object name="members" meta_type="CPS Layout">
+ <property name="layout_create_method"></property>
+ <property name="layout_edit_method"></property>
+ <property name="layout_view_method"></property>
+ <property name="style_prefix">layout_waeup_dir_</property>
+ <property name="flexible_widgets"/>
+ <property name="validate_values_expr"></property>
+ <widget name="confirm" meta_type="Password Widget">
+  <property name="fields">
+   <element value="confirm"/>
+  </property>
+  <property name="label">label_password_confirm</property>
+  <property name="label_edit">label_password_confirm</property>
+  <property name="description">Password confirmation when editing</property>
+  <property name="is_i18n">True</property>
+  <property name="hidden_layout_modes">
+   <element value="view"/>
+   <element value="search"/>
+  </property>
+  <property name="hidden_readonly_layout_modes">
+   <element value="edit"/>
+  </property>
+  <property name="hidden_empty">True</property>
+  <property name="display_width">20</property>
+  <property name="size_max">0</property>
+  <property name="password_widget">password</property>
+ </widget>
+ <widget name="email" meta_type="Email Widget">
+  <property name="fields">
+   <element value="email"/>
+  </property>
+  <property name="is_required">True</property>
+  <property name="label">Email</property>
+  <property name="label_edit">Email</property>
+  <property name="description"></property>
+  <property name="is_i18n">True</property>
+  <property name="size_max">0</property>
+ </widget>
+ <widget name="fullname" meta_type="String Widget">
+  <property name="fields">
+   <element value="fullname"/>
+  </property>
+  <property name="label">Full Name</property>
+  <property name="label_edit">Full Name</property>
+  <property name="description"></property>
+  <property name="is_i18n">True</property>
+  <property name="hidden_layout_modes">
+   <element value="create"/>
+   <element value="edit"/>
+   <element value="search"/>
+  </property>
+ </widget>
+ <widget name="givenName" meta_type="String Widget">
+  <property name="fields">
+   <element value="givenName"/>
+  </property>
+  <property name="label">First Name</property>
+  <property name="label_edit">First Name</property>
+  <property name="description"></property>
+  <property name="is_i18n">True</property>
+ </widget>
+ <widget name="groups" meta_type="MultiSelect Widget">
+  <property name="fields">
+   <element value="groups"/>
+  </property>
+  <property name="label">Groups</property>
+  <property name="label_edit">Groups</property>
+  <property name="description"></property>
+  <property name="is_i18n">True</property>
+  <property name="vocabulary">groups</property>
+  <property name="size">7</property>
+ </widget>
+ <widget name="homeless" meta_type="Boolean Widget">
+  <property name="fields">
+   <element value="homeless"/>
+  </property>
+  <property name="label">cpsdir_label_homeless</property>
+  <property name="label_edit">cpsdir_label_homeless</property>
+  <property name="description">Homeless ?</property>
+  <property name="help">cpsdir_help_homeless</property>
+  <property name="is_i18n">True</property>
+  <property name="label_false">cpsschemas_label_true</property>
+  <property name="label_true">cpsschemas_label_false</property>
+ </widget>
+ <widget name="id" meta_type="User Identifier Widget">
+  <property name="fields">
+   <element value="id"/>
+  </property>
+  <property name="is_required">True</property>
+  <property name="label">User Name</property>
+  <property name="label_edit">User Name</property>
+  <property name="description"></property>
+  <property name="is_i18n">True</property>
+  <property name="readonly_layout_modes">
+   <element value="edit"/>
+  </property>
+ </widget>
+ <widget name="password" meta_type="WAeUP Password Widget">
+  <property name="fields">
+   <element value="password"/>
+  </property>
+  <property name="label">label_password</property>
+  <property name="label_edit">label_password</property>
+  <property name="description">Member password</property>
+  <property name="is_i18n">True</property>
+  <property name="hidden_layout_modes">
+   <element value="view"/>
+   <element value="search"/>
+  </property>
+  <property name="hidden_readonly_layout_modes">
+   <element value="edit"/>
+  </property>
+  <property name="hidden_empty">True</property>
+  <property name="display_width">20</property>
+  <property name="size_max">0</property>
+  <property name="check_words">fceokene</property>
+ </widget>
+<widget name="roles" meta_type="Generic MultiSelect Widget">
+ <property name="fields">
+  <element value="roles"/>
+ </property>
+ <property name="label">Roles</property>
+ <property name="label_edit">Roles</property>
+ <property name="description"></property>
+ <property name="is_i18n">True</property>
+ <property name="readonly_layout_modes"/>
+ <property name="hidden_layout_modes"/>
+ <property name="hidden_readonly_layout_modes"/>
+ <property name="hidden_if_expr">not: context/isSectionManager</property>
+ <property name="vocabulary">global_roles</property>
+ <property name="translated">True</property>
+ <property name="render_format">checkbox</property>
+</widget>
+ <widget name="sn" meta_type="String Widget">
+  <property name="fields">
+   <element value="sn"/>
+  </property>
+  <property name="is_required">True</property>
+  <property name="label">Last Name</property>
+  <property name="label_edit">Last Name</property>
+  <property name="description"></property>
+  <property name="is_i18n">True</property>
+ </widget>
+ <table>
+  <row>
+   <cell name="id" ncols="2"/>
+  </row>
+  <row>
+   <cell name="password" ncols="2"/>
+  </row>
+  <row>
+   <cell name="confirm" ncols="2"/>
+  </row>
+  <row>
+   <cell name="givenName"/>
+   <cell name="sn"/>
+  </row>
+  <row>
+   <cell name="fullname" ncols="2"/>
+  </row>
+  <row>
+   <cell name="email" ncols="2"/>
+  </row>
+  <row>
+   <cell name="roles"/>
+   <cell name="groups"/>
+  </row>
+ </table>
+</object>
Index: WAeUP_SRP/ois/profiles_custom/default/layouts/student_accommodation_fe.xml
===================================================================
--- WAeUP_SRP/ois/profiles_custom/default/layouts/student_accommodation_fe.xml	(revision 3662)
+++ WAeUP_SRP/ois/profiles_custom/default/layouts/student_accommodation_fe.xml	(revision 3662)
@@ -0,0 +1,154 @@
+<?xml version="1.0"?>
+<?xml-stylesheet type="text/xsl" href="layout.xsl"?>
+<object name="student_accommodation_fe" meta_type="CPS Layout">
+ <property name="layout_create_method"></property>
+ <property name="layout_edit_method"></property>
+ <property name="layout_view_method"></property>
+ <property name="style_prefix">layout_student_acco_</property>
+ <property name="flexible_widgets"/>
+ <property name="validate_values_expr"></property>
+ <widget name="acco_maint_date" meta_type="DateTime Widget">
+  <property name="title">Maintenance Payment Date</property>
+  <property name="fields">
+   <element value="acco_maint_date"/>
+  </property>
+  <property name="label">Maintenance Payment Date</property>
+  <property name="label_edit">Maintenance Payment Date</property>
+  <property name="readonly_layout_modes"/>
+  <property name="hidden_layout_modes">
+   <element value="create"/>
+   <element value="edit"/>
+  </property>
+  <property name="view_format">%d/%m/%Y</property>
+  <property name="time_setting">False</property>
+  <property name="hidden_readonly_layout_modes"/>
+ </widget>
+ <widget name="acco_maint_sc_pin" meta_type="Scratchcard Pin Widget">
+  <property name="title">Access Code</property>
+  <property name="fields">
+   <element value="acco_maint_sc_pin"/>
+  </property>
+  <property name="label">Access Code</property>
+  <property name="label_edit">Access Code</property>
+  <property name="readonly_layout_modes"/>
+  <property name="hidden_layout_modes">
+   <element value="create"/>
+  </property>
+  <property name="hidden_readonly_layout_modes"/>
+  <property name="prefix">HOM</property>
+ </widget>
+ <widget name="acco_maint_fee" meta_type="String Widget">
+  <property name="title">Maintenance Fee</property>
+  <property name="fields">
+   <element value="acco_maint_fee"/>
+  </property>
+  <property name="label">Maintenance Fee</property>
+  <property name="label_edit">Maintenance Fee</property>
+  <property name="readonly_layout_modes">
+   <element value="edit"/>
+  </property>
+  <property name="hidden_layout_modes">
+   <element value="create"/>
+   <element value="edit"/>
+  </property>
+  <property name="hidden_readonly_layout_modes"/>
+ </widget> 
+ <widget name="acco_maint_pay_id" meta_type="String Widget">
+  <property name="title">Online Payment Id</property>
+  <property name="fields">
+   <element value="acco_maint_pay_id"/>
+  </property>
+  <property name="label">Online Payment Id</property>
+  <property name="label_edit">Online Payment Id</property>
+  <property name="readonly_layout_modes">
+   <element value="create"/>
+   <element value="edit"/>
+  </property>
+  <property name="hidden_layout_modes">
+   <element value="create"/>
+   <element value="edit"/>
+  </property>
+  <property name="hidden_readonly_layout_modes"/>
+ </widget>
+ <widget name="acco_res_date" meta_type="DateTime Widget">
+  <property name="title">Hostel Application Date</property>
+  <property name="fields">
+   <element value="acco_res_date"/>
+  </property>
+  <property name="label">Hostel Application Date</property>
+  <property name="label_edit">Hostel Application Date</property>
+  <property name="readonly_layout_modes">
+   <element value="edit"/>
+  </property>
+  <property name="hidden_layout_modes">
+   <element value="create"/>
+  </property>
+  <property name="hidden_readonly_layout_modes"/>
+  <property name="view_format">%d/%m/%Y</property>
+  <property name="time_setting">False</property>
+ </widget>
+ <widget name="bed" meta_type="Method Widget">
+  <property name="title">Bed</property>
+  <property name="fields">
+   <element value="bed"/>
+  </property>
+  <property name="label">Bed</property>
+  <property name="label_edit">Bed</property>
+  <property name="readonly_layout_modes">
+   <element value="edit"/>
+  </property>
+  <property name="hidden_layout_modes">
+   <element value="create"/>
+  </property>
+  <property name="hidden_readonly_layout_modes"/>
+  <property name="render_method">getFormattedBed</property>
+ </widget>
+ <widget name="session" meta_type="String Widget">
+  <property name="title">Session</property>
+  <property name="fields">
+   <element value="session"/>
+  </property>
+  <property name="label">Session</property>
+  <property name="label_edit">Session</property>
+  <property name="readonly_layout_modes">
+   <element value="edit"/>
+  </property>
+  <property name="hidden_layout_modes">
+   <element value="create"/>
+  </property>
+  <property name="hidden_readonly_layout_modes"/>
+ </widget>
+ <widget name="student_status" meta_type="String Widget">
+  <property name="title">Bed Type</property>
+  <property name="fields">
+   <element value="student_status"/>
+  </property>
+  <property name="label">Bed Type</property>
+  <property name="label_edit">Bed Type</property>
+  <property name="readonly_layout_modes">
+   <element value="edit"/>
+  </property>
+  <property name="hidden_layout_modes">
+   <element value="create"/>
+  </property>
+  <property name="hidden_readonly_layout_modes"/>
+ </widget>
+ <table>
+  <row>
+   <cell name="bed"/>
+  </row>
+  <row>
+   <cell name="acco_res_date"/>
+  </row>
+  <row>
+   <cell name="acco_maint_pay_id"/>
+  </row>
+  <row>
+   <cell name="acco_maint_date"/>
+  </row>
+  <row>
+   <cell name="acco_maint_fee"/>
+  </row>  
+ </table>
+</object>
+
Index: WAeUP_SRP/ois/profiles_custom/default/layouts/student_clearance.xml
===================================================================
--- WAeUP_SRP/ois/profiles_custom/default/layouts/student_clearance.xml	(revision 3662)
+++ WAeUP_SRP/ois/profiles_custom/default/layouts/student_clearance.xml	(revision 3662)
@@ -0,0 +1,923 @@
+<?xml version="1.0"?>
+<?xml-stylesheet type="text/xsl" href="layout.xsl"?>
+<object name="student_clearance" meta_type="CPS Layout">
+ <property name="layout_create_method">layout_enter_access_code</property>
+ <property name="layout_edit_method"></property>
+ <property name="layout_view_method"></property>
+ <property name="style_prefix">layout_clearance_</property>
+ <property name="flexible_widgets"/>
+ <property name="validate_values_expr"></property>
+
+ <widget name="firstname" meta_type="String Widget">
+  <property name="title">First Name</property>
+  <property name="fields">
+   <element value="firstname"/>
+  </property>
+  <property name="is_required">False</property>
+  <property name="label">First Name</property>
+  <property name="label_edit">First Name</property>
+  <property
+     name="help"></property>
+  <property name="readonly_layout_modes"/>
+  <property name="hidden_layout_modes">
+   <element value="create"/>
+  </property>
+  <property name="hidden_readonly_layout_modes"/>
+ </widget>
+
+ <widget name="middlename" meta_type="String Widget">
+  <property name="title">Middle Name</property>
+  <property name="fields">
+   <element value="middlename"/>
+  </property>
+  <property name="label">Middle Name</property>
+  <property name="label_edit">Middle Name</property>
+  <property
+     name="help"></property>
+  <property name="readonly_layout_modes"/>
+  <property name="hidden_layout_modes">
+   <element value="create"/>
+  </property>
+  <property name="hidden_readonly_layout_modes"/>
+ </widget>
+
+ <widget name="lastname" meta_type="String Widget">
+  <property name="title">Last Name (Surname)</property>
+  <property name="fields">
+   <element value="lastname"/>
+  </property>
+  <property name="is_required">False</property>
+  <property name="label">Last Name (Surname)</property>
+  <property name="label_edit">Last Name (Surname)</property>
+  <property
+     name="help"></property>
+  <property name="readonly_layout_modes"/>
+  <property name="hidden_layout_modes">
+   <element value="create"/>
+  </property>
+  <property name="hidden_readonly_layout_modes"/>
+ </widget>
+
+
+
+ <widget name="acc_inst" meta_type="File Image Widget">
+  <property name="title">Accepted by Institution</property>
+  <property name="fields">
+   <element value="acc_inst"/>
+  </property>
+  <property name="label">Accepted by Institution</property>
+  <property name="label_edit">Accepted by Institution</property>
+  <property name="readonly_layout_modes"/>
+  <property name="hidden_layout_modes">
+   <element value="create"/>
+  </property>
+  <property name="hidden_readonly_layout_modes"/>
+  <property name="size_max">1000000</property>
+  <property name="display_width">800</property>
+  <property name="display_height">1200</property>
+  <property name="allow_resize">True</property>
+ </widget>
+ <widget name="acc_let" meta_type="File Image Widget">
+  <property name="title">Acceptance Letter </property>
+  <property name="fields">
+   <element value="acc_let"/>
+  </property>
+  <property name="label">Acceptance Letter </property>
+  <property name="label_edit">Acceptance Letter </property>
+  <property name="readonly_layout_modes"/>
+  <property name="hidden_layout_modes">
+   <element value="create"/>
+  </property>
+  <property name="hidden_readonly_layout_modes"/>
+  <property name="size_max">1000000</property>
+  <property name="display_width">800</property>
+  <property name="display_height">1200</property>
+  <property name="allow_resize">True</property>
+ </widget>
+ <widget name="age_dec" meta_type="File Image Widget">
+  <property name="title">Age Declaration</property>
+  <property name="fields">
+   <element value="age_dec"/>
+  </property>
+  <property name="label">Age Declaration</property>
+  <property name="label_edit">Age Declaration</property>
+  <property name="readonly_layout_modes"/>
+  <property name="hidden_layout_modes">
+   <element value="create"/>
+  </property>
+  <property name="hidden_readonly_layout_modes"/>
+  <property name="size_max">1000000</property>
+  <property name="display_width">800</property>
+  <property name="display_height">1200</property>
+  <property name="allow_resize">True</property>
+ </widget>
+ <widget name="alr_date" meta_type="DateTime Widget">
+  <property name="title">Exam Date</property>
+  <property name="fields">
+   <element value="alr_date"/>
+  </property>
+  <property name="label">Exam Date</property>
+  <property name="label_edit">Exam Date</property>
+  <property name="readonly_layout_modes"/>
+  <property name="hidden_layout_modes">
+   <element value="create"/>
+  </property>
+  <property name="hidden_readonly_layout_modes"/>
+  <property name="view_format">%d/%m/%Y</property>
+  <property name="time_setting">False</property>
+ </widget>
+ <widget name="alr_fname" meta_type="String Widget">
+  <property name="title">Full Name</property>
+  <property name="fields">
+   <element value="alr_fname"/>
+  </property>
+  <property name="label">Full Name</property>
+  <property name="label_edit">Full Name</property>
+  <property name="description">Advanced Level Data</property>
+  <property
+     name="help"></property>
+  <property name="readonly_layout_modes"/>
+  <property name="hidden_layout_modes">
+   <element value="create"/>
+  </property>
+  <property name="hidden_readonly_layout_modes"/>
+ </widget>
+ <widget name="alr_no" meta_type="String Widget">
+  <property name="title">Exam Number</property>
+  <property name="fields">
+   <element value="alr_no"/>
+  </property>
+  <property name="label">Exam Number</property>
+  <property name="label_edit">Exam Number</property>
+  <property name="readonly_layout_modes"/>
+  <property name="hidden_layout_modes">
+   <element value="create"/>
+  </property>
+  <property name="hidden_readonly_layout_modes"/>
+ </widget>
+ <widget name="alr_results" meta_type="WAeUp Results Widget">
+  <property name="title">Results</property>
+  <property name="fields">
+   <element value="alr_results"/>
+  </property>
+  <property name="label">Results</property>
+  <property name="label_edit">Results</property>
+  <property name="hidden_layout_modes">
+   <element value="create"/>
+  </property>
+  <property name="hidden_readonly_layout_modes"/>
+ </widget>
+ <widget name="alr_scan" meta_type="File Image Widget">
+  <property name="title">Scan of Advanced Level Result</property>
+  <property name="fields">
+   <element value="alr_scan"/>
+  </property>
+  <property name="label">Scan of Advanced Level Result</property>
+  <property name="label_edit">Scan of Advanced Level Result</property>
+  <property name="readonly_layout_modes"/>
+  <property name="hidden_layout_modes">
+   <element value="create"/>
+  </property>
+  <property name="hidden_readonly_layout_modes"/>
+  <property name="size_max">1000000</property>
+  <property name="display_width">800</property>
+  <property name="display_height">1200</property>
+  <property name="allow_resize">True</property>
+ </widget>
+ <widget name="birth_certificate" meta_type="File Image Widget">
+  <property name="title">Birth Certificate</property>
+  <property name="fields">
+   <element value="birth_certificate"/>
+  </property>
+  <property name="label">Birth Certificate</property>
+  <property name="label_edit">Birth Certificate</property>
+  <property name="description">Other Documents</property>
+  <property name="readonly_layout_modes"/>
+  <property name="hidden_layout_modes">
+   <element value="create"/>
+  </property>
+  <property name="hidden_readonly_layout_modes"/>
+  <property name="size_max">1000000</property>
+  <property name="display_width">800</property>
+  <property name="display_height">1200</property>
+  <property name="allow_resize">True</property>
+ </widget>
+ <widget name="birthday" meta_type="DateTime Widget">
+  <property name="title">Date of Birth</property>
+  <property name="fields">
+   <element value="birthday"/>
+  </property>
+  <property name="label">Date of Birth</property>
+  <property name="label_edit">Date of Birth (dd/mm/yyyy)</property>
+  <property name="readonly_layout_modes"/>
+  <property name="hidden_layout_modes">
+   <element value="create"/>
+  </property>
+  <property name="hidden_readonly_layout_modes"/>
+  <property name="view_format">%d/%m/%Y</property>
+  <property name="time_setting">False</property>
+ </widget>
+ <widget name="cert" meta_type="File Image Widget">
+  <property name="title">Certificate</property>
+  <property name="fields">
+   <element value="cert"/>
+  </property>
+  <property name="label">Certificate</property>
+  <property name="label_edit">Certificate</property>
+  <property name="readonly_layout_modes"/>
+  <property name="hidden_layout_modes">
+   <element value="create"/>
+  </property>
+  <property name="hidden_readonly_layout_modes"/>
+  <property name="size_max">1000000</property>
+  <property name="display_width">800</property>
+  <property name="display_height">1200</property>
+  <property name="allow_resize">True</property>
+ </widget>
+ <widget name="clr_ac_pin" meta_type="Scratchcard Pin Widget">
+  <property name="title">Access Code</property>
+  <property name="fields">
+   <element value="clr_ac_pin"/>
+  </property>
+  <property name="label">Access Code</property>
+  <property name="label_edit">Access Code</property>
+  <property name="readonly_layout_modes">
+   <element value="edit"/>
+  </property>
+  <property name="hidden_layout_modes">
+   <element value="create"/>
+  </property>
+  <property name="hidden_readonly_layout_modes"/>
+  <property name="prefix">CLR</property>
+ </widget>
+ <widget name="cred" meta_type="File Image Widget">
+  <property name="title">Credential</property>
+  <property name="fields">
+   <element value="cred"/>
+  </property>
+  <property name="label">Credential</property>
+  <property name="label_edit">Credential</property>
+  <property name="readonly_layout_modes"/>
+  <property name="hidden_layout_modes">
+   <element value="create"/>
+  </property>
+  <property name="hidden_readonly_layout_modes"/>
+  <property name="size_max">1000000</property>
+  <property name="display_width">800</property>
+  <property name="display_height">1200</property>
+  <property name="allow_resize">True</property>
+ </widget>
+ <widget name="def_adm" meta_type="Boolean Widget">
+  <property name="title">Deferment of Admission</property>
+  <property name="fields">
+   <element value="def_adm"/>
+  </property>
+  <property name="label">Deferment of Admission</property>
+  <property name="label_edit">Deferment of Admission</property>
+  <property
+     name="help"></property>
+  <property name="readonly_layout_modes"/>
+  <property name="hidden_layout_modes">
+   <element value="create"/>
+  </property>
+  <property name="hidden_readonly_layout_modes"/>
+  <property name="render_format">radio</property>
+ </widget>
+ <widget name="entry_date" meta_type="DateTime Widget">
+  <property name="title">Entry Date</property>
+  <property name="fields">
+   <element value="entry_date"/>
+  </property>
+  <property name="label">Entry Date</property>
+  <property name="label_edit">Entry Date</property>
+  <property name="readonly_layout_modes">
+   <element value="edit"/>
+  </property>
+  <property name="hidden_layout_modes">
+   <element value="create"/>
+  </property>
+  <property name="hidden_readonly_layout_modes"/>
+  <property name="view_format">%d/%m/%Y</property>
+  <property name="time_setting">False</property>
+  </widget>
+ <widget name="request_date" meta_type="DateTime Widget">
+  <property name="title">Request Date</property>
+  <property name="fields">
+   <element value="request_date"/>
+  </property>
+  <property name="label">Request Date</property>
+  <property name="label_edit">Request Date</property>
+  <property name="readonly_layout_modes">
+   <element value="edit"/>
+  </property>
+  <property name="hidden_layout_modes">
+   <element value="create"/>
+  </property>
+  <property name="hidden_readonly_layout_modes"/>
+  <property name="view_format">%d/%m/%Y</property>
+  <property name="time_setting">False</property>
+ </widget>
+ <widget name="cleared_date" meta_type="DateTime Widget">
+  <property name="title">cleared Date</property>
+  <property name="fields">
+   <element value="cleared_date"/>
+  </property>
+  <property name="label">Cleared Date</property>
+  <property name="label_edit">Cleared Date</property>
+  <property name="readonly_layout_modes">
+   <element value="edit"/>
+  </property>
+  <property name="hidden_layout_modes">
+   <element value="create"/>
+  </property>
+  <property name="hidden_readonly_layout_modes"/>
+  <property name="view_format">%d/%m/%Y</property>
+  <property name="time_setting">False</property>
+ </widget>
+ <widget name="evid" meta_type="File Image Widget">
+  <property name="title">Evidence of Name</property>
+  <property name="fields">
+   <element value="evid"/>
+  </property>
+  <property name="label">Evidence of Name</property>
+  <property name="label_edit">Evidence of Name</property>
+  <property name="readonly_layout_modes"/>
+  <property name="hidden_layout_modes">
+   <element value="create"/>
+  </property>
+  <property name="hidden_readonly_layout_modes"/>
+  <property name="size_max">1000000</property>
+  <property name="display_width">800</property>
+  <property name="display_height">1200</property>
+  <property name="allow_resize">True</property>
+ </widget>
+ <widget name="matric_no_history" meta_type="Lines Widget">
+   <property name="title">Previous Matriculation Number(s)</property>
+   <property name="fields">
+     <element value="matric_no_history"/>
+   </property>
+   <property name="label">Previous Matriculation Number(s)</property>
+   <property name="label_edit">Previous Matriculation Number(s)</property>
+   <property name="readonly_layout_modes">
+     <element value="edit"/>
+   </property>
+   <property name="hidden_layout_modes">
+     <element value="create"/>
+   </property>
+   <property name="hidden_readonly_layout_modes"/>
+ </widget>
+ <widget name="fst_sit_date" meta_type="DateTime Widget">
+  <property name="title">Exam Date</property>
+  <property name="fields">
+   <element value="fst_sit_date"/>
+  </property>
+  <property name="label">Exam Date</property>
+  <property name="label_edit">Exam Date</property>
+  <property name="readonly_layout_modes"/>
+  <property name="hidden_layout_modes">
+   <element value="create"/>
+  </property>
+  <property name="hidden_readonly_layout_modes"/>
+  <property name="view_format">%d/%m/%Y</property>
+  <property name="time_setting">False</property>
+ </widget>
+ <widget name="fst_sit_fname" meta_type="String Widget">
+  <property name="title">Full Name</property>
+  <property name="fields">
+   <element value="fst_sit_fname"/>
+  </property>
+  <property name="label">Full Name</property>
+  <property name="label_edit">Full Name</property>
+  <property name="description">First Sitting Data</property>
+  <property
+     name="help"></property>
+  <property name="readonly_layout_modes"/>
+  <property name="hidden_layout_modes">
+   <element value="create"/>
+  </property>
+  <property name="hidden_readonly_layout_modes"/>
+ </widget>
+ <widget name="fst_sit_no" meta_type="String Widget">
+  <property name="title">Exam Number</property>
+  <property name="fields">
+   <element value="fst_sit_no"/>
+  </property>
+  <property name="label">Exam Number</property>
+  <property name="label_edit">Exam Number</property>
+  <property name="readonly_layout_modes"/>
+  <property name="hidden_layout_modes">
+   <element value="create"/>
+  </property>
+  <property name="hidden_readonly_layout_modes"/>
+ </widget>
+ <widget name="fst_sit_results" meta_type="WAeUp Results Widget">
+  <property name="title">Results</property>
+  <property name="fields">
+   <element value="fst_sit_results"/>
+  </property>
+  <property name="label">Results</property>
+  <property name="label_edit">Results</property>
+  <property name="readonly_layout_modes"/>
+  <property name="hidden_layout_modes">
+   <element value="create"/>
+  </property>
+  <property name="hidden_readonly_layout_modes"/>
+ </widget>
+ <widget name="fst_sit_scan" meta_type="File Image Widget">
+  <property name="title">Scan of First Sitting Result</property>
+  <property name="fields">
+   <element value="fst_sit_scan"/>
+  </property>
+  <property name="label">Scan of First Sitting Result</property>
+  <property name="label_edit">Scan of First Sitting Result</property>
+  <property name="readonly_layout_modes"/>
+  <property name="hidden_layout_modes">
+   <element value="create"/>
+  </property>
+  <property name="hidden_readonly_layout_modes"/>
+  <property name="size_max">1000000</property>
+  <property name="display_width">800</property>
+  <property name="display_height">1200</property>
+  <property name="allow_resize">True</property>
+ </widget>
+ <widget name="fst_sit_type" meta_type="Select Widget">
+  <property name="title">Exam Type</property>
+  <property name="fields">
+   <element value="fst_sit_type"/>
+  </property>
+  <property name="label">Exam Type</property>
+  <property name="label_edit">Exam Type</property>
+  <property name="readonly_layout_modes"/>
+  <property name="hidden_layout_modes">
+   <element value="create"/>
+  </property>
+  <property name="hidden_readonly_layout_modes"/>
+  <property name="vocabulary">exam_types</property>
+ </widget>
+ <widget name="hq_disc" meta_type="String Widget">
+  <property name="title">Discipline</property>
+  <property name="fields">
+   <element value="hq_disc"/>
+  </property>
+  <property name="label">Discipline</property>
+  <property name="label_edit">Discipline</property>
+  <property name="readonly_layout_modes"/>
+  <property name="hidden_layout_modes">
+   <element value="create"/>
+  </property>
+  <property name="hidden_readonly_layout_modes"/>
+ </widget>
+ <widget name="hq_grade" meta_type="Select Widget">
+  <property name="title">Higher Qualification Grade</property>
+  <property name="fields">
+   <element value="hq_grade"/>
+  </property>
+  <property name="label">Higher Qualification Grade</property>
+  <property name="label_edit">Higher Qualification Grade</property>
+  <property name="readonly_layout_modes"/>
+  <property name="hidden_layout_modes">
+   <element value="create"/>
+  </property>
+  <property name="hidden_readonly_layout_modes"/>
+  <property name="vocabulary">high_grade</property>
+ </widget>
+ <widget name="hq_matric_no" meta_type="String Widget">
+  <property name="title">Matric Number</property>
+  <property name="fields">
+   <element value="hq_matric_no"/>
+  </property>
+  <property name="label">Matric Number</property>
+  <property name="label_edit">Matric Number</property>
+  <property name="readonly_layout_modes"/>
+  <property name="hidden_layout_modes">
+   <element value="create"/>
+  </property>
+  <property name="hidden_readonly_layout_modes"/>
+ </widget>
+ <widget name="hq_scan" meta_type="File Image Widget">
+  <property name="title">Scan of Higher Qualification Result</property>
+  <property name="fields">
+   <element value="hq_scan"/>
+  </property>
+  <property name="label">Scan of Higher Qualification Result</property>
+  <property name="label_edit">Scan of Higher Qualification Result</property>
+  <property name="readonly_layout_modes"/>
+  <property name="hidden_layout_modes">
+   <element value="create"/>
+  </property>
+  <property name="hidden_readonly_layout_modes"/>
+  <property name="size_max">1000000</property>
+  <property name="display_width">800</property>
+  <property name="display_height">1200</property>
+  <property name="allow_resize">True</property>
+ </widget>
+ <widget name="hq_school" meta_type="String Widget">
+  <property name="title">School Attended</property>
+  <property name="fields">
+   <element value="hq_school"/>
+  </property>
+  <property name="label">School Attended</property>
+  <property name="label_edit">School Attended</property>
+  <property name="readonly_layout_modes"/>
+  <property name="hidden_layout_modes">
+   <element value="create"/>
+  </property>
+  <property name="hidden_readonly_layout_modes"/>
+ </widget>
+ <widget name="hq_session" meta_type="String Widget">
+  <property name="title">Session Obtained</property>
+  <property name="fields">
+   <element value="hq_session"/>
+  </property>
+  <property name="label">Session Obtained</property>
+  <property name="label_edit">Session Obtained</property>
+  <property name="readonly_layout_modes"/>
+  <property name="hidden_layout_modes">
+   <element value="create"/>
+  </property>
+  <property name="hidden_readonly_layout_modes"/>
+ </widget>
+ <widget name="hq_type" meta_type="Select Widget">
+  <property name="title">Higher Qualification</property>
+  <property name="fields">
+   <element value="hq_type"/>
+  </property>
+  <property name="label">Higher Qualification</property>
+  <property name="label_edit">Higher Qualification</property>
+  <property name="description">Higher Qualification Data</property>
+  <property name="readonly_layout_modes"/>
+  <property name="hidden_layout_modes">
+   <element value="create"/>
+  </property>
+  <property name="hidden_readonly_layout_modes"/>
+  <property name="vocabulary">high_qual</property>
+ </widget>
+ <widget name="jamb_let" meta_type="File Image Widget">
+  <property name="title">JAMB Letter</property>
+  <property name="fields">
+   <element value="jamb_let"/>
+  </property>
+  <property name="label">JAMB Letter</property>
+  <property name="label_edit">JAMB Letter</property>
+  <property name="readonly_layout_modes"/>
+  <property name="hidden_layout_modes">
+   <element value="create"/>
+  </property>
+  <property name="hidden_readonly_layout_modes"/>
+  <property name="size_max">1000000</property>
+  <property name="display_width">800</property>
+  <property name="display_height">1200</property>
+  <property name="allow_resize">True</property>
+ </widget>
+ <widget name="jamb_slip" meta_type="File Image Widget">
+  <property name="title">JAMB Slip</property>
+  <property name="fields">
+   <element value="jamb_slip"/>
+  </property>
+  <property name="label">JAMB Slip</property>
+  <property name="label_edit">JAMB Slip</property>
+  <property name="readonly_layout_modes"/>
+  <property name="hidden_layout_modes">
+   <element value="create"/>
+  </property>
+  <property name="hidden_readonly_layout_modes"/>
+  <property name="size_max">1000000</property>
+  <property name="display_width">800</property>
+  <property name="display_height">1200</property>
+  <property name="allow_resize">True</property>
+ </widget>
+ <widget name="lga" meta_type="Select Widget">
+  <property name="title">Local Government Area</property>
+  <property name="fields">
+   <element value="lga"/>
+  </property>
+  <property name="label">Local Government Area</property>
+  <property name="label_edit">Local Government Area</property>
+  <property name="readonly_layout_modes"/>
+  <property name="hidden_layout_modes">
+   <element value="create"/>
+  </property>
+  <property name="hidden_readonly_layout_modes"/>
+  <property name="vocabulary">local_gov_areas</property>
+  <property name="sorted">True</property>
+ </widget>
+ <widget name="lga_ident" meta_type="File Image Widget">
+  <property name="title">LGA Identification</property>
+  <property name="fields">
+   <element value="lga_ident"/>
+  </property>
+  <property name="label">LGA Identification</property>
+  <property name="label_edit">LGA Identification</property>
+  <property name="readonly_layout_modes"/>
+  <property name="hidden_layout_modes">
+   <element value="create"/>
+  </property>
+  <property name="hidden_readonly_layout_modes"/>
+  <property name="size_max">1000000</property>
+  <property name="display_width">800</property>
+  <property name="display_height">1200</property>
+  <property name="allow_resize">True</property>
+ </widget>
+ <widget name="matric_no" meta_type="String Widget">
+  <property name="title">Matriculation Number</property>
+  <property name="fields">
+   <element value="matric_no"/>
+  </property>
+  <property name="label">Matriculation Number</property>
+  <property name="label_edit">Matriculation Number</property>
+  <property name="readonly_layout_modes">
+  </property>
+  <property name="hidden_layout_modes">
+   <element value="create"/>
+  </property>
+  <property name="hidden_readonly_layout_modes"/>
+  <property name="display_width">13</property>
+  <property name="size_max">13</property>
+ </widget>
+ <widget name="nationality" meta_type="Select Widget">
+  <property name="title">Nationality</property>
+  <property name="fields">
+   <element value="nationality"/>
+  </property>
+  <property name="label">Nationality</property>
+  <property name="label_edit">Nationality</property>
+  <property name="readonly_layout_modes"/>
+  <property name="hidden_layout_modes">
+   <element value="create"/>
+  </property>
+  <property name="hidden_readonly_layout_modes"/>
+  <property name="vocabulary">states</property>
+ </widget>
+ <widget name="ref_let" meta_type="File Image Widget">
+  <property name="title">Referee Letter</property>
+  <property name="fields">
+   <element value="ref_let"/>
+  </property>
+  <property name="label">Referee Letter</property>
+  <property name="label_edit">Referee Letter</property>
+  <property name="readonly_layout_modes"/>
+  <property name="hidden_layout_modes">
+   <element value="create"/>
+  </property>
+  <property name="hidden_readonly_layout_modes"/>
+  <property name="size_max">1000000</property>
+  <property name="display_width">800</property>
+  <property name="display_height">1200</property>
+  <property name="allow_resize">True</property>
+ </widget>
+ <widget name="res_stat" meta_type="File Image Widget">
+  <property name="title">Result Statement</property>
+  <property name="fields">
+   <element value="res_stat"/>
+  </property>
+  <property name="label">Result Statement</property>
+  <property name="label_edit">Result Statement</property>
+  <property name="readonly_layout_modes"/>
+  <property name="hidden_layout_modes">
+   <element value="create"/>
+  </property>
+  <property name="hidden_readonly_layout_modes"/>
+  <property name="size_max">1000000</property>
+  <property name="display_width">800</property>
+  <property name="display_height">1200</property>
+  <property name="allow_resize">True</property>
+ </widget>
+ <widget name="scd_sit_date" meta_type="DateTime Widget">
+  <property name="title">Exam Date</property>
+  <property name="fields">
+   <element value="scd_sit_date"/>
+  </property>
+  <property name="label">Exam Date</property>
+  <property name="label_edit">Exam Date</property>
+  <property name="readonly_layout_modes"/>
+  <property name="hidden_layout_modes">
+   <element value="create"/>
+  </property>
+  <property name="hidden_readonly_layout_modes"/>
+  <property name="view_format">%d/%m/%Y</property>
+  <property name="time_setting">False</property>
+ </widget>
+ <widget name="scd_sit_fname" meta_type="String Widget">
+  <property name="title">Full Name</property>
+  <property name="fields">
+   <element value="scd_sit_fname"/>
+  </property>
+  <property name="label">Full Name</property>
+  <property name="label_edit">Full Name</property>
+  <property name="description">Second Sitting Data</property>
+  <property
+     name="help"></property>
+  <property name="readonly_layout_modes"/>
+  <property name="hidden_layout_modes">
+   <element value="create"/>
+  </property>
+  <property name="hidden_readonly_layout_modes"/>
+ </widget>
+ <widget name="scd_sit_no" meta_type="String Widget">
+  <property name="title">Exam Number</property>
+  <property name="fields">
+   <element value="scd_sit_no"/>
+  </property>
+  <property name="label">Exam Number</property>
+  <property name="label_edit">Exam Number</property>
+  <property name="readonly_layout_modes"/>
+  <property name="hidden_layout_modes">
+   <element value="create"/>
+  </property>
+  <property name="hidden_readonly_layout_modes"/>
+ </widget>
+ <widget name="scd_sit_results" meta_type="WAeUp Results Widget">
+  <property name="title">Results</property>
+  <property name="fields">
+   <element value="scd_sit_results"/>
+  </property>
+  <property name="label">Results</property>
+  <property name="label_edit">Results</property>
+  <property name="readonly_layout_modes"/>
+  <property name="hidden_layout_modes">
+   <element value="create"/>
+  </property>
+  <property name="hidden_readonly_layout_modes"/>
+ </widget>
+ <widget name="scd_sit_scan" meta_type="File Image Widget">
+  <property name="title">Scan of Second Sitting Result</property>
+  <property name="fields">
+   <element value="scd_sit_scan"/>
+  </property>
+  <property name="label">Scan of Second Sitting Result</property>
+  <property name="label_edit">Scan of Second Sitting Result</property>
+  <property name="readonly_layout_modes"/>
+  <property name="hidden_layout_modes">
+   <element value="create"/>
+  </property>
+  <property name="hidden_readonly_layout_modes"/>
+  <property name="size_max">1000000</property>
+  <property name="display_width">800</property>
+  <property name="display_height">1200</property>
+  <property name="allow_resize">True</property>
+ </widget>
+ <widget name="scd_sit_type" meta_type="Select Widget">
+  <property name="title">Exam Type</property>
+  <property name="fields">
+   <element value="scd_sit_type"/>
+  </property>
+  <property name="label">Exam Type</property>
+  <property name="label_edit">Exam Type</property>
+  <property name="readonly_layout_modes"/>
+  <property name="hidden_layout_modes">
+   <element value="create"/>
+  </property>
+  <property name="hidden_readonly_layout_modes"/>
+  <property name="vocabulary">exam_types</property>
+ </widget>
+ <widget name="stat_dec" meta_type="File Image Widget">
+  <property name="title">Statutory Declaration of Good Conduct</property>
+  <property name="fields">
+   <element value="stat_dec"/>
+  </property>
+  <property name="label">Statutory Declaration of Good Conduct</property>
+  <property name="label_edit">Statutory Declaration of Good Conduct</property>
+  <property name="readonly_layout_modes"/>
+  <property name="hidden_layout_modes">
+   <element value="create"/>
+  </property>
+  <property name="hidden_readonly_layout_modes"/>
+  <property name="size_max">1000000</property>
+  <property name="display_width">800</property>
+  <property name="display_height">1200</property>
+  <property name="allow_resize">True</property>
+ </widget>
+ <widget name="uniben" meta_type="Boolean Widget">
+  <property name="title">Former FCEO Student</property>
+  <property name="fields">
+   <element value="uniben"/>
+  </property>
+  <property name="label">Former FCEO Student</property>
+  <property name="label_edit">Former FCEO Student</property>
+  <property name="readonly_layout_modes"/>
+  <property name="hidden_layout_modes">
+   <element value="create"/>
+  </property>
+  <property name="hidden_readonly_layout_modes"/>
+  <property name="render_format">radio</property>
+ </widget>
+ <table>
+  <row>
+   <cell name="firstname"/>
+  </row>
+  <row>
+   <cell name="middlename"/>
+  </row>
+  <row>
+   <cell name="lastname"/>
+  </row>
+  <row>
+   <cell name="matric_no"/>
+  </row>
+  <row>
+   <cell name="matric_no_history"/>
+  </row>
+  <row>
+   <cell name="clr_ac_pin"/>
+  </row>
+  <row>
+   <cell name="entry_date"/>
+  </row>
+  <row>
+   <cell name="request_date"/>
+  </row>
+  <row>
+   <cell name="cleared_date"/>
+  </row>
+  <row>
+   <cell name="birthday"/>
+  </row>
+  <row>
+   <cell name="lga"/>
+  </row>
+  <row>
+   <cell name="nationality"/>
+  </row>
+  <row>
+   <cell name="fst_sit_fname"/>
+  </row>
+  <row>
+   <cell name="fst_sit_no"/>
+  </row>
+  <row>
+   <cell name="fst_sit_date"/>
+  </row>
+  <row>
+   <cell name="fst_sit_type"/>
+  </row>
+  <row>
+   <cell name="fst_sit_results"/>
+  </row>
+  <row>
+   <cell name="fst_sit_scan"/>
+  </row>
+  <row>
+   <cell name="scd_sit_fname"/>
+  </row>
+  <row>
+   <cell name="scd_sit_no"/>
+  </row>
+  <row>
+   <cell name="scd_sit_date"/>
+  </row>
+  <row>
+   <cell name="scd_sit_type"/>
+  </row>
+  <row>
+   <cell name="scd_sit_results"/>
+  </row>
+  <row>
+   <cell name="scd_sit_scan"/>
+  </row>
+  <row>
+   <cell name="birth_certificate"/>
+  </row>
+  <row>
+   <cell name="lga_ident"/>
+  </row>
+  <row>
+   <cell name="acc_let"/>
+  </row>
+  <row>
+   <cell name="jamb_slip"/>
+  </row>
+  <row>
+   <cell name="cert"/>
+  </row>
+  <row>
+   <cell name="evid"/>
+  </row>
+  <row>
+   <cell name="jamb_let"/>
+  </row>
+  <row>
+   <cell name="res_stat"/>
+  </row>
+  <row>
+   <cell name="ref_let"/>
+  </row>
+  <row>
+   <cell name="cred"/>
+  </row>
+  <row>
+   <cell name="stat_dec"/>
+  </row>
+  <row>
+   <cell name="age_dec"/>
+  </row>
+  <row>
+   <cell name="acc_inst"/>
+  </row>
+  <row>
+   <cell name="uniben"/>
+  </row>
+  <row>
+   <cell name="def_adm"/>
+  </row>
+ </table>
+</object>
Index: WAeUP_SRP/ois/profiles_custom/default/layouts/student_clearance_fe.xml
===================================================================
--- WAeUP_SRP/ois/profiles_custom/default/layouts/student_clearance_fe.xml	(revision 3662)
+++ WAeUP_SRP/ois/profiles_custom/default/layouts/student_clearance_fe.xml	(revision 3662)
@@ -0,0 +1,908 @@
+<?xml version="1.0"?>
+<?xml-stylesheet type="text/xsl" href="layout.xsl"?>
+<object name="student_clearance_fe" meta_type="CPS Layout">
+ <property name="layout_create_method">layout_enter_access_code</property>
+ <property name="layout_edit_method"></property>
+ <property name="layout_view_method"></property>
+ <property name="style_prefix">layout_clearance_</property>
+ <property name="flexible_widgets"/>
+ <property name="validate_values_expr"></property>
+
+
+  <widget name="firstname" meta_type="String Widget">
+  <property name="title">First Name</property>
+  <property name="fields">
+   <element value="firstname"/>
+  </property>
+  <property name="label">First Name</property>
+  <property name="label_edit">First Name</property>
+  <property name="is_required">False</property>
+  <property
+     name="help">Please confirm your first name. After clearance this name will appear on all documents.</property>
+  <property name="readonly_layout_modes"/>
+  <property name="hidden_layout_modes">
+   <element value="create"/>
+  </property>
+  <property name="hidden_readonly_layout_modes"/>
+ </widget>
+
+ <widget name="middlename" meta_type="String Widget">
+  <property name="title">Middle Name</property>
+  <property name="fields">
+   <element value="middlename"/>
+  </property>
+  <property name="label">Middle Name</property>
+  <property name="label_edit">Middle Name</property>
+  <property
+     name="help">Please confirm your middle name. After clearance this name will appear on all documents.</property>
+  <property name="readonly_layout_modes"/>
+  <property name="hidden_layout_modes">
+   <element value="create"/>
+  </property>
+  <property name="hidden_readonly_layout_modes"/>
+ </widget>
+
+ <widget name="lastname" meta_type="String Widget">
+  <property name="title">Last Name (Surname)</property>
+  <property name="fields">
+   <element value="lastname"/>
+  </property>
+  <property name="is_required">False</property>
+  <property name="label">Last Name (Surname)</property>
+  <property name="label_edit">Last Name (Surname)</property>
+  <property
+     name="help">Please confirm your surname. After clearance this name will appear on all documents.</property>
+  <property name="readonly_layout_modes"/>
+  <property name="hidden_layout_modes">
+   <element value="create"/>
+  </property>
+  <property name="hidden_readonly_layout_modes"/>
+ </widget>
+
+ <widget name="acc_inst" meta_type="File Image Widget">
+  <property name="title">Accepted by Institution</property>
+  <property name="fields">
+   <element value="acc_inst"/>
+  </property>
+  <property name="label">Accepted by Institution</property>
+  <property name="label_edit">Accepted by Institution</property>
+  <property name="readonly_layout_modes"/>
+  <property name="hidden_layout_modes">
+   <element value="create"/>
+  </property>
+  <property name="hidden_readonly_layout_modes"/>
+  <property name="size_max">1000000</property>
+  <property name="display_width">800</property>
+  <property name="display_height">1200</property>
+  <property name="allow_resize">True</property>
+ </widget>
+ <widget name="acc_let" meta_type="File Image Widget">
+  <property name="title">Acceptance Letter </property>
+  <property name="fields">
+   <element value="acc_let"/>
+  </property>
+  <property name="label">Acceptance Letter</property>
+  <property name="label_edit">Acceptance Letter</property>
+  <property name="readonly_layout_modes"/>
+  <property name="hidden_layout_modes">
+   <element value="create"/>
+  </property>
+  <property name="hidden_readonly_layout_modes"/>
+  <property name="size_max">1000000</property>
+  <property name="display_width">800</property>
+  <property name="display_height">1200</property>
+  <property name="allow_resize">True</property>
+ </widget>
+ <widget name="age_dec" meta_type="File Image Widget">
+  <property name="title">Age Declaration</property>
+  <property name="fields">
+   <element value="age_dec"/>
+  </property>
+  <property name="label">Age Declaration</property>
+  <property name="label_edit">Age Declaration</property>
+  <property name="readonly_layout_modes"/>
+  <property name="hidden_layout_modes">
+   <element value="create"/>
+   <element value="edit"/>
+  </property>
+  <property name="hidden_readonly_layout_modes"/>
+  <property name="size_max">1000000</property>
+  <property name="display_width">800</property>
+  <property name="display_height">1200</property>
+  <property name="allow_resize">True</property>
+ </widget>
+ <widget name="alr_date" meta_type="DateTime Widget">
+  <property name="title">Exam Date</property>
+  <property name="fields">
+   <element value="alr_date"/>
+  </property>
+  <property name="label">Exam Date</property>
+  <property name="label_edit">Exam Date</property>
+  <property name="readonly_layout_modes"/>
+  <property name="hidden_layout_modes">
+   <element value="create"/>
+  </property>
+  <property name="hidden_readonly_layout_modes"/>
+  <property name="view_format">%d/%m/%Y</property>
+  <property name="time_setting">False</property>
+ </widget>
+ <widget name="alr_fname" meta_type="String Widget">
+  <property name="title">Full Name</property>
+  <property name="fields">
+   <element value="alr_fname"/>
+  </property>
+  <property name="label">Full Name</property>
+  <property name="label_edit">Full Name</property>
+  <property name="description">Advanced Level Data</property>
+  <property
+     name="help">Full name as it appears on certificate/result</property>
+  <property name="readonly_layout_modes"/>
+  <property name="hidden_layout_modes">
+   <element value="create"/>
+  </property>
+  <property name="hidden_readonly_layout_modes"/>
+ </widget>
+ <widget name="alr_no" meta_type="String Widget">
+  <property name="title">Exam Number</property>
+  <property name="fields">
+   <element value="alr_no"/>
+  </property>
+  <property name="label">Exam Number</property>
+  <property name="label_edit">Exam Number</property>
+  <property name="readonly_layout_modes"/>
+  <property name="hidden_layout_modes">
+   <element value="create"/>
+  </property>
+  <property name="hidden_readonly_layout_modes"/>
+ </widget>
+ <widget name="alr_results" meta_type="WAeUp Results Widget">
+  <property name="title">Results</property>
+  <property name="fields">
+   <element value="alr_results"/>
+  </property>
+  <property name="label">Results</property>
+  <property name="label_edit">Results</property>
+  <property name="hidden_layout_modes">
+   <element value="create"/>
+  </property>
+  <property name="hidden_readonly_layout_modes"/>
+ </widget>
+ <widget name="alr_scan" meta_type="File Image Widget">
+  <property name="title">Scan of Advanced Level Result</property>
+  <property name="fields">
+   <element value="alr_scan"/>
+  </property>
+  <property name="label">Scan of Advanced Level Result</property>
+  <property name="label_edit">Scan of Advanced Level Result</property>
+  <property name="readonly_layout_modes"/>
+  <property name="hidden_layout_modes">
+   <element value="create"/>
+  </property>
+  <property name="hidden_readonly_layout_modes"/>
+  <property name="size_max">1000000</property>
+  <property name="display_width">800</property>
+  <property name="display_height">1200</property>
+  <property name="allow_resize">True</property>
+ </widget>
+ <widget name="birth_certificate" meta_type="File Image Widget">
+  <property name="title">Birth Certificate</property>
+  <property name="fields">
+   <element value="birth_certificate"/>
+  </property>
+  <property name="label">Birth Certificate or Age Declaration</property>
+  <property name="label_edit">Birth Certificate or Age Decl.</property>
+  <property name="description">Other Documents</property>
+  <property name="readonly_layout_modes"/>
+  <property name="hidden_layout_modes">
+   <element value="create"/>
+  </property>
+  <property name="hidden_readonly_layout_modes"/>
+  <property name="size_max">1000000</property>
+  <property name="display_width">800</property>
+  <property name="display_height">1200</property>
+  <property name="allow_resize">True</property>
+ </widget>
+ <widget name="birthday" meta_type="DateTime Widget">
+  <property name="title">Date of Birth</property>
+  <property name="fields">
+   <element value="birthday"/>
+  </property>
+  <property name="label">Date of Birth</property>
+  <property name="label_edit">Date of Birth (dd/mm/yyyy)</property>
+  <property name="readonly_layout_modes"/>
+  <property name="hidden_layout_modes">
+   <element value="create"/>
+  </property>
+  <property name="hidden_readonly_layout_modes"/>
+  <property name="view_format">%d/%m/%Y</property>
+  <property name="time_setting">False</property>
+ </widget>
+ <widget name="cert" meta_type="File Image Widget">
+  <property name="title">Certificate</property>
+  <property name="fields">
+   <element value="cert"/>
+  </property>
+  <property name="label">Certificate</property>
+  <property name="label_edit">Certificate</property>
+  <property name="readonly_layout_modes"/>
+  <property name="hidden_layout_modes">
+   <element value="create"/>
+  </property>
+  <property name="hidden_readonly_layout_modes"/>
+  <property name="size_max">1000000</property>
+  <property name="display_width">800</property>
+  <property name="display_height">1200</property>
+  <property name="allow_resize">True</property>
+ </widget>
+ <widget name="clr_ac_pin" meta_type="Scratchcard Pin Widget">
+  <property name="title">Clearance Access Code</property>
+  <property name="fields">
+   <element value="clr_ac_pin"/>
+  </property>
+  <property name="label">Clearance Access Code</property>
+  <property name="label_edit">Clearance Access Code</property>
+  <property name="readonly_layout_modes">
+   <element value="edit"/>
+  </property>
+  <property name="hidden_layout_modes"/>
+  <property name="hidden_readonly_layout_modes"/>
+  <property name="prefix">CLR</property>
+ </widget>
+ <widget name="cred" meta_type="File Image Widget">
+  <property name="title">Credential</property>
+  <property name="fields">
+   <element value="cred"/>
+  </property>
+  <property name="label">Credential</property>
+  <property name="label_edit">Credential</property>
+  <property name="readonly_layout_modes"/>
+  <property name="hidden_layout_modes">
+   <element value="create"/>
+  </property>
+  <property name="hidden_readonly_layout_modes"/>
+  <property name="size_max">1000000</property>
+  <property name="display_width">800</property>
+  <property name="display_height">1200</property>
+  <property name="allow_resize">True</property>
+ </widget>
+ <widget name="def_adm" meta_type="Boolean Widget">
+  <property name="title">Deferment of Admission</property>
+  <property name="fields">
+   <element value="def_adm"/>
+  </property>
+  <property name="label">Deferment of Admission</property>
+  <property name="label_edit">Deferment of Admission</property>
+  <property
+     name="help">Tick this box if you wish to defer admission till next session.</property>
+  <property name="readonly_layout_modes"/>
+  <property name="hidden_layout_modes">
+   <element value="create"/>
+  </property>
+  <property name="hidden_readonly_layout_modes"/>
+  <property name="render_format">radio</property>
+ </widget>
+ <widget name="entry_date" meta_type="DateTime Widget">
+  <property name="title">Entry Date</property>
+  <property name="fields">
+   <element value="entry_date"/>
+  </property>
+  <property name="label">Entry Date</property>
+  <property name="label_edit">Entry Date</property>
+  <property name="readonly_layout_modes">
+   <element value="edit"/>
+  </property>
+  <property name="hidden_layout_modes">
+   <element value="create"/>
+  </property>
+  <property name="hidden_readonly_layout_modes"/>
+  <property name="view_format">%d/%m/%Y</property>
+  <property name="time_setting">False</property>
+ </widget>
+ <widget name="request_date" meta_type="DateTime Widget">
+  <property name="title">Request Date</property>
+  <property name="fields">
+   <element value="request_date"/>
+  </property>
+  <property name="label">Request Date</property>
+  <property name="label_edit">Request Date</property>
+  <property name="readonly_layout_modes">
+   <element value="edit"/>
+  </property>
+  <property name="hidden_layout_modes">
+   <element value="create"/>
+  </property>
+  <property name="hidden_readonly_layout_modes"/>
+  <property name="view_format">%d/%m/%Y</property>
+  <property name="time_setting">False</property>
+ </widget>
+ <widget name="cleared_date" meta_type="DateTime Widget">
+  <property name="title">Cleared Date</property>
+  <property name="fields">
+   <element value="cleared_date"/>
+  </property>
+  <property name="label">Cleared Date</property>
+  <property name="label_edit">Cleared Date</property>
+  <property name="readonly_layout_modes">
+   <element value="edit"/>
+  </property>
+  <property name="hidden_layout_modes">
+   <element value="create"/>
+  </property>
+  <property name="hidden_readonly_layout_modes"/>
+  <property name="view_format">%d/%m/%Y</property>
+  <property name="time_setting">False</property>
+ </widget>
+ <widget name="evid" meta_type="File Image Widget">
+  <property name="title">Evidence of Name</property>
+  <property name="fields">
+   <element value="evid"/>
+  </property>
+  <property name="label">Evidence of Name</property>
+  <property name="label_edit">Evidence of Name</property>
+  <property name="readonly_layout_modes"/>
+  <property name="hidden_layout_modes">
+   <element value="create"/>
+  </property>
+  <property name="hidden_readonly_layout_modes"/>
+  <property name="size_max">1000000</property>
+  <property name="display_width">800</property>
+  <property name="display_height">1200</property>
+  <property name="allow_resize">True</property>
+ </widget>
+ <widget name="fst_sit_date" meta_type="DateTime Widget">
+  <property name="title">Exam Date</property>
+  <property name="fields">
+   <element value="fst_sit_date"/>
+  </property>
+  <property name="label">Exam Date</property>
+  <property name="label_edit">Exam Date (dd/mm/yyyy)</property>
+  <property name="readonly_layout_modes"/>
+  <property name="hidden_layout_modes">
+   <element value="create"/>
+  </property>
+  <property name="hidden_readonly_layout_modes"/>
+  <property name="view_format">%d/%m/%Y</property>
+  <property name="time_setting">False</property>
+ </widget>
+ <widget name="fst_sit_fname" meta_type="String Widget">
+  <property name="title">Full Name</property>
+  <property name="fields">
+   <element value="fst_sit_fname"/>
+  </property>
+  <property name="label">Full Name</property>
+  <property name="label_edit">Full Name</property>
+  <property name="description">First Sitting Data</property>
+  <property
+     name="help">Full name as it appears on certificate/result</property>
+  <property name="readonly_layout_modes"/>
+  <property name="hidden_layout_modes">
+   <element value="create"/>
+  </property>
+  <property name="hidden_readonly_layout_modes"/>
+ </widget>
+ <widget name="fst_sit_no" meta_type="String Widget">
+  <property name="title">Exam Number</property>
+  <property name="fields">
+   <element value="fst_sit_no"/>
+  </property>
+  <property name="label">Exam Number</property>
+  <property name="label_edit">Exam Number</property>
+  <property name="readonly_layout_modes"/>
+  <property name="hidden_layout_modes">
+   <element value="create"/>
+  </property>
+  <property name="hidden_readonly_layout_modes"/>
+ </widget>
+ <widget name="fst_sit_results" meta_type="WAeUp Results Widget">
+  <property name="title">Results</property>
+  <property name="fields">
+   <element value="fst_sit_results"/>
+  </property>
+  <property name="label">Results</property>
+  <property name="label_edit">Results</property>
+  <property name="readonly_layout_modes"/>
+  <property name="hidden_layout_modes">
+   <element value="create"/>
+  </property>
+  <property name="hidden_readonly_layout_modes"/>
+ </widget>
+ <widget name="fst_sit_scan" meta_type="File Image Widget">
+  <property name="title">Scan of First Sitting Result</property>
+  <property name="fields">
+   <element value="fst_sit_scan"/>
+  </property>
+  <property name="label">Scan of First Sitting Result</property>
+  <property name="label_edit">Scan of First Sitting Result</property>
+  <property name="readonly_layout_modes"/>
+  <property name="hidden_layout_modes">
+   <element value="create"/>
+  </property>
+  <property name="hidden_readonly_layout_modes"/>
+  <property name="size_max">1000000</property>
+  <property name="display_width">800</property>
+  <property name="display_height">1200</property>
+  <property name="allow_resize">True</property>
+ </widget>
+ <widget name="fst_sit_type" meta_type="Select Widget">
+  <property name="title">Exam Type</property>
+  <property name="fields">
+   <element value="fst_sit_type"/>
+  </property>
+  <property name="label">Exam Type</property>
+  <property name="label_edit">Exam Type</property>
+  <property name="readonly_layout_modes"/>
+  <property name="hidden_layout_modes">
+   <element value="create"/>
+  </property>
+  <property name="hidden_readonly_layout_modes"/>
+  <property name="vocabulary">exam_types</property>
+ </widget>
+ <widget name="hq_disc" meta_type="String Widget">
+  <property name="title">Discipline</property>
+  <property name="fields">
+   <element value="hq_disc"/>
+  </property>
+  <property name="label">Discipline</property>
+  <property name="label_edit">Discipline</property>
+  <property name="readonly_layout_modes"/>
+  <property name="hidden_layout_modes">
+   <element value="create"/>
+  </property>
+  <property name="hidden_readonly_layout_modes"/>
+ </widget>
+ <widget name="hq_grade" meta_type="Select Widget">
+  <property name="title">Higher Qualification Grade</property>
+  <property name="fields">
+   <element value="hq_grade"/>
+  </property>
+  <property name="label">Higher Qualification Grade</property>
+  <property name="label_edit">Higher Qualification Grade</property>
+  <property name="readonly_layout_modes"/>
+  <property name="hidden_layout_modes">
+   <element value="create"/>
+  </property>
+  <property name="hidden_readonly_layout_modes"/>
+  <property name="vocabulary">high_grade</property>
+ </widget>
+ <widget name="hq_matric_no" meta_type="String Widget">
+  <property name="title">Matric Number</property>
+  <property name="fields">
+   <element value="hq_matric_no"/>
+  </property>
+  <property name="label">Matric Number</property>
+  <property name="label_edit">Matric Number</property>
+  <property name="readonly_layout_modes"/>
+  <property name="hidden_layout_modes">
+   <element value="create"/>
+  </property>
+  <property name="hidden_readonly_layout_modes"/>
+ </widget>
+ <widget name="hq_scan" meta_type="File Image Widget">
+  <property name="title">Scan of Higher Qualification Result</property>
+  <property name="fields">
+   <element value="hq_scan"/>
+  </property>
+  <property name="label">Scan of Higher Qualification Result</property>
+  <property name="label_edit">Scan of Higher Qualification Result</property>
+  <property name="readonly_layout_modes"/>
+  <property name="hidden_layout_modes">
+   <element value="create"/>
+  </property>
+  <property name="hidden_readonly_layout_modes"/>
+  <property name="size_max">1000000</property>
+  <property name="display_width">800</property>
+  <property name="display_height">1200</property>
+  <property name="allow_resize">True</property>
+ </widget>
+ <widget name="hq_school" meta_type="String Widget">
+  <property name="title">School Attended</property>
+  <property name="fields">
+   <element value="hq_school"/>
+  </property>
+  <property name="label">School Attended</property>
+  <property name="label_edit">School Attended</property>
+  <property name="readonly_layout_modes"/>
+  <property name="hidden_layout_modes">
+   <element value="create"/>
+  </property>
+  <property name="hidden_readonly_layout_modes"/>
+ </widget>
+ <widget name="hq_session" meta_type="String Widget">
+  <property name="title">Session Obtained</property>
+  <property name="fields">
+   <element value="hq_session"/>
+  </property>
+  <property name="label">Session Obtained</property>
+  <property name="label_edit">Session Obtained</property>
+  <property name="readonly_layout_modes"/>
+  <property name="hidden_layout_modes">
+   <element value="create"/>
+  </property>
+  <property name="hidden_readonly_layout_modes"/>
+ </widget>
+ <widget name="hq_type" meta_type="Select Widget">
+  <property name="title">Higher Qualification</property>
+  <property name="fields">
+   <element value="hq_type"/>
+  </property>
+  <property name="label">Higher Qualification</property>
+  <property name="label_edit">Higher Qualification</property>
+  <property name="description">Higher Qualification Data</property>
+  <property name="readonly_layout_modes"/>
+  <property name="hidden_layout_modes">
+   <element value="create"/>
+  </property>
+  <property name="hidden_readonly_layout_modes"/>
+  <property name="vocabulary">high_qual</property>
+ </widget>
+ <widget name="jamb_let" meta_type="File Image Widget">
+  <property name="title">JAMB Letter</property>
+  <property name="fields">
+   <element value="jamb_let"/>
+  </property>
+  <property name="label">JAMB Letter</property>
+  <property name="label_edit">JAMB Letter</property>
+  <property name="readonly_layout_modes"/>
+  <property name="hidden_layout_modes">
+   <element value="create"/>
+  </property>
+  <property name="hidden_readonly_layout_modes"/>
+  <property name="size_max">1000000</property>
+  <property name="display_width">800</property>
+  <property name="display_height">1200</property>
+  <property name="allow_resize">True</property>
+ </widget>
+ <widget name="jamb_slip" meta_type="File Image Widget">
+  <property name="title">JAMB Slip</property>
+  <property name="fields">
+   <element value="jamb_slip"/>
+  </property>
+  <property name="label">JAMB Slip</property>
+  <property name="label_edit">JAMB Slip</property>
+  <property name="readonly_layout_modes"/>
+  <property name="hidden_layout_modes">
+   <element value="create"/>
+  </property>
+  <property name="hidden_readonly_layout_modes"/>
+  <property name="size_max">1000000</property>
+  <property name="display_width">800</property>
+  <property name="display_height">1200</property>
+  <property name="allow_resize">True</property>
+ </widget>
+ <widget name="lga" meta_type="Select Widget">
+  <property name="title">Local Government Area</property>
+  <property name="fields">
+   <element value="lga"/>
+  </property>
+  <property name="label">Local Government Area</property>
+  <property name="label_edit">Local Government Area</property>
+  <property name="readonly_layout_modes">
+  </property>
+  <property name="hidden_layout_modes">
+   <element value="create"/>
+  </property>
+  <property name="hidden_readonly_layout_modes"/>
+  <property name="vocabulary">local_gov_areas</property>
+  <property name="sorted">True</property>
+ </widget>
+ <widget name="matric_no" meta_type="String Widget">
+  <property name="title">Matriculation Number</property>
+  <property name="fields">
+   <element value="matric_no"/>
+  </property>
+  <property name="label">Matriculation Number</property>
+  <property name="label_edit">Matriculation Number</property>
+  <property name="readonly_layout_modes">
+   <element value="edit"/>
+  </property>
+  <property name="hidden_layout_modes">
+   <element value="create"/>
+   <element value="edit"/>
+  </property>
+  <property name="hidden_readonly_layout_modes"/>
+  <property name="display_width">10</property>
+  <property name="size_max">10</property>
+ </widget>
+ <widget name="matric_no_history" meta_type="Lines Widget">
+   <property name="title">Previous Matriculation Number(s)</property>
+   <property name="fields">
+     <element value="matric_no_history"/>
+   </property>
+   <property name="label">Previous Matriculation Number(s)</property>
+   <property name="label_edit">Previous Matriculation Number(s)</property>
+   <property name="readonly_layout_modes">
+     <element value="edit"/>
+   </property>
+   <property name="hidden_layout_modes">
+     <element value="create"/>
+     <element value="edit"/>
+   </property>
+   <property name="hidden_readonly_layout_modes"/>
+   <property name="width">50</property>
+   <property name="height">2</property>
+ </widget>
+ <widget name="nationality" meta_type="Select Widget">
+  <property name="title">Nationality</property>
+  <property name="fields">
+   <element value="nationality"/>
+  </property>
+  <property name="label">Nationality</property>
+  <property name="label_edit">Nationality</property>
+  <property name="readonly_layout_modes">
+  </property>
+  <property name="hidden_layout_modes">
+   <element value="create"/>
+  </property>
+  <property name="hidden_readonly_layout_modes"/>
+  <property name="vocabulary">states</property>
+ </widget>
+ <widget name="ref_let" meta_type="File Image Widget">
+  <property name="title">Referee Letter</property>
+  <property name="fields">
+   <element value="ref_let"/>
+  </property>
+  <property name="label">Referee Letter</property>
+  <property name="label_edit">Referee Letter</property>
+  <property name="readonly_layout_modes"/>
+  <property name="hidden_layout_modes">
+   <element value="create"/>
+  </property>
+  <property name="hidden_readonly_layout_modes"/>
+  <property name="size_max">1000000</property>
+  <property name="display_width">800</property>
+  <property name="display_height">1200</property>
+  <property name="allow_resize">True</property>
+ </widget>
+ <widget name="res_stat" meta_type="File Image Widget">
+  <property name="title">Result Statement</property>
+  <property name="fields">
+   <element value="res_stat"/>
+  </property>
+  <property name="label">Result Statement</property>
+  <property name="label_edit">Result Statement</property>
+  <property name="readonly_layout_modes"/>
+  <property name="hidden_layout_modes">
+   <element value="create"/>
+  </property>
+  <property name="hidden_readonly_layout_modes"/>
+  <property name="size_max">1000000</property>
+  <property name="display_width">800</property>
+  <property name="display_height">1200</property>
+  <property name="allow_resize">True</property>
+ </widget>
+ <widget name="scd_sit_date" meta_type="DateTime Widget">
+  <property name="title">Exam Date</property>
+  <property name="fields">
+   <element value="scd_sit_date"/>
+  </property>
+  <property name="label">Exam Date</property>
+  <property name="label_edit">Exam Date (dd/mm/yyyy)</property>
+  <property name="readonly_layout_modes"/>
+  <property name="hidden_layout_modes">
+   <element value="create"/>
+  </property>
+  <property name="hidden_readonly_layout_modes"/>
+  <property name="view_format">%d/%m/%Y</property>
+  <property name="time_setting">False</property>
+ </widget>
+ <widget name="scd_sit_fname" meta_type="String Widget">
+  <property name="title">Full Name</property>
+  <property name="fields">
+   <element value="scd_sit_fname"/>
+  </property>
+  <property name="label">Full Name</property>
+  <property name="label_edit">Full Name</property>
+  <property name="description">Second Sitting Data</property>
+  <property
+     name="help">Full name as it appears on certificate/result</property>
+  <property name="readonly_layout_modes"/>
+  <property name="hidden_layout_modes">
+   <element value="create"/>
+  </property>
+  <property name="hidden_readonly_layout_modes"/>
+ </widget>
+ <widget name="scd_sit_no" meta_type="String Widget">
+  <property name="title">Exam Number</property>
+  <property name="fields">
+   <element value="scd_sit_no"/>
+  </property>
+  <property name="label">Exam Number</property>
+  <property name="label_edit">Exam Number</property>
+  <property name="readonly_layout_modes"/>
+  <property name="hidden_layout_modes">
+   <element value="create"/>
+  </property>
+  <property name="hidden_readonly_layout_modes"/>
+ </widget>
+ <widget name="scd_sit_results" meta_type="WAeUp Results Widget">
+  <property name="title">Results</property>
+  <property name="fields">
+   <element value="scd_sit_results"/>
+  </property>
+  <property name="label">Results</property>
+  <property name="label_edit">Results</property>
+  <property name="readonly_layout_modes"/>
+  <property name="hidden_layout_modes">
+   <element value="create"/>
+  </property>
+  <property name="hidden_readonly_layout_modes"/>
+ </widget>
+ <widget name="scd_sit_scan" meta_type="File Image Widget">
+  <property name="title">Scan of Second Sitting Result</property>
+  <property name="fields">
+   <element value="scd_sit_scan"/>
+  </property>
+  <property name="label">Scan of Second Sitting Result</property>
+  <property name="label_edit">Scan of Second Sitting Result</property>
+  <property name="readonly_layout_modes"/>
+  <property name="hidden_layout_modes">
+   <element value="create"/>
+  </property>
+  <property name="hidden_readonly_layout_modes"/>
+  <property name="size_max">1000000</property>
+  <property name="display_width">800</property>
+  <property name="display_height">1200</property>
+  <property name="allow_resize">True</property>
+ </widget>
+ <widget name="scd_sit_type" meta_type="Select Widget">
+  <property name="title">Exam Type</property>
+  <property name="fields">
+   <element value="scd_sit_type"/>
+  </property>
+  <property name="label">Exam Type</property>
+  <property name="label_edit">Exam Type</property>
+  <property name="readonly_layout_modes"/>
+  <property name="hidden_layout_modes">
+   <element value="create"/>
+  </property>
+  <property name="hidden_readonly_layout_modes"/>
+  <property name="vocabulary">exam_types</property>
+ </widget>
+ <widget name="stat_dec" meta_type="File Image Widget">
+  <property name="title">Statutory Declaration of Good Conduct</property>
+  <property name="fields">
+   <element value="stat_dec"/>
+  </property>
+  <property name="label">Statutory Declaration of Good Conduct</property>
+  <property name="label_edit">Statutory Declaration of Good Conduct</property>
+  <property name="readonly_layout_modes"/>
+  <property name="hidden_layout_modes">
+   <element value="create"/>
+  </property>
+  <property name="hidden_readonly_layout_modes"/>
+  <property name="size_max">1000000</property>
+  <property name="display_width">800</property>
+  <property name="display_height">1200</property>
+  <property name="allow_resize">True</property>
+ </widget>
+ <widget name="uniben" meta_type="Boolean Widget">
+  <property name="title">Former FCEO Student</property>
+  <property name="fields">
+   <element value="uniben"/>
+  </property>
+  <property name="label">Former FCEO Student</property>
+  <property name="label_edit">Former FCEO Student</property>
+  <property name="readonly_layout_modes"/>
+  <property name="hidden_layout_modes">
+   <element value="create"/>
+  </property>
+  <property name="hidden_readonly_layout_modes"/>
+  <property name="render_format">radio</property>
+ </widget>
+ <table>
+
+  <row>
+   <cell name="firstname"/>
+  </row>
+  <row>
+   <cell name="middlename"/>
+  </row>
+  <row>
+   <cell name="lastname"/>
+  </row>
+  <row>
+   <cell name="matric_no"/>
+  </row>
+  <row>
+   <cell name="matric_no_history"/>
+  </row>
+  <row>
+   <cell name="clr_ac_pin"/>
+  </row>
+  <row>
+   <cell name="entry_date"/>
+  </row>
+  <row>
+   <cell name="request_date"/>
+  </row>
+  <row>
+   <cell name="cleared_date"/>
+  </row>
+  <row>
+   <cell name="birthday"/>
+  </row>
+  <row>
+   <cell name="lga"/>
+  </row>
+  <row>
+   <cell name="nationality"/>
+  </row>
+  <row>
+   <cell name="fst_sit_fname"/>
+  </row>
+  <row>
+   <cell name="fst_sit_no"/>
+  </row>
+  <row>
+   <cell name="fst_sit_date"/>
+  </row>
+  <row>
+   <cell name="fst_sit_type"/>
+  </row>
+  <row>
+   <cell name="fst_sit_results"/>
+  </row>
+  <row>
+   <cell name="fst_sit_scan"/>
+  </row>
+  <row>
+   <cell name="scd_sit_fname"/>
+  </row>
+  <row>
+   <cell name="scd_sit_no"/>
+  </row>
+  <row>
+   <cell name="scd_sit_date"/>
+  </row>
+  <row>
+   <cell name="scd_sit_type"/>
+  </row>
+  <row>
+   <cell name="scd_sit_results"/>
+  </row>
+  <row>
+   <cell name="scd_sit_scan"/>
+  </row>
+  <row>
+   <cell name="birth_certificate"/>
+  </row>
+  <row>
+   <cell name="age_dec"/>
+  </row>
+  <row>
+   <cell name="acc_let"/>
+  </row>
+  <row>
+   <cell name="jamb_slip"/>
+  </row>
+  <row>
+   <cell name="cert"/>
+  </row>
+  <row>
+   <cell name="evid"/>
+  </row>
+  <row>
+   <cell name="jamb_let"/>
+  </row>
+  <row>
+   <cell name="res_stat"/>
+  </row>
+  <row>
+   <cell name="ref_let"/>
+  </row>
+  <row>
+   <cell name="cred"/>
+  </row>
+  <row>
+   <cell name="stat_dec"/>
+  </row>
+  <row>
+   <cell name="uniben"/>
+  </row>
+  <row>
+   <cell name="def_adm"/>
+  </row>
+
+ </table>
+</object>
+
Index: WAeUP_SRP/ois/profiles_custom/default/properties.xml
===================================================================
--- WAeUP_SRP/ois/profiles_custom/default/properties.xml	(revision 3662)
+++ WAeUP_SRP/ois/profiles_custom/default/properties.xml	(revision 3662)
@@ -0,0 +1,9 @@
+<?xml version="1.0"?>
+<site>
+ <property name="title">Student Registration Portal</property>
+ <property name="enable_password_reset" type="boolean">True</property>
+ <property name="enable_portal_joining" type="boolean">False</property>
+ <property name="session" type="string">2008/2009</property>
+ <property name="static_dir" type="string"></property>
+ <property name="institution_title" type="string">University of Ilorin</property>
+</site>
Index: WAeUP_SRP/ois/profiles_custom/default/vocabularies/acco_special_handling.xml
===================================================================
--- WAeUP_SRP/ois/profiles_custom/default/vocabularies/acco_special_handling.xml	(revision 3662)
+++ WAeUP_SRP/ois/profiles_custom/default/vocabularies/acco_special_handling.xml	(revision 3662)
@@ -0,0 +1,10 @@
+<?xml version="1.0"?>
+<?xml-stylesheet type="text/xsl" href="vocabulary.xsl"?>
+<object name="acco_special_handling" 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="no" msgid="">---</item>
+ <item key="blocked" msgid="">Blocked</item>
+</object>
Index: WAeUP_SRP/ois/profiles_custom/default/vocabularies/cos.xml
===================================================================
--- WAeUP_SRP/ois/profiles_custom/default/vocabularies/cos.xml	(revision 3662)
+++ WAeUP_SRP/ois/profiles_custom/default/vocabularies/cos.xml	(revision 3662)
@@ -0,0 +1,111 @@
+<?xml version="1.0"?>
+<?xml-stylesheet type="text/xsl" href="vocabulary.xsl"?>
+<object name="cos" 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="" msgid="">--</item>
+    <item key="BSCANA" msgid="">B.SC (ANATOMY)</item>
+    <item key="BARTEDL" msgid="">B.ART (EDO LINGUSTICS)</item>
+    <item key="BARTLAL" msgid="">B.ART (LINGUSTICS AND AFRICAN LANGUAGES)</item>
+    <item key="BAEDEL" msgid="">B.A(ED) ADULT EDUCATION/ENGLISH AND LIT.</item>
+    <item key="BAEDCRM" msgid="">B.A(ED) CERAMICS</item>
+    <item key="BAEDEDO" msgid="">B.A(ED) EDO</item>
+    <item key="BAEDENG" msgid="">B.A(ED) ENGLISH</item>
+    <item key="BAEDFAA" msgid="">B.A(ED) FINE ARTS</item>
+    <item key="BAEDFRC" msgid="">B.A(ED) FRENCH</item>
+    <item key="BAEDHIS" msgid="">B.A(ED) HISTORY</item>
+    <item key="BEDADT" msgid="">B.ED ADULT EDUCATION</item>
+    <item key="BSCEDHK" msgid="">B.SC (ED) HUMAN KINETICS</item>
+    <item key="BSCEDE" msgid="">B.SC(ED) ADULT EDUCATION/ECONOMICS $ ST</item>
+    <item key="BSCEDG" msgid="">B.SC(ED) ADULT EDUCATION/GEOGRAPHY AND REGIONAL PLANNING</item>
+    <item key="BSCEDAC" msgid="">B.SC(ED) ACCOUNTING EDUCATION</item>
+    <item key="BSCEDAP" msgid="">B.SC(ED) ADULT EDUCATION/POL SCI</item>
+    <item key="BSCEDAG" msgid="">B.SC(ED) AGRICULTURE EDUCATION</item>
+    <item key="BSCEDB" msgid="">B.SC(ED) BIOLOGY</item>
+    <item key="BSCEDBC" msgid="">B.SC(ED) BUILDING CONSTRUCTION EDUCATION</item>
+    <item key="BSCEDBE" msgid="">B.SC(ED) BUSINESS EDUCATION (ACCOUNTING)</item>
+    <item key="BSCEDC" msgid="">B.SC(ED) CHEMISTRY</item>
+    <item key="BSCEDCO" msgid="">B.SC(ED) COMPUTER</item>
+    <item key="BSCEDES" msgid="">B.SC(ED) ECONOMICS AND STATISTICS</item>
+    <item key="BSCEDEE" msgid="">B.SC(ED) ELECTRICAL ELECTONICS EDUCATION</item>
+    <item key="BSCEDGR" msgid="">B.SC(ED) GEOGRAPHY AND REGIONAL PLANNING</item>
+    <item key="BSCEDHE" msgid="">B.SC(ED) HEALTH EDUCATION</item>
+    <item key="BSCEDHM" msgid="">B.SC(ED) HOME ECONOMICS EDUCATION</item>
+    <item key="BSCEDTE" msgid="">B.SC(ED) INDUSTRIAL TECHNICAL EDUCATION</item>
+    <item key="BSCEDIS" msgid="">B.SC(ED) INTEGRATED SCIENCE</item>
+    <item key="BSCEDM" msgid="">B.SC(ED) MATHENATICS</item>
+    <item key="BSCEDME" msgid="">B.SC(ED) MECHANICAL ENGINEERING</item>
+    <item key="BSCEDPE" msgid="">B.SC(ED) PHYSICAL EDUCATION</item>
+    <item key="BSCEDP" msgid="">B.SC(ED) PHYSICS</item>
+    <item key="BSCEDPS" msgid="">B.SC(ED) POLITICAL SCIENCE AND PUBLIC AD</item>
+    <item key="BSCEDSE" msgid="">B.SC(ED) SECRETATIAL EDUCATION</item>
+    <item key="BSCEDSS" msgid="">B.SC(ED) SOCIAL STUDIES</item>
+    <item key="BSCEDWB" msgid="">B.SC(ED) WOODWORK AND BUILDING</item>
+    <item key="BAGAEE" msgid="">BACHELOR OF AGRICULTURE (AGRIC ECONS)</item>
+    <item key="BAGANS" msgid="">BACHELOR OF AGRICULTURE (ANIMAL SCIENCE)</item>
+    <item key="BAGCRS" msgid="">BACHELOR OF AGRICULTURE (CROP SCIENCE)</item>
+    <item key="BAGFIS" msgid="">BACHELOR OF AGRICULTURE (FISHERIES)</item>
+    <item key="BAGSOS" msgid="">BACHELOR OF AGRICULTURE (SOIL SCIENCE)</item>
+    <item key="BARTREL" msgid="">BACHELOR OF ART(RELIGIOUS STUDIES)</item>
+    <item key="BARTENL" msgid="">BACHELOR OF ARTS (ENGLISH AND LITERATURE)</item>
+    <item key="BARTCER" msgid="">BACHELOR OF ARTS (FAA CERAMICS)</item>
+    <item key="BARTAPG" msgid="">BACHELOR OF ARTS (FAA GRAPHICS)</item>
+    <item key="BARTAPM" msgid="">BACHELOR OF ARTS (FAA METAL)</item>
+    <item key="BARTFAP" msgid="">BACHELOR OF ARTS (FAA PAINTING)</item>
+    <item key="BARTSCP" msgid="">BACHELOR OF ARTS (FAA SCULPTURE)</item>
+    <item key="BARTTXT" msgid="">BACHELOR OF ARTS (FAA TEXTILE)</item>
+    <item key="BARTFAA" msgid="">BACHELOR OF ARTS (FINE AND APPLIED ARTS)</item>
+    <item key="BARTISD" msgid="">BACHELOR OF ARTS (INTER.STUDIES)</item>
+    <item key="BARTPHL" msgid="">BACHELOR OF ARTS (PHILOSOPHY)</item>
+    <item key="BARTFOL" msgid="">BACHELOR OF ARTS FOREIGN LANGUAGES</item>
+    <item key="BARTHIS" msgid="">BACHELOR OF ARTS(HISTORY</item>
+    <item key="BDS" msgid="">BACHELOR OF DENTAL SURGERY</item>
+    <item key="BENGCHE" msgid="">BACHELOR OF ENGINEERING (CHEMICAL)</item>
+    <item key="BENGCVE" msgid="">BACHELOR OF ENGINEERING (CIVIL)</item>
+    <item key="BENGCOM" msgid="">BACHELOR OF ENGINEERING (COMPUTER)</item>
+    <item key="BENGEEE" msgid="">BACHELOR OF ENGINEERING (ELECT/ELECT)</item>
+    <item key="BENGEEP" msgid="">BACHELOR OF ENGINEERING (ELECTRIC/ELECTRONICS) PTI</item>
+    <item key="BENGMCH" msgid="">BACHELOR OF ENGINEERING (MECHANICAL)</item>
+    <item key="BENGPEE" msgid="">BACHELOR OF ENGINEERING (PETROLEUM)</item>
+    <item key="BENGPRE" msgid="">BACHELOR OF ENGINEERING (PRODUCTION)</item>
+    <item key="BAGFOW" msgid="">BACHELOR OF FORESTRY AND WILDFIFE</item>
+    <item key="LLB" msgid="">BACHELOR OF LAWS</item>
+    <item key="MBBSMED" msgid="">BACHELOR OF MEDICINE AND SURGERY</item>
+    <item key="BSCACC" msgid="">BACHELOR OF SCIENCE (ACCOUNTING)</item>
+    <item key="BSCBOT" msgid="">BACHELOR OF SCIENCE (BOTANY)</item>
+    <item key="BSCBUS" msgid="">BACHELOR OF SCIENCE (BUSINESS ADMIN.)</item>
+    <item key="BSCCHM" msgid="">BACHELOR OF SCIENCE (CHEMISTRY)</item>
+    <item key="BSCECO" msgid="">BACHELOR OF SCIENCE (ECO.AND STATISTICS)</item>
+    <item key="BSCEVL" msgid="">BACHELOR OF SCIENCE (ENVIROMENT)</item>
+    <item key="BSCGEO" msgid="">BACHELOR OF SCIENCE (GEO.AND REG.PLANN.)</item>
+    <item key="BSCGLY" msgid="">BACHELOR OF SCIENCE (GEOLOGY)</item>
+    <item key="BSCMCB" msgid="">BACHELOR OF SCIENCE (MICROBIOLOGY)</item>
+    <item key="BSCMLS" msgid="">BACHELOR OF SCIENCE (MEDICAL LAB SCIENCE)</item>
+    <item key="BSCSAA" msgid="">BACHELOR OF SCIENCE (SOC.AND ANTHRO.)</item>
+    <item key="BSCAEB" msgid="">BACHELOR OF SCIENCE IN ANIMAL AND ENVIRONMENTAL BIOLOGY</item>
+    <item key="BSCBCH" msgid="">BACHELOR OF SCIENCE(BIOCHEM)</item>
+    <item key="BSCCSC" msgid="">BACHELOR OF SCIENCE(COMPUTER SCIENCE)</item>
+    <item key="BSCINC" msgid="">BACHELOR OF SCIENCE(INDUSTRIAL CHEMISTRY)</item>
+    <item key="BSCINM" msgid="">BACHELOR OF SCIENCE(INDUSTRIAL MATHEMATICS)</item>
+    <item key="BSCINP" msgid="">BACHELOR OF SCIENCE(INDUSTRIAL PHYSICS)</item>
+    <item key="BSCME" msgid="">BACHELOR OF SCIENCE(MATHEMATICS$ECONS)</item>
+    <item key="BSCMTH" msgid="">BACHELOR OF SCIENCE(MATHEMATICS)</item>
+    <item key="BSCPHY" msgid="">BACHELOR OF SCIENCE(PHYSICS)</item>
+    <item key="BSCPOL" msgid="">BACHELOR OF SCIENCE(POL.SCI AND PUB.ADM)</item>
+    <item key="BSCPAM" msgid="">BACHELOR OF SCIENCE(PURE AND APPLIED MATH)</item>
+    <item key="BSCZOO" msgid="">BACHELOR OF SCIENCE(ZOOLOGY)</item>
+    <item key="BARTMAS" msgid="">BACHELOR OF ART (MASS COMMUNICATION)</item>
+    <item key="BARTTHR" msgid="">BACHELOR OF ART (THEARTER ARTS)</item>
+    <item key="OD" msgid="">DOCTOR OF OPTOMETRY</item>
+    <item key="PHARMD" msgid="">DOCTOR OF PHARMACY</item>
+    <item key="BSCMBC" msgid="">MEDICAL BIOCHEMISTRY</item>
+    <item key="BSCPHS" msgid="">PHYSIOLOGY</item>
+    <item key="BARTIBO" msgid="">B.ART (IGBO LINGUSTICS)</item>
+    <item key="BSCNUR" msgid="">B.SC (NURSING)</item>
+    <item key="BENGGSE" msgid="">BACHELOR OF ENGINEERING (GAS)</item>
+    <item key="BSCBNK" msgid="">BACHELOR OF SCIENCE (BANKING)</item>
+
+</object>
Index: WAeUP_SRP/ois/profiles_custom/default/vocabularies/entry_modes.xml
===================================================================
--- WAeUP_SRP/ois/profiles_custom/default/vocabularies/entry_modes.xml	(revision 3662)
+++ WAeUP_SRP/ois/profiles_custom/default/vocabularies/entry_modes.xml	(revision 3662)
@@ -0,0 +1,21 @@
+<?xml version="1.0"?>
+<?xml-stylesheet type="text/xsl" href="vocabulary.xsl"?>
+<object name="entry_modes" 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="" msgid=""></item>
+ <item key="ume_ft" msgid="">UME Full Time</item>
+ <item key="de_ft" msgid="">Direct Entry Full Time</item>
+ <item key="de_pt" msgid="">Direct Entry Part Time</item>
+ <item key="dp_ft" msgid="">Diploma Full Time</item>
+ <item key="dp_pt" msgid="">Diploma Part Time</item>
+ <item key="ug_ft" msgid="">Undergraduate Full Time</item>
+ <item key="ug_pt" msgid="">Undergraduate Part Time</item>
+ <item key="ug_sw" msgid="">Undergraduate Sandwich</item> 
+ <item key="pg_ft" msgid="">Postgraduate Full Time</item>
+ <item key="pg_pt" msgid="">Postgraduate Part Time</item>
+ <item key="ct_ft" msgid="">Certificate Full Time</item>
+ <item key="ct_pt" msgid="">Certificate Part Time</item>
+</object>
Index: WAeUP_SRP/ois/profiles_custom/default/vocabularies/levels.xml
===================================================================
--- WAeUP_SRP/ois/profiles_custom/default/vocabularies/levels.xml	(revision 3662)
+++ WAeUP_SRP/ois/profiles_custom/default/vocabularies/levels.xml	(revision 3662)
@@ -0,0 +1,18 @@
+<?xml version="1.0"?>
+<?xml-stylesheet type="text/xsl" href="vocabulary.xsl"?>
+<object name="levels" 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="" msgid=""></item>
+ <item key="000" msgid="">Pre-Studies</item>
+ <item key="100" msgid="">Year 1 (100 Level)</item>
+ <item key="200" msgid="">Year 2 (200 Level)</item>
+ <item key="300" msgid="">Year 3 (300 Level)</item>
+ <item key="400" msgid="">Year 4 (400 Level)</item>
+ <item key="500" msgid="">Year 5 (500 Level)</item>
+ <item key="600" msgid="">Year 6 (600 Level)</item>
+ <item key="700" msgid="">Year 7 (700 Level)</item>
+ <item key="800" msgid="">Year 8 (800 Level)</item>
+</object>
Index: WAeUP_SRP/ois/profiles_custom/default/vocabularies/pin_prefixes.xml
===================================================================
--- WAeUP_SRP/ois/profiles_custom/default/vocabularies/pin_prefixes.xml	(revision 3662)
+++ WAeUP_SRP/ois/profiles_custom/default/vocabularies/pin_prefixes.xml	(revision 3662)
@@ -0,0 +1,16 @@
+<?xml version="1.0"?>
+<?xml-stylesheet type="text/xsl" href="vocabulary.xsl"?>
+<object name="pin_prefixes" 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="APP" msgid="">PCE Application</item>
+    <item key="PRE" msgid="">PRE-NCE Application</item>
+    <item key="CLR" msgid="">Clearance</item>
+    <item key="HOS" msgid="">Hostel Booking</item>
+    <item key="HOM" msgid="">Hostel Maintenance</item>
+
+
+</object>
Index: WAeUP_SRP/ois/waeup_custom/apply_admission_manage_form.pt
===================================================================
--- WAeUP_SRP/ois/waeup_custom/apply_admission_manage_form.pt	(revision 3662)
+++ WAeUP_SRP/ois/waeup_custom/apply_admission_manage_form.pt	(revision 3662)
@@ -0,0 +1,94 @@
+<tal:block define="rendered_main options/rendered|nothing;
+           portal_status_message options/psm|nothing;
+           reg_no options/reg_no|nothing;
+           ds options/ds|nothing;
+           "
+           >	
+  <metal:block define-macro="edit_form">
+    <metal:block use-macro="here/main_template/macros/master">
+      <metal:block fill-slot="main">
+
+        <form action="" id="editForm" method="post" 
+              enctype="multipart/form-data" class="workflow"
+              tal:attributes="action string:${context/absolute_url}/apply_admission_manage"
+              >
+
+          <span tal:condition="not: rendered_main">
+            <h3>Application Process</h3>
+            <br />
+            
+            <table tal:define="info_applicants context/getApplicantsStatistics">
+            <tr> 
+              <td>PCE Applicants (status submitted):</td> 
+              <td><span tal:replace="info_applicants/submitted_pce" /></td>  
+            </tr>
+            <tr> 
+              <td>Pre-NCE Applicants (status submitted):</td> 
+              <td><span tal:replace="info_applicants/submitted_prence" /></td>
+            </tr>
+            <tr> 
+              <td>All Applicants (status admitted):</td> 
+              <td><span tal:replace="info_applicants/admitted" /></td>  
+            </tr>
+            <tr> 
+              <td>All Applicants (status student record created):</td> 
+              <td><span tal:replace="info_applicants/created" /></td>
+            </tr>            
+            <tr> 
+              <td>All Applicants (status not admitted):</td> 
+              <td><span tal:replace="info_applicants/not_admitted" /></td>  
+            </tr>    
+            </table>            
+            
+            <br/>
+            
+            <div class="label">Registration No:</div>
+            <input type="text" name="reg_no" size="15"
+                   />
+            <input type="submit" class="standalone" 
+                   name="search"
+                   value="Search" 
+                   />
+          </span>
+
+          <span tal:condition="rendered_main">
+            <h3>Application Record <span tal:replace="reg_no"/></h3>
+            <br />
+            <div tal:replace="structure rendered_main" />
+                        
+            <input type="hidden" name="reg_no"
+                   tal:attributes="value reg_no|nothing"
+                   />
+            <input type="submit" class="standalone" 
+                   name="reset"
+                   value="Reset" 
+                   tal:condition="python: ds['status'] and 'submitted' in ds['status']"
+                   />
+                   
+                   
+            <input type="submit" class="standalone" 
+                   name="edit"
+                   value="Save" 
+                   />                   
+                   
+            <br /><br />
+            
+
+            <div class="label">Registration No:</div>
+            <input type="text" name="new_reg_no" size="15"
+                   /> &nbsp;
+            <input type="submit" class="standalone" 
+                   name="search"
+                   value="Search next" 
+                   />
+          </span>
+        </form>
+        
+        <br/>
+        
+      
+        
+      </metal:block>
+    </metal:block>
+  </metal:block>
+</tal:block>
Index: WAeUP_SRP/ois/waeup_custom/getAccommodationInfo.py
===================================================================
--- WAeUP_SRP/ois/waeup_custom/getAccommodationInfo.py	(revision 3662)
+++ WAeUP_SRP/ois/waeup_custom/getAccommodationInfo.py	(revision 3662)
@@ -0,0 +1,108 @@
+## Script (Python) "getAccommodationInfo"
+##bind container=container
+##bind context=context
+##bind namespace=
+##bind script=script
+##bind subpath=traverse_subpath
+##parameters=student_id=None
+##title=
+##
+# $Id: getAccommodationInfo.py 1726 2007-05-02 06:21:50Z henrik $
+"""
+return Info about the current Student
+"""
+import logging
+logger = logging.getLogger('Skins.getAccommodationInfo')
+import DateTime
+
+request = context.REQUEST
+mtool = context.portal_membership
+wf = context.portal_workflow
+member = mtool.getAuthenticatedMember()
+member_id = str(member)
+path_info = request.get('PATH_INFO').split('/')
+
+if mtool.isAnonymousUser():
+    return None
+info = {}
+if student_id is None:
+    requested_id = context.getStudentId()
+    if requested_id and not context.isStaff() and member_id != requested_id:
+        logger.info('%s tried to access %s' % (member_id,requested_id))
+        return None
+    elif context.isStaff():
+        student_id = requested_id
+    else:
+        student_id = member_id
+student_record = context.students_catalog.getRecordByKey(student_id)
+if student_record is None:
+    logger.info('%s not found in students_catalog' % student_id)
+    return None
+
+info['error'] = None
+info['matric_no']=student_record.matric_no
+info['jamb_reg_no']=student_record.jamb_reg_no
+info['name']=student_record.name
+info['email']=student_record.email
+info['level']=student_record.level
+info['verdict']=getattr(student_record,'verdict','')
+review_state = info['review_state'] = student_record.review_state
+info['session'] = session = context.getSessionId()
+students_object = context.portal_url.getPortalObject().campus.students
+student = getattr(students_object, student_id)
+info['student_id'] = student_id
+info['student'] = student
+
+booking_allowed = False
+
+# customize from here
+
+try:
+    level = int(student_record.level)
+except:
+    logger.info('%s has invalid level %s' % (student_id,student_record.level))
+    info['acco'] = None
+    info['booking_allowed'] = False
+    info['student_status'] = ''
+    return info    
+
+if review_state in ('school_fee_paid','courses_registered', 'courses_validated',) and student_record.session == session[0]:
+    info['booking_allowed'] = True
+    info['online_payment'] = True
+else:
+    info['acco'] = None
+    info['booking_allowed'] = False
+    info['student_status'] = ''
+    return info
+
+acco_id = 'accommodation_' + session[0]
+acco = getattr(student,acco_id,None)
+info['acco'] = acco
+info['acco_id'] = acco_id
+
+info['maintenance_paid'] = False
+if acco is not None:
+    info['acco_doc'] = acco.getContent()
+    info['acco_review_state'] = wf.getInfoFor(acco,'review_state',None)
+    info['maintenance_paid'] = info['acco_review_state'] == "maintenance_fee_paid"
+d = {}
+if level >= 300:
+   bt = 'fi'
+if level == 100:
+    bt = 'fr'
+elif level < 100:
+    bt = 'pr'    
+elif level < 300:
+    bt = 're'
+
+d['sex'] = 'male'
+if student_record.sex:
+    d['sex'] = 'female'
+
+
+info['sex']=d['sex']
+d['bt'] = bt
+student_status = "%(sex)s_%(bt)s" % d
+info['student_status'] = student_status
+return info
+
Index: WAeUP_SRP/ois/waeup_custom/getApplicantsStatistics.py
===================================================================
--- WAeUP_SRP/ois/waeup_custom/getApplicantsStatistics.py	(revision 3662)
+++ WAeUP_SRP/ois/waeup_custom/getApplicantsStatistics.py	(revision 3662)
@@ -0,0 +1,39 @@
+## Script (Python) "getApplicantsStatistics"
+##bind container=container
+##bind context=context
+##bind namespace=
+##bind script=script
+##bind subpath=traverse_subpath
+##parameters=
+##title=
+##
+# $Id: getApplicantsStatistics.py 1277 2007-01-11 21:11:37Z joachim $
+"""
+return Student Statistics
+"""
+
+import logging
+logger = logging.getLogger('Skins.getApplicantsStatistics')
+
+logger.info('%s invoked statistics' % context.portal_membership.getAuthenticatedMember())
+if not context.isStaff():
+    return 'Not allowed'
+
+
+info = {}
+res_submitted_pce = context.applicants_catalog(status = 'submitted', screening_type = 'pce')
+res_not_admitted = context.applicants_catalog(status = 'not admitted')
+res_submitted_prence = context.applicants_catalog(status = 'submitted', screening_type = 'prence')
+res_admitted = context.applicants_catalog(status = 'admitted')
+res_created = context.applicants_catalog(status = 'created')
+
+info['submitted_pce'] = len(res_submitted_pce)
+info['admitted'] = len(res_admitted)
+info['not_admitted'] = len(res_not_admitted)
+info['submitted_prence'] = len(res_submitted_prence)
+info['created'] = len(res_created)
+
+return info
+
+
+
Index: WAeUP_SRP/ois/waeup_custom/getCosCombinedVoc.py
===================================================================
--- WAeUP_SRP/ois/waeup_custom/getCosCombinedVoc.py	(revision 3662)
+++ WAeUP_SRP/ois/waeup_custom/getCosCombinedVoc.py	(revision 3662)
@@ -0,0 +1,17 @@
+##parameters=key=None
+# $Id: getCosCombinedVoc.py 2814 2007-11-28 12:26:51Z henrik $
+"""
+Return the combined courses as an vocabulary
+
+"""
+if key is None:
+    l = []
+    for k,v in context.portal_vocabularies.cos.items():
+        l += (k,v),
+    return l
+for voc in (context.portal_vocabularies.cos,):
+    title = voc.get(key,None)
+    if title is not None:
+        return title
+    else:
+        raise KeyError
Index: WAeUP_SRP/ois/waeup_custom/getInterswitchParams.py
===================================================================
--- WAeUP_SRP/ois/waeup_custom/getInterswitchParams.py	(revision 3662)
+++ WAeUP_SRP/ois/waeup_custom/getInterswitchParams.py	(revision 3662)
@@ -0,0 +1,40 @@
+## Script (Python) "getInterswitchParams"
+##bind container=container
+##bind context=context
+##bind namespace=
+##bind script=script
+##bind subpath=traverse_subpath
+##parameters=paytype,student,payment_id,student_record
+##title=
+##
+# $Id$
+
+test = ""
+d = {}
+d['payment_possible'] = True
+d['pay_ship_to'] = "Federal College Okene"
+
+d['site_id'] = '83'
+d['site_name'] = "fceokene.waeup.org"
+d['currency_id'] = '566'
+d['type'] = 'online'
+d['status'] = 'started'
+d['surcharge'] = '150'
+if test == 'simulate':
+    d['action'] = "%s/payments/%s/simulate_callback" % (student.absolute_url(),payment_id) #do not use simulate_callback
+elif test == 'test':
+    d['action'] = "https://webpay.interswitchng.com/test_paydirect/webpay/pay.aspx"
+else:
+    d['action'] = "https://webpay.interswitchng.com/paydirect/webpay/pay.aspx"
+if paytype in ("HOM",):
+    d['callback_function'] = 'interswitch_cb'
+    d['pay_item_id'] = '8300'
+    d['type_description'] = 'Hostel Maintenance Fee'
+    d['pay_item_name'] = "FCE Okene %(type_description)s" % d
+    d['amount'] = '4000'
+    d['category'] = 'hostel_maintenance'
+    d['item'] = paytype
+    #d['payment_params'] = 'switch_college_split'
+    d['payment_params'] = '0'
+
+return d
Index: WAeUP_SRP/ois/waeup_custom/getNextInfo.py
===================================================================
--- WAeUP_SRP/ois/waeup_custom/getNextInfo.py	(revision 3662)
+++ WAeUP_SRP/ois/waeup_custom/getNextInfo.py	(revision 3662)
@@ -0,0 +1,62 @@
+## Script (Python) "getNextInfo"
+##bind container=container
+##bind context=context
+##bind namespace=
+##bind script=script
+##bind subpath=traverse_subpath
+##parameters=student_brain
+##title=
+##
+# $Id: getNextInfo.py 2678 2007-11-16 13:41:44Z henrik $
+"""
+return the students next info
+"""
+try:
+    from Products.zdb import set_trace
+except:
+    def set_trace():
+        pass
+
+info = {}
+
+reasons = ''
+
+session_id = student_brain.session
+level_id = student_brain.level
+review_state = student_brain.review_state
+verdict = student_brain.verdict
+
+has_verdict = verdict and verdict != 'N/A'
+has_session = session_id and session_id != 'N/A'
+has_level = level_id and level_id != 'N/A'
+
+info['next_transition'] = None
+info['next_session_id'] = next_session_id = session_id
+info['next_level_id'] = next_level_id = level_id
+info['next_verdict'] = verdict
+info['next_previous_verdict'] = ''
+verdicts_voc = context.portal_vocabularies.verdicts
+if review_state == 'cleared_and_validated':
+    info['next_transition'] = "pay_school_fee"
+    info['next_verdict'] = ''
+elif review_state == 'returning' and has_verdict and has_level and has_session:
+    info['next_session_id'] = next_session_id = "%02d" % (int(session_id)+1)
+    if int(session_id) > 4:
+        info['next_transition'] = "pay_school_fee"
+        info['next_verdict'] = ''
+        info['next_previous_verdict'] = verdict
+        if verdict in ('A','B','G','C','Z',):                                     #customized
+            info['next_level_id'] = "%s" % (int(level_id) + 100)
+        #elif verdict == 'C':
+        #    info['next_level_id'] = "%s" % (int(level_id) + 10)
+        else:
+            info['next_level_id'] = level_id
+    else:
+        info['next_level_id'] = "%s" % (int(level_id) + 100)
+elif review_state == 'returning' and not (has_session and has_level and has_verdict):
+    reasons = "Your data record is incomplete. School fee payment has been disabled, please contact your faculty!"
+
+info['reasons'] = reasons
+info['next_session_str'] = context.getSessionsVoc(next_session_id)
+
+return info
Index: WAeUP_SRP/ois/waeup_custom/getPaymentsFolderInfo.py
===================================================================
--- WAeUP_SRP/ois/waeup_custom/getPaymentsFolderInfo.py	(revision 3662)
+++ WAeUP_SRP/ois/waeup_custom/getPaymentsFolderInfo.py	(revision 3662)
@@ -0,0 +1,131 @@
+## Script (Python) "getPaymentsFolderInfo"
+##bind container=container
+##bind context=context
+##bind namespace=
+##bind script=script
+##bind subpath=traverse_subpath
+##parameters=
+##title=
+##
+# $Id: getPaymentsFolderInfo.py 2480 2007-10-30 15:23:25Z joachim $
+"""
+Info for the PaymentsFolder
+"""
+from Products.AdvancedQuery import Eq, Between, Le,In
+
+mtool = context.portal_membership
+wftool = context.portal_workflow
+member = mtool.getAuthenticatedMember()
+payments_catalog = context.payments_catalog
+aq_payments = payments_catalog.evalAdvancedQuery
+if mtool.isAnonymousUser():
+    return None
+try:
+    from Products.zdb import set_trace
+except:
+    def set_trace():
+        pass
+
+def cmp_id(a,b):
+    s1 = "%(id)s" % a
+    s2 = "%(id)s" % b
+    if s1 == s2:
+        return 0
+    if s1 > s2:
+        return 1
+    return -1
+
+import DateTime
+request = context.REQUEST
+#students = context.portal_url.getPortalObject().campus.students
+student_id = context.getStudentId()
+if student_id is None:
+    return context.REQUEST.RESPONSE.redirect("%s/srp_anonymous_view" % context.portal_url())
+#student = getattr(students,student_id)
+student_record = context.students_catalog.getRecordByKey(student_id)
+
+
+info = {}
+is_so = info['is_so'] = context.isSectionOfficer()
+is_student = info['is_student'] = context.isStudent()
+info['student_name'] = student_record.name
+info['query_url'] = "https://webpay.interswitchng.com/paydirect/services/TransactionQueryURL.aspx"
+review_state = info['review_state'] = student_record.review_state
+parttime = student_record.mode and student_record.mode.endswith('_pt')
+fulltime = student_record.mode and student_record.mode.endswith('_ft')
+
+
+session = student_record.session
+next_info = context.getNextInfo(student_record)
+info['next_session'] = next_info['next_session_id']
+info['next_session_str'] = next_info['next_session_str']
+info['payment_method'] = ""
+info['reasons'] = next_info['reasons']
+
+# begin customization
+
+if review_state == 'cleared_and_validated':
+    info['payment_method'] = "online_payment"
+#elif review_state == 'cleared_and_validated' and session == '07':
+#    info['payment_method'] = "sc_payment"
+elif review_state == 'returning' and info['next_session'] != session:
+    info['payment_method'] = "online_payment"
+info['prod_id'] = '105'
+
+# end customization
+
+info['student_name'] = student_record.name
+payments_path = "%s/campus/students/%s/payments" % (context.portal_url(),student_id)
+payments = []
+payment_records = aq_payments(Eq('student_id',student_id)) # & Eq('session_id',student_record.session))
+vocabularies = context.portal_vocabularies
+paid_fees = []
+for payment in payment_records:
+    if payment.status == "paid":
+        paid_fees += "%s_%s" % (payment.category,payment.session_id),
+#info['pf'] = paid_fees
+for payment in payment_records:
+    row = {}
+    row['id'] = payment.key
+    if payment.status == 'invalid':
+        row['title'] = "Invalid Payment, Naira %s, %s" % (payment.amount,
+                                                          payment.date.strftime("%d/%m/%y %H:%M:%S"))
+    else:
+        row['title'] = "%s for Session %s, Naira %s, %s" % (vocabularies.payment_categories.get(payment.category),
+                                                            vocabularies.sessions.get(payment.session_id),
+                                                            payment.amount,
+                                                            payment.date.strftime("%d/%m/%y %H:%M:%S"))
+    oid = payment.order_id
+    onr = oid.rfind('-')+1
+    if onr > 0:
+        start_pos = onr
+    else:
+        start_pos = 6
+    url = row['url'] = "%s/p%s" % (payments_path,oid[start_pos:])
+    row['is_requeryable'] = "%s_%s" % (payment.category,payment.session_id) not in paid_fees and not payment.resp_desc and payment.type == 'online'# or str(member) in ('admin',)  # customized too
+    row['is_approvable'] = is_so and row['is_requeryable'] and payment.category == 'schoolfee' # does not make sense for maintenance
+    row['resp_desc'] = payment.resp_desc or 'Payment Process Interrupted'
+    row['trans_ref'] = payment.order_id
+    if row['is_requeryable']:
+        row['callback_url'] = "%(url)s/interswitch_cb" % row
+#        if payment.category == 'schoolfee':
+#            row['callback_url'] = "%(url)s/interswitch_cb" % row
+#        elif payment.category == 'hostel_maintenance':
+#            row['callback_url'] = "%(url)s/interswitch_acco_cb" % row
+#        else:
+        href = '%(query_url)s' % info
+        href += '?transRef=%(trans_ref)s' % row
+        href += '&prodID=%(prod_id)s' % info
+        href += '&redirectURL=%(callback_url)s' % row
+        row['href'] = href
+    if payment.status == 'paid':
+        row['confirmed'] = 'active'
+    else:
+        row['confirmed'] = 'unsuccessful'
+    row['is_editable'] = is_so and (row['confirmed'] == 'active')
+    payments.append(row)
+
+payments.sort(cmp_id)
+info['payments'] = payments
+return info
+
Index: WAeUP_SRP/ois/waeup_custom/getSchoolFee.py
===================================================================
--- WAeUP_SRP/ois/waeup_custom/getSchoolFee.py	(revision 3662)
+++ WAeUP_SRP/ois/waeup_custom/getSchoolFee.py	(revision 3662)
@@ -0,0 +1,54 @@
+## Script (Python) "getSchoolFee"
+##bind container=container
+##bind context=context
+##bind namespace=
+##bind script=script
+##bind subpath=traverse_subpath
+##parameters=brain=None
+##title=
+##
+# $Id: getSchoolFee.py 2534 2007-11-05 06:37:12Z henrik $
+"""
+return SchoolFee
+"""
+
+
+d = {}
+
+if brain.mode == 'ug_sw':  
+    if str(brain.level) == '100':    # both 100 fresh and 100 returning who register for 200
+        d['all'] = 35000
+    else:
+        d['all'] = 30000
+elif brain.mode == 'pg_sw':  
+    d['all'] = 35000
+elif brain.mode == 'dp_pt':  
+    if str(brain.level) == '100' and brain.review_state == 'cleared_and_validated':    # only 100 fresh 
+        d['all'] = 40000
+    else:
+        d['all'] = 35000
+elif brain.mode == 'ug_pt':  
+    if str(brain.level) == '100' and brain.review_state == 'cleared_and_validated':    # only 100 fresh 
+        d['all'] = 50000
+    else:
+        d['all'] = 45000
+elif brain.mode == 'pg_pt':  
+    if str(brain.level) == '600' and brain.review_state == 'cleared_and_validated':    # only 600 fresh 
+        d['all'] = 60000
+    elif str(brain.level) == '600' and brain.verdict == 'C':                           # 600 repeaters
+        d['all'] = 55000
+    elif str(brain.level) == '600':                                                    # going to register for 700
+        d['all'] = 75000        
+    else:
+        d['all'] = 65000
+else:
+    d['all'] = 0
+
+
+next_info = context.getNextInfo(brain)
+next_session_str = next_info['next_session_str']
+d['next_session_id'] = next_info['next_session_id']
+d['description'] = "School Fee for Session %s" % next_session_str
+
+return d
+
Index: WAeUP_SRP/ois/waeup_custom/getSimpleStudentStatistics.py
===================================================================
--- WAeUP_SRP/ois/waeup_custom/getSimpleStudentStatistics.py	(revision 3662)
+++ WAeUP_SRP/ois/waeup_custom/getSimpleStudentStatistics.py	(revision 3662)
@@ -0,0 +1,137 @@
+## Script (Python) "getRetStudentStatistics"
+##bind container=container
+##bind context=context
+##bind namespace=
+##bind script=script
+##bind subpath=traverse_subpath
+##parameters=
+##title=
+##
+# $Id: getStudentStatistics.py 1277 2007-01-11 21:11:37Z joachim $
+"""
+return Student Statistics
+"""
+
+import logging
+logger = logging.getLogger('Skins.getSimpleStudentStatistics')
+
+logger.info('%s invoked statistics' % context.portal_membership.getAuthenticatedMember())
+if not context.isStaff():
+    return
+
+
+catA =      (      'school_fee_paid',
+                   'courses_registered',
+                   'courses_validated',
+                   )
+
+catB =      (      'courses_registered',
+                   'courses_validated',
+                   )
+
+catC =      (      'student_created',
+                   'returning',
+                   'admitted',
+                   'clearance_pin_entered',
+                   'objection_raised',
+                   'clearance_requested',
+                   'cleared_and_validated',
+                   )
+
+current_session = context.getSessionId()[0]
+
+
+returning =  ('110','120','200','210','220','300','310','320','400','410','420','500','510', '520','500','510','520','610','620','700','710','720','800','810','820',)
+new =        ('100','600')
+
+
+faculties = context.portal_catalog(portal_type="Faculty")
+
+l = []
+
+fac_res = {}
+
+dict = {}
+dict['id'] = 'All Faculties'
+dict['title'] = 'All Faculties'
+
+
+res_ft = context.students_catalog(level = returning)
+dict['total_ft'] = len(res_ft)
+
+res_pt = context.students_catalog(level = new)
+dict['total_pt'] = len(res_pt)
+
+res_Aft = context.students_catalog(review_state = catA, level = returning, session = current_session)
+dict['total_Aft'] = len(res_Aft)
+
+res_Apt = context.students_catalog(review_state = catA, level = new, session = current_session)
+dict['total_Apt'] = len(res_Apt)
+
+
+
+res_Bft = context.students_catalog(review_state = catB, level = returning, session = current_session)
+dict['total_Bft'] = len(res_Bft)
+
+res_Bpt = context.students_catalog(review_state = catB, level = new, session = current_session)
+dict['total_Bpt'] = len(res_Bpt)
+
+
+
+res_Cft = context.students_catalog(review_state = catC, level = returning, session = current_session)
+dict['total_Cft'] = len(res_Cft)
+
+res_Cpt = context.students_catalog(review_state = catC, level = new, session = current_session)
+dict['total_Cpt'] = len(res_Cpt)
+
+
+
+
+res_total = context.students_catalog()
+dict['total_in_catalog'] = len(res_total)
+dict['not_categorized'] = dict['total_in_catalog'] - dict['total_ft'] - dict['total_pt']
+
+l.append(dict)
+
+
+for f in faculties:
+    dict = {}
+    dict['id'] = f.getId
+    dict['title'] = f.Title
+
+    res_ft = context.students_catalog(faculty = f.getId, level = returning)
+    dict['total_ft'] = len(res_ft)
+
+    res_pt = context.students_catalog(faculty = f.getId, level = new)
+    dict['total_pt'] = len(res_pt)
+
+
+    res_Aft = context.students_catalog(faculty = f.getId, review_state = catA, level = returning, session = current_session)
+    dict['total_Aft'] = len(res_Aft)
+
+    res_Apt = context.students_catalog(faculty = f.getId, review_state = catA, level = new, session = current_session)
+    dict['total_Apt'] = len(res_Apt)
+
+
+
+    res_Bft = context.students_catalog(faculty = f.getId, review_state = catB, level = returning, session = current_session)
+    dict['total_Bft'] = len(res_Bft)
+
+    res_Bpt = context.students_catalog(faculty = f.getId, review_state = catB, level = new, session = current_session)
+    dict['total_Bpt'] = len(res_Bpt)
+
+
+
+    res_Cft = context.students_catalog(faculty = f.getId, review_state = catC, level = returning, session = current_session)
+    dict['total_Cft'] = len(res_Cft)
+
+    res_Cpt = context.students_catalog(faculty = f.getId, review_state = catC, level = new, session = current_session)
+    dict['total_Cpt'] = len(res_Cpt)
+
+
+
+
+    l.append(dict)
+
+return l
+
Index: WAeUP_SRP/ois/waeup_custom/getStudyLevelInfo.py
===================================================================
--- WAeUP_SRP/ois/waeup_custom/getStudyLevelInfo.py	(revision 3662)
+++ WAeUP_SRP/ois/waeup_custom/getStudyLevelInfo.py	(revision 3662)
@@ -0,0 +1,123 @@
+## Script (Python) "getStudyLevelInfo"
+##bind container=container
+##bind context=context
+##bind namespace=
+##bind script=script
+##bind subpath=traverse_subpath
+##parameters=student=None
+##title=
+##
+# $Id: getStudyLevelInfo.py 2760 2007-11-26 07:39:15Z henrik $
+"""
+return Info about the Studylevel
+try:
+    from Products.zdb import set_trace
+except:
+    def set_trace():
+        pass
+"""
+
+info = context.waeup_tool.getAccessInfo(context)
+student_id = info['student_id']
+if student_id is None:
+    return None
+
+mtool = context.portal_membership
+member = mtool.getAuthenticatedMember()
+member_id = str(member)
+
+course_results = context.course_results
+request = context.REQUEST
+response = request.RESPONSE
+import logging
+logger = logging.getLogger('Skins.getStudyLevelInfo')
+
+level_id  =  context.getId()
+level_doc = info['doc'] = context.getContent()
+
+info['is_so'] = is_so = info['is_sectionofficer']
+#info['is_student'] = is_student = context.isStudent()
+info['is_ca'] = is_ca = context.isCourseAdviser()
+#info['student'] = student = context.students_catalog(id=student_id)[0]
+info['student'] = student = context.students_catalog.getRecordByKey(student_id)
+info['review_state'] = review_state = student.review_state
+is_current_level = level_id == student.level
+school_fee_paid =  review_state == 'school_fee_paid'
+info['is_current_level'] = is_current_level
+info['has_verdict'] = has_verdict = level_doc.verdict
+
+info['submission_allowed']= school_fee_paid and is_current_level and not has_verdict
+info['validation_allowed']= review_state == 'courses_registered' and is_current_level
+info['rejection_allowed']= review_state in ('courses_registered', 'courses_validated',) and is_current_level
+info['validated'] = review_state == 'courses_validated' and is_current_level
+
+info['show_check_boxes'] =  (is_ca and school_fee_paid and is_current_level and not has_verdict) or\
+                            (info['is_student'] and school_fee_paid and is_current_level and not has_verdict) or\
+                            (is_so and is_current_level and not has_verdict)
+
+info['verdict'] = context.portal_vocabularies.verdicts.get(level_doc.verdict).upper()
+info['session'] = context.portal_vocabularies.sessions.get(level_doc.session)
+info['level_str'] = context.portal_vocabularies.student_levels.get(level_id)
+
+info['choosen_ids'] = request.get('ids',[])
+
+#info['status_info'] = ""
+#if is_student:
+#    if review_state == 'courses_registered':
+#        info['status_info'] = "Request for course validation pending"
+#    elif review_state == 'courses_validated':
+#        info['status_info'] = "Courses validated"
+#elif is_ca:
+#    if review_state == 'courses_registered':
+#        info['status_info'] = "Please validate these courses"
+#    elif review_state == 'courses_validated':
+#        info['status_info'] = "Courses validated"
+
+cert_id = student.course
+info['cert_id'] = cert_id
+if context.objectIds():
+    course_results.moveResultsHere(context,student_id)
+    logger.info("%s initiated moveResultsHere for %s in level %s" % (member_id,student_id,level_id))
+total_credits,gpa,carry_overs,normal1,normal2,normal3 = course_results.getCourses(student_id,level_id)
+info['total_credits'] = total_credits
+
+#start customization
+
+max_credits = 58
+info['without_score'] = False
+info['without_cascore'] = False
+
+
+
+
+
+
+
+
+
+#end customization
+
+info['max_credits'] = max_credits
+info['credits_exceeded'] = total_credits > max_credits
+current_session = student.session
+
+info['gpa'] = gpa
+if gpa and total_credits:
+    info['gpa'] = "%4.2f" % (float(gpa)/int(total_credits))
+
+# carry_overs.sort(cmp_semester_id)
+info['carry_overs'] = carry_overs
+# normal.sort(cmp_semester_id)
+info['normal1'] = normal1
+info['normal2'] = normal2
+info['normal3'] = normal3
+
+info['data_missing'] = not info['normal1'] and not info['normal2'] and not info['normal3']
+info['spillover'] = student.level > student.end_level
+
+students_object = context.portal_url.getPortalObject().campus.students
+student = getattr(students_object, student_id)
+info['app'] = student.application
+info['app_doc'] = student.application.getContent()
+
+return info
Index: WAeUP_SRP/ois/waeup_custom/getTranscriptInfo.py
===================================================================
--- WAeUP_SRP/ois/waeup_custom/getTranscriptInfo.py	(revision 3662)
+++ WAeUP_SRP/ois/waeup_custom/getTranscriptInfo.py	(revision 3662)
@@ -0,0 +1,88 @@
+## Script (Python) "getTranscriptInfo"
+##bind container=container
+##bind context=context
+##bind namespace=
+##bind script=script
+##bind subpath=traverse_subpath
+##parameters=student=None
+##title=
+##
+# $Id: getStudyLevelInfo.py 2760 2007-11-26 07:39:15Z henrik $
+"""
+return Info about the Studylevel
+try:
+    from Products.zdb import set_trace
+except:
+    def set_trace():
+        pass
+"""
+
+request = context.REQUEST
+response = request.RESPONSE
+import logging
+logger = logging.getLogger('Skins.getTranscriptInfo')
+info = context.waeup_tool.getAccessInfo(context)
+student_id = info['student_id']
+if student_id is None:
+    return None
+
+mtool = context.portal_membership
+if mtool.isAnonymousUser(): # or not context.isSectionOfficer():
+    return None
+
+mtool = context.portal_membership
+member = mtool.getAuthenticatedMember()
+member_id = str(member)
+
+course_results = context.course_results
+
+
+student_record = context.students_catalog.getRecordByKey(student_id)
+info['student_record'] = context.getFormattedStudentEntry(student_record)
+
+
+year_courses = [[],[],[],[],[],[],[],[],[]]
+year_details = [{'year':0},{'year':1},{'year':2},{'year':3},{'year':4},{'year':5},{'year':6},{'year':7},{'year':8}]
+
+courses = course_results.getAllCourses(student_id)
+
+for course in courses:
+    year = divmod(int(course['level_id']),100)[0]
+    year_courses[year].append(course)
+    if not getattr(year_details[year],'session',None):
+        year_details[year]['session'] = context.portal_vocabularies.sessions.get(course['session_id'])
+
+year_counter = 0
+cgpa = 0
+c_total_credits = 0
+for year in year_courses:
+    gpa = 0
+    total_credits = 0
+    for course in year:
+        if course['weight'] and course['credits']:
+            gpa += int(course['weight']) * int(course['credits'])
+            total_credits += int(course['credits'])
+    cgpa += gpa
+    c_total_credits += total_credits
+    if gpa and total_credits:
+        year_details[year_counter]['total_credits'] = total_credits
+        year_details[year_counter]['gpa'] = "%4.2f" % (float(gpa)/int(total_credits))
+    else:
+        year_details[year_counter]['total_credits'] = 0
+        year_details[year_counter]['gpa'] = 0
+
+    if cgpa and c_total_credits:
+        year_details[year_counter]['c_total_credits'] = c_total_credits
+        year_details[year_counter]['cgpa'] = "%4.2f" % (float(cgpa)/int(c_total_credits))
+    else:
+        year_details[year_counter]['c_total_credits'] = 0
+        year_details[year_counter]['cgpa'] = 0
+
+    year.sort(cmp=lambda x,y: cmp("%(semester)s%(code)s" % x,
+                                         "%(semester)s%(code)s" % y))
+    year_counter += 1
+
+info['year_details'] = year_details
+info['year_courses'] = year_courses
+
+return info
Index: WAeUP_SRP/ois/waeup_custom/goto_interswitch_form.pt
===================================================================
--- WAeUP_SRP/ois/waeup_custom/goto_interswitch_form.pt	(revision 3662)
+++ WAeUP_SRP/ois/waeup_custom/goto_interswitch_form.pt	(revision 3662)
@@ -0,0 +1,52 @@
+<metal:body use-macro="here/main_template/macros/master">
+    <metal:main fill-slot="main"
+                tal:define="info options/info">
+                
+        <h3>Authorize Online Payment! </h3>
+        <br />
+                
+      <form method="post" action="pay_online"
+            tal:attributes="action info/action ">
+      <span tal:repeat="arg python:info['args'].items()"
+            tal:omit-tag="">
+          <input type="hidden" tal:attributes="name python:arg[0];value python:arg[1]" />
+      </span>          
+      
+      <span tal:replace = "structure info/xml_data" /> 
+      
+        <table>
+          <tr>
+            <td width="100px">
+            Payment:</td>
+            <td tal:content="info/type_description"></td>
+          </tr>
+          <tr>
+            <td>
+            Name:
+            </td>
+            <td tal:content="info/pay_bill_to" />
+          </tr>
+          <tr>
+            <td >
+            Amount:
+            </td>
+            <td> Naira <span tal:content="info/amount" /></td>
+          </tr>
+          <tr>
+            <td >
+            Surcharge:
+            </td>
+            <td> Naira <span tal:content="info/surcharge" /></td>
+          </tr>          
+      
+        </table>
+        <br />
+        <input type="submit" 
+               class="standalone" 
+               name="goto_bank" 
+               value="Proceed to Interswitch Payment Gateway" 
+               />
+      </form>
+    </metal:main>
+</metal:body>
+
Index: WAeUP_SRP/ois/waeup_custom/interswitch_form.pt
===================================================================
--- WAeUP_SRP/ois/waeup_custom/interswitch_form.pt	(revision 3662)
+++ WAeUP_SRP/ois/waeup_custom/interswitch_form.pt	(revision 3662)
@@ -0,0 +1,46 @@
+<metal:body use-macro="here/main_template/macros/master">
+  <metal:main fill-slot="main"
+              tal:define="info options/info">
+    <h3>Confirm Your Payment Data! </h3>
+    <br />
+    <span tal:condition="not: info/payment_possible">
+      No payment information for your course available.
+    </span>
+    <span tal:condition="info/payment_possible">
+      <form method="post" action="pay_interswitch">
+        <table>
+          <tr>
+            <td width="100px">
+            Payment:</td>
+            <td tal:content="info/type_description"></td>
+          </tr>
+          <tr>
+            <td>
+            Name:
+            </td>
+            <td tal:content="info/pay_bill_to" />
+          </tr>
+          <tr>
+            <td >
+            Amount:
+            </td>
+            <td> Naira <span tal:content="info/amount" /></td>
+          </tr>
+          <tr>
+            <td >
+            Surcharge:
+            </td>
+            <td> Naira <span tal:content="info/surcharge" /></td>
+          </tr>                  
+        </table>
+        <br />
+        <input type="submit" 
+               class="standalone" 
+               name="goto_bank" 
+               value="Confirm" 
+               />
+      </form>
+    </span>
+    </metal:main>
+</metal:body>
+
Index: WAeUP_SRP/ois/waeup_custom/layout_student_acco_view_slip.pt
===================================================================
--- WAeUP_SRP/ois/waeup_custom/layout_student_acco_view_slip.pt	(revision 3662)
+++ WAeUP_SRP/ois/waeup_custom/layout_student_acco_view_slip.pt	(revision 3662)
@@ -0,0 +1,34 @@
+<!-- a layout_lib macro -->
+<!-- $Id: layout_student_acco_view_slip.pt 1316 2007-01-17 18:05:49Z henrik $ -->
+<metal:block define-macro="default_view"
+  tal:define="layout options/layout;
+              dm options/datastructure/getDataModel;
+              widgets python:context.getRenderedWidgets(layout);
+              fields python:('bed',
+                              'acco_res_date',
+                                 'acco_maint_pay_id', 
+                                 'acco_maint_fee',
+                                 'acco_maint_date',
+                                 )"
+                                 >
+  <table width="" cellpadding="2" cellspacing="0" summary="Form layout">
+    <tr tal:repeat="field fields">
+      <tal:block tal:define="cell python: widgets[field]">
+        <tal:block define="widget cell/widget">
+          <div tal:attributes="class cell/widget_css_class|string:label;
+            id python:widget.getHtmlWidgetId()+'_widget';">
+            <td width="180px" valign="top">
+             <span class="dlabel"
+                    tal:condition="widget/label"
+                    tal:content="widget/label">label</span>:
+            </td>
+            <td> 
+               <span tal:condition="cell" tal:content="structure cell/widget_rendered"></span>
+               <span tal:condition="not:cell/widget_rendered"> none </span>
+            </td>
+          </div>
+        </tal:block>
+      </tal:block>
+    </tr>
+  </table>
+</metal:block>
Index: WAeUP_SRP/ois/waeup_custom/mail2admin.py
===================================================================
--- WAeUP_SRP/ois/waeup_custom/mail2admin.py	(revision 3662)
+++ WAeUP_SRP/ois/waeup_custom/mail2admin.py	(revision 3662)
@@ -0,0 +1,44 @@
+## Script (Python) "mail2admin"
+##bind container=container
+##bind context=context
+##bind namespace=
+##bind script=script
+##bind subpath=traverse_subpath
+##parameters=fullname=None,regno=None,email=None,probtype=None,descr=None,commt=None
+##title=
+##
+# $Id: mail2admin.py 2334 2007-10-09 15:01:36Z henrik $
+
+mhost = context.MailHost
+prop = context.portal_properties
+
+d = {}
+d['fullname'] = fullname
+d['email'] = email
+d['email_from'] = prop.email_from_address
+d['regno'] = regno
+d['probtype'] = probtype
+d['descr'] = descr
+
+message = """
+From: %(fullname)s <%(email)s>
+To: %(email_from)s
+Cc: %(email)s
+Bcc: waeup@saoas.org
+Reply-To: %(email)s
+Subject: AAUA Contact
+
+Fullname: %(fullname)s
+Member ID: %(regno)s
+Problem Type: %(probtype)s
+Description: %(descr)s
+"""
+
+mhost.send(message % d)
+
+REQUEST = context.REQUEST
+RESPONSE = REQUEST.RESPONSE
+
+redirect_url = REQUEST.HTTP_REFERER
+redirect_url = '%s/?%s' % (redirect_url,'portal_status_message=Your message has been sent!')
+RESPONSE.redirect(redirect_url)
Index: WAeUP_SRP/ois/waeup_custom/mail2student.py
===================================================================
--- WAeUP_SRP/ois/waeup_custom/mail2student.py	(revision 3662)
+++ WAeUP_SRP/ois/waeup_custom/mail2student.py	(revision 3662)
@@ -0,0 +1,45 @@
+## Script (Python) "mail2student"
+##bind container=container
+##bind context=context
+##bind namespace=
+##bind script=script
+##bind subpath=traverse_subpath
+##parameters=co_name=None,co_email=None,student_email=None,probtype=None,commt=None, action=None
+##title=
+##
+# $Id: mail2admin.py 869 2006-11-15 13:46:49Z henrik $
+
+from urllib import urlencode
+
+mhost = context.MailHost
+prop = context.portal_properties
+REQUEST = context.REQUEST
+
+d = {}
+#d['co_name'] = co_name
+#d['co_email'] = co_email
+d['co_name'] = 'AAUA'
+d['co_email'] = prop.email_from_address
+d['student_email'] = student_email
+d['probtype'] = probtype
+d['commt'] = commt
+
+message = """
+From: %(co_name)s <%(co_email)s>
+To: %(student_email)s
+Cc: %(co_email)s
+Reply-To: %(co_email)s
+Subject: %(probtype)s
+%(commt)s
+"""
+
+mhost.send(message % d)
+
+args = {}
+psm = "Your message has been sent!"
+args['portal_status_message'] = psm
+if action:
+    url = context.absolute_url() + '/' + action + '?' + urlencode(args)
+else:
+    url = context.absolute_url() +'?' + urlencode(args)
+return REQUEST.RESPONSE.redirect(url)
Index: WAeUP_SRP/ois/waeup_custom/main_template.pt
===================================================================
--- WAeUP_SRP/ois/waeup_custom/main_template.pt	(revision 3662)
+++ WAeUP_SRP/ois/waeup_custom/main_template.pt	(revision 3662)
@@ -0,0 +1,217 @@
+<metal:block define-macro="master"
+  tal:define="showthirdcol showthirdcol|python:1;
+  emptybody emptybody|request/emptybody|nothing;
+  mtool here/portal_membership;
+  
+  utool nocall:here/portal_url;
+  atool here/portal_actions;
+  ttool here/portal_trees;
+  wtool here/portal_workflow;
+  ptool here/portal_cpsportlets;
+  context_url python:here.getContextUrl(utool=utool);
+  here_url here/absolute_url;
+  base_url here/getBaseUrl;
+  static_dir here/portal_properties/static_dir;
+  static_base_url string:${here/getBaseUrl}${static_dir};
+  member mtool/getAuthenticatedMember;
+  isAnon mtool/isAnonymousUser;
+  isHomeless python:isAnon or member.getProperty('homeless', 0);
+  isHomeless python:(isHomeless == '0' and [0] or [isHomeless])[0];
+  actions python:atool.listFilteredActionsFor(here);
+  wf_state python:wtool.getInfoFor(here,'review_state','');
+  uname python: isAnon and 'Guest' or member.getUserName();
+  checkPerm nocall: mtool/checkPermission;
+  cpsmcat nocall:here/translation_service;
+  locale here/translation_service/getSelectedLanguage;
+  in_ws here/isInWorkspace;
+  waeup_skin here/get_waeup_skin;
+  student_theme python:test(waeup_skin == 'WAeUP_Student',1,0);
+  navigation_slot python:test(student_theme,'student_navigation_slot','navigation_slot');
+  object_tabs python:test(student_theme,'student_object_slot','staff_object_slot');
+  
+  ">
+  <metal:block define-slot="doctype"><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
+    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+  </metal:block>
+  <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en"
+        lang="en">
+    <head>
+      <metal:block use-macro="here/header_lib_header/macros/header|here/header_lib/macros/header">
+        <metal:block fill-slot="base">
+          <metal:block define-slot="base">
+            <base href=""
+                  tal:attributes="href string:${here_url}/" />
+          </metal:block>
+        </metal:block>
+        <metal:block fill-slot="head_slot">
+          <metal:block define-slot="head_slot" />
+        </metal:block>
+        <metal:block fill-slot="style_slot">
+          <link rel="stylesheet" type="text/css" media="all"
+                tal:attributes="href string:${static_base_url}common.css" />
+          <link rel="stylesheet" type="text/css" media="all"
+                tal:attributes="href string:${static_base_url}${waeup_skin}/render.css" />
+          <metal:block define-slot="style_slot" />
+        </metal:block>
+        <metal:block fill-slot="javascript_head_slot">
+          <metal:block define-slot="javascript_head_slot" />
+        </metal:block>
+      </metal:block>
+      <link rel="icon"
+            href="ng.png"
+            tal:attributes="href string:${static_base_url}ng.png"
+            type="image/png" />
+      <link rel="shortcut icon"
+            href="icons/ng.png"
+            tal:attributes="href string:${static_base_url}ng.png"
+            type="image/png" />
+    </head>
+    <body tal:condition="emptybody"
+          style="margin: 0px;"
+          tal:attributes="onload here/getOnLoad|string:setFocus();">
+      <metal:block define-slot="body" />
+      <metal:block define-slot="main" />
+    </body>
+    
+    <body tal:condition="not:emptybody"
+          style="margin: 0px;"
+          tal:attributes="onload here/getOnLoad|string:setFocus();">
+      
+     
+      <table summary="Logo Block"
+             style="margin-left: auto; margin-right: auto; width: 100%;"
+             class="shapeNoBorder colorTransparent" cellpadding="0" 
+             cellspacing="0">
+        <tbody>
+          <tr>
+            <td style="width: 20px;"></td>
+            <td style="width: 170px; text-align: center; padding-top: 0.5em;">
+              <img tal:attributes="src string:${static_base_url}logo_left.jpg"  alt="Logo" />
+            </td>
+            <td padding=0.5em><h1>University of Ilorin, Ilorin, Nigeria</h1></td>
+            <td style="width: 20px;"></td>
+          </tr>
+        </tbody>
+      </table>
+
+      <table summary="Navigation Block"
+             style="margin-left: auto; margin-right: auto; width: 100%;"
+             class="shapeNoBorder colorTransparent" cellpadding="0"
+             cellspacing="0">
+        <tbody>
+          <tr>
+            <td style="width: 20px;" valign="top"></td>
+            <td style="" valign="top">
+              <div id="navigation_slot" 
+                       style="padding: 0em 0em 1px; text-align: right;"
+                       class="fontColornavigation fontShapenavigation portalTabTabStyle cpsskinsHBox body">
+                 <tal:block repeat="portlet python:ptool.getPortlets(context=context, slot=navigation_slot)"
+                  tal:content="structure python:portlet.render_cache(context_obj=context, portlet=portlet)" />
+              </div>
+            </td>
+            <td style="width: 20px;" valign="top"></td>
+          </tr>
+        </tbody>
+      </table>
+      
+      
+      <table summary="Main Table Block 1"
+           style="margin-left: auto; margin-right: auto; width: 100%;"
+           cellpadding="0" cellspacing="0">
+      <tbody>
+        <tr>
+          <td style="width: 20px;" valign="top"></td>
+          <td style="width: 170px;text-align: center;"
+              valign="top">
+            <div id="portal_session" style="padding: 0.4em 0.4em 0.4em 0.3em;"
+                 class="colorBarAreaColor fontColordefaultnovisitedlinks fontShapeaverage shapeAreaShape9">
+                    <tal:block repeat="portlet python:ptool.getPortlets(context=context, slot='portal_session')"
+                               tal:content="structure python:portlet.render_cache(context_obj=context, portlet=portlet, boxedit=None)" />
+            </div>
+          </td>
+          <td style="text-align: left; padding: 0.2em 0.2em 0em;" class="colorBarColor" valign="top">
+            <metal:block define-slot="action_slot" />
+            <div id="object_tabs" class="fontColornavigation fontShapeaverage cpsskinsHBox body"
+                 tal:define="portlets python:ptool.getPortlets(context=context, slot=object_tabs)">
+                <tal:block repeat="portlet portlets"
+                           tal:content="structure python:portlet.render_cache(context_obj=context, portlet=portlet)" />
+            </div>
+          </td>
+          <td tal:condition="not:student_theme"
+              class="colorBarColor" valign="top" style="text-align: right;padding: 0.2em 0.2em 0em; width: 280px;">
+            <div id="status_slot" class="fontColordefaultfontcolors fontShapeaverage cpsskinsHBox body"
+                 tal:define="portlets python:ptool.getPortlets(context=context, slot='status_slot')">
+                <tal:block repeat="portlet portlets"
+                           tal:content="structure python:portlet.render_cache(context_obj=context, portlet=portlet, boxedit=None)" />
+            </div>
+          </td>
+          <td style="width: 20px;"
+              valign="top"></td>
+        </tr>
+      </tbody>
+    </table>
+  
+  
+  
+    <table summary="Main Table Block 2"
+             style="margin-left: auto; margin-right: auto; width: 100%;"
+             class="" cellpadding="0" cellspacing="0">
+      <tbody>
+        <tr>
+          <td style="width: 20px;" valign="top"></td>
+          <td style="width: 170px;text-align: left;"
+              class="colorBarColor fontColornavigation fontShapeaverage boxShapenavbox cpsskinsBox" valign="top">
+            <div id="staff_actions_slot" class="body" style="padding: 1.5em 0.5em 1.5em 0.5em;">
+              <tal:block tal:condition="not:student_theme" repeat="portlet python:ptool.getPortlets(context=context, slot='staff_actions_slot')"
+                         tal:content="structure python:portlet.render_cache(context_obj=context, portlet=portlet, boxedit=None)" />
+              <tal:block tal:condition="not:student_theme" repeat="portlet python:ptool.getPortlets(context=context, slot='global_actions_slot')"
+                         tal:content="structure python:portlet.render_cache(context_obj=context, portlet=portlet, boxedit=None)" />
+              <tal:block tal:condition="student_theme" repeat="portlet python:ptool.getPortlets(context=context, slot='student_actions_slot')"
+                         tal:content="structure python:portlet.render_cache(context_obj=context, portlet=portlet, boxedit=None)" />
+
+              <span tal:condition="student_theme">
+              <div style="padding: 0em;">
+                <tal:block repeat="portlet python:ptool.getPortlets(context=context, slot='student_workflow')"
+                             tal:content="structure python:portlet.render_cache(context_obj=context, portlet=portlet, boxedit=None)" />
+              </div>
+              </span>
+              
+              <div style="padding-top: 10px;">
+              <tal:block repeat="portlet python:ptool.getPortlets(context=context, slot='student_notice_slot')"
+                             tal:content="structure python:portlet.render_cache(context_obj=context, portlet=portlet, boxedit=None)" />
+              </div>  
+
+
+            </div>
+          </td>
+          <td style="" class="shapeAreaShape5 colorBarAreaColor" valign="top">
+            <div style="padding: 0.5em; text-align: left;" class="fontColordefaultfontcolors fontShapeaverage">
+              <metal:block use-macro="here/generic_lib_portal_message/macros/portal_message" />
+              <metal:block define-slot="header" />
+              <metal:block define-slot="main" />
+              <metal:block define-slot="sub" />
+            </div>
+          </td>
+          <td style="width: 20px;" valign="top"></td>
+        </tr>
+      </tbody>
+    </table>
+    
+    
+    <table summary="Copyright Info Block"
+             style="margin-left: auto; margin-right: auto; width: 100%;"
+             cellspacing="0">
+        <tbody>
+          <tr>
+            <td style="width: 20px;" valign="top"></td>
+            <td style="padding: 0.2em; text-align: right;" valign="top">
+              <div class="fontColordefaultfontcolors fontShapeaverage">
+              Copyright WAeUP Group 2006-2008</div>
+            </td>
+            <td style="width: 20px;" valign="top"></td>
+          </tr>
+        </tbody>
+    </table>
+    </body>
+  </html>
+</metal:block>
Index: WAeUP_SRP/ois/waeup_custom/no_booking_allowed.pt
===================================================================
--- WAeUP_SRP/ois/waeup_custom/no_booking_allowed.pt	(revision 3662)
+++ WAeUP_SRP/ois/waeup_custom/no_booking_allowed.pt	(revision 3662)
@@ -0,0 +1,8 @@
+<metal:body use-macro="here/main_template/macros/master">
+  <metal:main fill-slot="main">
+
+    <h3>You are not eligible to book accommodation!</h3>
+
+  </metal:main>
+</metal:body>
+
Index: WAeUP_SRP/ois/waeup_custom/pay_interswitch.py
===================================================================
--- WAeUP_SRP/ois/waeup_custom/pay_interswitch.py	(revision 3662)
+++ WAeUP_SRP/ois/waeup_custom/pay_interswitch.py	(revision 3662)
@@ -0,0 +1,167 @@
+## Script (Python) "pay_online"
+##bind container=container
+##bind context=context
+##bind namespace=
+##bind script=script
+##bind subpath=traverse_subpath
+##parameters=
+##title=
+##
+# $Id: pay_interswitch.py 2619 2007-11-10 17:39:36Z henrik $
+"""
+pay online
+"""
+from urllib import urlencode
+import logging
+logger = logging.getLogger('Skins.pay_interswitch')
+import DateTime
+
+if context.portal_membership.isAnonymousUser():
+    return None
+
+try:
+    from Products.zdb import set_trace
+except:
+    def set_trace():
+        pass
+request = context.REQUEST
+wftool = context.portal_workflow
+students = context.portal_url.getPortalObject().campus.students
+
+
+student_id = context.getStudentId()
+student = getattr(students,student_id)
+
+student_record = context.students_catalog.getRecordByKey(student_id)
+#amount,description = context.getSchoolFee(student_record.faculty,student_record.session,student_record.course)
+info = {}
+info['student'] = student_record
+info['payment_possible'] = False
+info['amount'] = '0'
+info['bank'] = ''
+info['type_description'] = ''
+info['pay_bill_to'] = ''
+fee_dict = context.getSchoolFee(student_record)
+fulltime = student_record.mode.endswith('_ft')
+
+if not fee_dict:
+    return context.interswitch_form(info=info)
+
+info['site_id'] = '105'
+info['currency_id'] = '566'
+pay_item_id = "10500"
+
+#info['type_code'] = sbrain.course  #type_code is redundant and will be removed soon
+info['bank'] = ''
+info['payment_possible'] = True
+info['type_description'] = fee_dict['description']
+info['pay_bill_to'] = student_record.name
+info['student_id'] = student_id
+info['student_name'] = student_record.name
+info['type'] = 'online'
+info['status'] = 'started'
+info['session_id'] = fee_dict['next_session_id']
+info['item'] = student_record.course
+info['category'] = 'schoolfee'
+info['student_email'] = student_record.email
+now = DateTime.DateTime()
+info['date'] = now
+info['pay_ship_to'] = "Adekunle Ajasin University"
+timestamp = "%d" % int(now.timeTime()*1000)
+info['order_id'] = "%s%s" % (student_id[1:],timestamp)
+p_id = "p%s" % timestamp
+
+
+info['surcharge'] = interswitch_amount = '150'
+info['amount'] = amount = fee_dict['all']
+total_amount = 100*int(amount) + 100*int(interswitch_amount)
+
+
+if student_id is None:
+    return context.REQUEST.RESPONSE.redirect("%s/srp_anonymous_view" % context.portal_url())
+
+if True:
+    info['action'] = "https://webpay.interswitchng.com/paydirect/webpay/pay.aspx"
+else:
+    #pass
+    #return None
+    info['action'] = "%s/payments/%s/simulate_callback" % (student.absolute_url(),p_id)
+
+
+if "payments" not in student.objectIds():
+    student.invokeFactory('PaymentsFolder','payments')
+    payments = getattr(student,'payments')
+    d = {}
+    d['Title'] = 'Payments'
+    payments.getContent().edit(mapping=d)
+    wftool.doActionFor(payments,'open')
+else:
+    payments = getattr(student,'payments')
+if request.has_key('epayment'):
+    return context.interswitch_form(info=info)
+
+
+payments.invokeFactory('Payment', p_id)
+payment = getattr(payments,p_id)
+wftool.doActionFor(payment,'open')
+d = {}
+d.update(info)
+payment.getContent().edit(mapping=d)
+
+
+info['callback_url'] = "%s/payments/%s/interswitch_cb?echo=%s" % (student.absolute_url(),
+                                                                  p_id,
+                                                                  p_id)
+
+logger.info('%(student_id)s initiated online school fee payment with order_id %(order_id)s and callback url %(callback_url)s' % info)
+payment_fields = (('product_id','site_id'),
+                  ('site_redirect_url','callback_url'),
+                  ('Currency','currency_id'),
+                  ('cust_id','student_id'),
+                  ('cust_id_desc','type_description'),
+                  ('cust_name','student_name'),
+                  ('txn_ref','order_id'),
+                  ('Amount','amount'),
+                  )
+args = {}
+for arg,field in payment_fields:
+    args[arg] = info[field]
+
+bt_amount = 4000
+
+aaua_amount = amount - bt_amount
+xmldict = {}
+xmldict['detail_ref'] = args['txn_ref']
+xmldict['department'] = student_record.department
+xmldict['faculty'] = student_record.faculty
+xmldict['aaua_amount'] = "%d" % int(100*aaua_amount)
+xmldict['bt_amount'] = "%d" % int(100*bt_amount)
+if student_record.mode.endswith('_pt'):
+    xmldict['aaua_acct'] = "0321100000000046"
+elif student_record.mode.endswith('_sw'):
+    xmldict['aaua_acct'] = "0321100000000056"
+else:
+    xmldict['aaua_acct'] = "0000000000000000"
+
+
+xmltext = """<payment_item_detail>
+<item_details detail_ref="%(detail_ref)s" college="AAUA" department="%(department)s" faculty="%(faculty)s">
+<item_detail item_id="1" item_name="AAUA" item_amt="%(aaua_amount)s" bank_id="89" acct_num="%(aaua_acct)s" />
+<item_detail item_id="2" item_name="BT" item_amt="%(bt_amount)s" bank_id="117" acct_num="6012015294" />
+</item_details>
+</payment_item_detail>""" % xmldict
+
+info['xml_data'] = """<input type="hidden" name="xml_data" value='%s'  />""" % xmltext
+
+args['Amount'] = "%d" % (total_amount)
+args['site_name'] = "aaua.waeup.org"
+args['cust_name_desc'] = "Student Name"
+args['pay_item_id'] = pay_item_id
+args['pay_item_name'] = "AAUA Tuition Payments"
+args['payment_params'] = 'college_split'
+#args['xml_data'] = ''
+#args['xml_data'] = xmltext   # info['xml_data']can be used instead
+info['args'] = args
+
+return context.goto_interswitch_form(info=info)
+
Index: WAeUP_SRP/ois/waeup_custom/search_students_form.pt
===================================================================
--- WAeUP_SRP/ois/waeup_custom/search_students_form.pt	(revision 3662)
+++ WAeUP_SRP/ois/waeup_custom/search_students_form.pt	(revision 3662)
@@ -0,0 +1,128 @@
+<metal:body use-macro="here/main_template/macros/master">
+  <metal:main fill-slot="main"
+              tal:define="rendered options/rendered;
+              portal_status_message options/psm;
+              students options/students;
+              info options/info|nothing;
+              is_so context/isSectionOfficer;
+              allowed options/allowed|nothing;"
+              >
+    <span tal:condition="not: allowed">
+      <span tal:content="here/illegal_view" />
+    </span>
+    <span tal:condition="allowed" tal:omit-tag="">
+      <strong>
+        <nobr><a href="statistics_simple_view">Basic Student Statistics</a>
+        &nbsp;&nbsp;&nbsp;&nbsp;</nobr>      
+        <span tal:condition="is_so">
+          <nobr><a href="apply_admission_manage">Application Process</a>
+          &nbsp;&nbsp;&nbsp;&nbsp;</nobr>      
+          <nobr><a href="view_logs">View Log Files</a>
+          &nbsp;&nbsp;&nbsp;&nbsp;</nobr>
+          <nobr><a href="add_student">Add Student Record</a>        
+          &nbsp;&nbsp;&nbsp;&nbsp;</nobr>
+          <nobr><a href="deactivate_students">Deactivate Student Record(s)</a></nobr>
+        </span>
+      </strong>
+      <h3> Search Student Section</h3><br />
+      You are logged in as member <span tal:replace="info/member|nothing" /> 
+      <span tal:condition="info/faculties|nothing" tal:omit-tag="">
+        who is ClearanceOfficer for Faculty 
+        <span tal:repeat="faculty info/faculties" tal:content="faculty" />
+      </span>
+      <span tal:condition="info/departments|nothing" tal:omit-tag="">
+        and <span tal:repeat="department info/departments|nothing" tal:content="department"/></span>.
+      <br /><br />
+      <span tal:replace="structure rendered" />
+      <metal:block use-macro="here/generic_lib_portal_message/macros/portal_message" />
+      <span tal:condition="students">
+        <span tal:define="items students;
+        columns python:3;
+        items_per_page python:40;
+        max_items python:300;
+        zoom python:0;
+        batches_all python:here.getBatchList(items,columns, items_per_page,zoom,max_items=400);
+        batches python:batches_all[0];
+        batch_info python:batches_all[1];
+        zoomed python:batches_all[2];
+        mq nocall:modules/ZTUtils/make_query;"
+        tal:omit-tag="">
+          <tal:block tal:condition="python: items and batch_info and batch_info['nb_pages'] > 1">
+            <div class="batchLayout" i18n:translate="">
+              Objects:<strong><tal:block replace="batch_info/start"
+                                         i18n:name="batch_start" /> - <tal:block replace="batch_info/limit"
+                                                                                 i18n:name="batch_limit" />
+              </strong> of <tal:block replace="batch_info/length" i18n:name="batch_length" />
+            </div>
+            <br />
+          </tal:block>
+          <table class="contentListing" width="100%">
+            <span tal:repeat="rows batches" tal:omit-tag="">
+              <span tal:repeat="student rows">
+                <tr tal:condition="student" 
+                    tal:attributes="class python:test(repeat['student'].even(), 'even ajaxtd', 'odd ajaxtd')">
+                  <td><a href="id" tal:attributes="href string:${context/portal_url}/campus/students/${student/id}"
+                         tal:content="student/id"></a></td>    
+                  <td>
+                    <span tal:replace="student/name" />
+                  </td>    
+                  <td><span tal:replace="student/matric_no" /></td>   
+                  <td><span tal:replace="student/jamb_reg_no" /></td>
+                  <td tal:condition="options/co_view|nothing">
+                    <a href="id" 
+                       tal:attributes="href string:${context/portal_url}/campus/students/${student/id}/clearance/external_clearance_edit_form"
+                       target="edit"
+                       onclick="javascript:window.open('','edit','width=600, height=700, directories=no, toolbar=no, location=no, menubar=no, scrollbars=yes, status=no, resizable=no, dependent=no')"
+                       >[view and change state]</a></td>
+                  <td tal:condition="options/ca_view|nothing">
+                    <a href="id" 
+                       tal:attributes="href string:${context/portal_url}/campus/students/${student/id}/study_course/${student/level}/external_study_level_view"
+                       target="edit"
+                       onclick="javascript:window.open('','edit','width=600, height=700, directories=no, toolbar=no, location=no, menubar=no, scrollbars=yes, status=no, resizable=no, dependent=no')"
+                       >[view and validate course list]</a></td>
+                </tr>
+              </span>
+            </span>
+          </table>
+          <tal:block condition="python:batch_info and batch_info['nb_pages'] > 1">
+            <div class="pageNavigationLayout">
+              <a tal:define="previous batch_info/previous"
+                 tal:condition="python:previous is not None"
+                 tal:attributes="href python:'%s?%s'%(request['URL'],
+                 mq(request.form, b_start=0))"
+                 >
+              (&lt;&lt;)</a>
+              <a tal:define="previous batch_info/previous"
+                 tal:condition="python:previous is not None"
+                 tal:attributes="href python:'%s?%s'%(request['URL'],
+                 mq(request.form, b_start=previous))"
+                 i18n:translate="batch_previous">Previous</a>
+              <tal:block repeat="page batch_info/pages">
+                <tal:block condition="python:page != batch_info['start'] - 1">
+                  <a tal:attributes="href python:'%s?%s'%(request['URL'],
+                  mq(request.form, b_start=page))"
+                  tal:content="repeat/page/number">1</a>&nbsp;
+                </tal:block>
+                <tal:block condition="python:page == batch_info['start'] - 1">
+                  <span tal:content="string:${repeat/page/number}" />&nbsp;
+                </tal:block>
+              </tal:block>
+              <a tal:define="next batch_info/next"
+                 tal:condition="python:next is not None"
+                 tal:attributes="href python:'%s?%s'%(request['URL'],
+                 mq(request.form, b_start=next))"
+                 i18n:translate="batch_next">Next</a>
+              <a tal:define="next batch_info/next;
+              last_page python:batch_info['pages'][-1]"
+              tal:condition="python:next is not None"
+              tal:attributes="href python:'%s?%s'%(request['URL'],
+              mq(request.form, b_start=last_page))"
+              >
+              (&gt;&gt;)</a>
+            </div>
+          </tal:block>
+        </span>
+      </span>
+    </span>
+  </metal:main>
+</metal:body>
Index: WAeUP_SRP/ois/waeup_custom/slip_template.pt
===================================================================
--- WAeUP_SRP/ois/waeup_custom/slip_template.pt	(revision 3662)
+++ WAeUP_SRP/ois/waeup_custom/slip_template.pt	(revision 3662)
@@ -0,0 +1,109 @@
+<metal:block define-macro="master"
+  tal:define="showthirdcol showthirdcol|python:1;
+  emptybody emptybody|request/emptybody|nothing;
+  mtool here/portal_membership;
+
+  utool nocall:here/portal_url;
+  atool here/portal_actions;
+  ttool here/portal_trees;
+  wtool here/portal_workflow;
+  ptool here/portal_cpsportlets;
+  context_url python:here.getContextUrl(utool=utool);
+  here_url here/absolute_url;
+  base_url here/getBaseUrl;
+  static_dir here/portal_properties/static_dir;
+  static_base_url string:${base_url}${static_dir};    
+  member mtool/getAuthenticatedMember;
+  isAnon mtool/isAnonymousUser;
+  isHomeless python:isAnon or member.getProperty('homeless', 0);
+  isHomeless python:(isHomeless == '0' and [0] or [isHomeless])[0];
+  actions python:atool.listFilteredActionsFor(here);
+  wf_state python:wtool.getInfoFor(here,'review_state','');
+  uname python: isAnon and 'Guest' or member.getUserName();
+  checkPerm nocall: mtool/checkPermission;
+  cpsmcat nocall:here/translation_service;
+  locale here/translation_service/getSelectedLanguage;
+  in_ws here/isInWorkspace;
+  waeup_skin here/get_waeup_skin;
+  ">
+  <metal:block define-slot="doctype"><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
+    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+  </metal:block>
+  <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en"
+        lang="en">
+    <head>
+      <metal:block use-macro="here/header_lib_header/macros/header|here/header_lib/macros/header">
+        <metal:block fill-slot="base">
+          <metal:block define-slot="base">
+            <base href=""
+                  tal:attributes="href string:${here_url}/" />
+          </metal:block>
+        </metal:block>
+        <metal:block fill-slot="head_slot">
+          <metal:block define-slot="head_slot" />
+        </metal:block>
+        <metal:block fill-slot="style_slot">
+          <link rel="stylesheet" type="text/css" media="all"
+                tal:attributes="href string:${static_base_url}common.css" />
+          <metal:block define-slot="style_slot" />
+        </metal:block>
+        <metal:block fill-slot="javascript_head_slot">
+          <metal:block define-slot="javascript_head_slot" />
+        </metal:block>
+      </metal:block>
+      <link rel="icon"
+            href="ng.png"
+            tal:attributes="href string:${static_base_url}ng.png"
+            type="image/png" />
+      <link rel="shortcut icon"
+            href="icons/ng.png"
+            tal:attributes="href string:${static_base_url}ng.png"
+            type="image/png" />
+    </head>
+    <body tal:condition="emptybody"
+          style="margin: 0px;"
+          tal:attributes="onload here/getOnLoad|string:setFocus();">
+      <metal:block define-slot="body" />
+      <metal:block define-slot="main" />
+    </body>
+    <body tal:condition="not:emptybody"
+          style="margin: 0px;"
+          tal:attributes="onload here/getOnLoad|string:setFocus();">
+   
+    <table summary="Logo Block"
+           style="margin-left: auto; margin-right: auto; width: 100%;"
+           class="shapeNoBorder colorTransparent" cellpadding="0"
+           cellspacing="0">
+      <tbody>
+        <tr>
+          <td style="width: 20px;" valign="top"></td>
+          <td valign="top" style="width: 80px; padding: 0.5em; text-align: right;">
+            <img tal:attributes="src string:${static_base_url}logo_left.jpg"  alt="Logo"
+                     height="84"  />
+          </td>
+          <td style="padding: 1em 0em 0em 0em; text-align: left;" valign="top">
+             <h2>University of Ilorin, Ilorin, Nigeria</h2>
+          
+          </td>
+          <td style="width: 20px;" valign="top"></td>
+        </tr>
+      </tbody>
+    </table>
+      
+    <table summary="Main Block" cellpadding="0" cellspacing="0" 
+           style="margin-left:auto;margin-right:auto;width:100%;">
+      <tr>
+        <td valign="top" style="width:700px">
+          <div style="padding:2em; text-align: left;" 
+               class="fontColordefaultfontcolors fontShapeTitleindex shapeAreaShape">
+                  <metal:block use-macro="here/generic_lib_portal_message/macros/portal_message" />
+                  <metal:block define-slot="header" />
+                  <metal:block define-slot="main" />
+                  <metal:block define-slot="sub" />
+          </div>
+        </td>
+      </tr>
+    </table>
+  </body>
+</html>
+</metal:block>
Index: WAeUP_SRP/ois/waeup_custom/statistics_simple_view.pt
===================================================================
--- WAeUP_SRP/ois/waeup_custom/statistics_simple_view.pt	(revision 3662)
+++ WAeUP_SRP/ois/waeup_custom/statistics_simple_view.pt	(revision 3662)
@@ -0,0 +1,125 @@
+<metal:body use-macro="here/main_template/macros/master">
+  <metal:main fill-slot="main">
+  <metal:block tal:define="faculties context/getSimpleStudentStatistics;
+                        mtool here/portal_membership;
+                        member mtool/getAuthenticatedMember;
+                        session_str python:context.getSessionId()[1]">       
+
+      <span tal:condition="not: faculties">
+        <span tal:content="here/illegal_view" />
+      </span>
+      <span tal:condition="faculties">
+  
+      <strong>
+      <nobr><a href="search_students">Search Students</a>
+      &nbsp;&nbsp;&nbsp;&nbsp;</nobr>        
+   
+      </strong>     
+
+      <h3>Basic Student Statistics <span tal:content="session_str" /></h3>
+      <br />      
+      <span tal:condition="not:isAnon">
+      Student records imported: <span tal:content="python: faculties[0]['total_in_catalog']" />
+      <br />  <br />  
+        <table >  
+
+          <tr>
+            <th>&nbsp;</th>
+            
+            <th style="border-style:solid; border-width:1px; border-color:black" align="center" colspan="2">All Students</th>
+            
+            <th style="border-style:solid; border-width:1px; border-color:black" align="center" colspan="2">Category A</th>
+
+            <th style="border-style:solid; border-width:1px; border-color:black" align="center" colspan="2">Category B</th>
+
+            <th style="border-style:solid; border-width:1px; border-color:black" align="center" colspan="2">Category C</th>
+
+
+          </tr>
+
+          <tr class="odd ajaxtd">
+            <th >Faculty</th>
+            <th align="right">Returning</th>
+            <th align="right">New</th>
+
+            <th align="right">Returning</th>
+            <th align="right">New</th>
+
+            <th align="right">Returning</th>
+            <th align="right">New</th>
+
+            <th align="right">Returning</th>
+            <th align="right">New</th>
+
+
+          </tr>
+          <tr tal:repeat="d faculties"
+              tal:attributes="class python:test(repeat['d'].even(), 'even ajaxtd', 'odd ajaxtd')">
+              <td width="80px"> <span tal:content="d/id" /> </td>
+
+              <td width="60px" align="right"> 
+                <span tal:content="d/total_ft" />
+              </td>              
+
+              <td width="60px" align="right"> 
+                <span tal:content="d/total_pt" />
+              </td>              
+
+
+              <td width="60px" align="right"> 
+                <span tal:content="d/total_Aft" />
+              </td>              
+
+              <td width="60px" align="right"> 
+                <span tal:content="d/total_Apt" />
+              </td>              
+
+     
+
+              <td width="60px" align="right"> 
+                <span tal:content="d/total_Bft" />
+              </td>              
+
+              <td width="60px" align="right"> 
+                <span tal:content="d/total_Bpt" />
+              </td>              
+              
+   
+              
+              <td width="60px" align="right"> 
+                <span tal:content="d/total_Cft" />
+              </td>      
+              
+              <td width="60px" align="right"> 
+                <span tal:content="d/total_Cpt" />
+              </td>      
+              
+                                        
+
+                                       
+
+          </tr>
+        </table>
+
+        <br />
+        <table   border=0>
+
+        <tr><td>Category A: </td> <td>students who paid their school fee in <span tal:content="session_str" /></td></tr>
+        <tr><td>Category B: </td> <td>students who registered their courses online (A contains B) in <span tal:content="session_str" /></td></tr>
+        <tr><td>Category C: </td> <td>students who 'arrived' in <span tal:content="session_str" /> but have not yet paid their school fee</td></tr>
+        <tr><td>New: </td> <td>students in level 100 or 600</td></tr>
+        <tr><td>&nbsp;</td><td>&nbsp;</td></tr>
+        <tr><td colspan="2"><strong>Remark:</strong> <span tal:content="python: faculties[0]['not_categorized']" /> returning students are not categorized.
+             </td>
+        </tr>
+          
+        </table>
+        
+        
+        
+      </span>
+      </span>
+  </metal:block>      
+  </metal:main>
+</metal:body>
+      
Index: WAeUP_SRP/ois/waeup_custom/transcript_view.pt
===================================================================
--- WAeUP_SRP/ois/waeup_custom/transcript_view.pt	(revision 3662)
+++ WAeUP_SRP/ois/waeup_custom/transcript_view.pt	(revision 3662)
@@ -0,0 +1,106 @@
+<metal:body use-macro="here/main_template/macros/master">
+  <metal:main fill-slot="main"
+          tal:define="info context/getTranscriptInfo;">
+  <metal:block define-macro="edit_form">   
+              
+    <span tal:condition="not: info">
+      <span tal:content="here/illegal_view" />
+    </span>
+    
+    <span tal:condition="info">
+    <span tal:define= "is_so context/isSectionOfficer;
+                       is_ca context/isCourseAdviser;
+                       is_student info/is_student;
+                       with_score not: info/without_score|nothing;
+                       ">       
+          
+    <a href=""
+       tal:attributes="href string:${here/academicsParent}">
+      <img tal:attributes="src string:${here/portal_url}/arrow_up.gif"/>
+      Up one level
+    </a>
+
+    <h3> 
+      <span tal:condition="python: is_so or is_ca">
+        <span tal:content="info/student_record/name" />:
+      </span>
+      <span tal:condition="is_student">My </span> Transcript     
+      <br />
+    </h3>
+             
+      <span tal:repeat="details info/year_details">
+      <span tal:define="year_courses info/year_courses;
+                        year python:year_courses[details['year']]"
+            tal:condition="python:len(year)">
+      
+      <br />
+      
+      <h3> Year <span tal:replace="details/year" />  (Session <span tal:replace="details/session" />)</h3>
+      
+     
+      
+     
+      <br />
+      
+      <table  class="contentListing" width="100%" id="folder_content">
+        <tr>
+        <th align='center'></th> 
+        <th align='center'>session</th>
+        <th align='center'>level</th>
+        <th align='center'>semester</th>
+        <th align='center'>credits</th>
+        <th tal:condition="with_score" align='center'>score</th>
+        <th align='center'>grade</th>
+        <th align='center'>weight</th>
+        <th align='center'></th>       
+        </tr>  
+                      
+        <tr tal:repeat="row year"
+            tal:attributes="class python:test(repeat['row'].even(), 'even ajaxtd', 'odd ajaxtd')">
+          <td align="center" tal:content="row/code"></td>
+          <td align='center' tal:content="row/session_id"></td>
+          <td align='center' tal:content="row/level_id"></td>                    
+          <td align="center"><span tal:content="row/semester" /></td>
+          <td align="center" tal:content="row/credits"></td>
+          <td tal:condition="with_score" align="center"  tal:content="row/score"></td>
+          <td align="center" tal:content="row/grade"></td>
+          <td align="center" tal:content="row/weight"></td>
+          <td align="center" tal:content="row/coe|nothing"></td>
+        </tr>
+      </table>
+
+        <br />
+        <table>
+          <tr tal:condition="details/total_credits" >
+            <th width='200pt'>Total Credits:</th>
+            <td tal:content="details/total_credits" />
+          </tr>
+          <tr tal:condition="details/gpa">
+            <th>GPA:</th> 
+            <td><span tal:content="details/gpa" /></td>
+          </tr>
+          <tr>
+            <th>Cumulative Total Credits:</th>
+            <td tal:content="details/c_total_credits" />
+          </tr>
+          <tr tal:condition="details/cgpa">
+            <th>CGPA:</th> 
+            <td><span tal:content="details/cgpa" /></td>
+          </tr>          
+        </table>      
+
+      </span>
+      </span>
+
+      
+ 
+               
+
+    <br />
+  </span>
+  </span>        
+  </metal:block>    
+  </metal:main>
+
+</metal:body>
+
