Index: /WAeUP_SRP/trunk/CHANGES.txt
===================================================================
--- /WAeUP_SRP/trunk/CHANGES.txt	(revision 3726)
+++ /WAeUP_SRP/trunk/CHANGES.txt	(revision 3727)
@@ -87,2 +87,7 @@
 - enable reg_transition by import in edit mode
 - add graduate transition and graduated state to student workflow
+
+1.16 (2008-10-15)
+-----------------
+- more customizations for OIS
+- fetch all student object titles from getStudentObjectTitles.py
Index: /WAeUP_SRP/trunk/profiles/default/layouts/import_course_result.xml
===================================================================
--- /WAeUP_SRP/trunk/profiles/default/layouts/import_course_result.xml	(revision 3726)
+++ /WAeUP_SRP/trunk/profiles/default/layouts/import_course_result.xml	(revision 3727)
@@ -154,4 +154,20 @@
 
   <widget name="ca1" meta_type="Int Widget">
+    <property name="title">ATL</property>
+    <property name="fields">
+      <element value="atl"/>
+    </property>
+    <property name="is_required">False</property>
+    <property name="label">ATL</property>
+    <property name="label_edit">ATL</property>
+    <property name="readonly_layout_modes">
+    </property>
+    <property name="hidden_layout_modes"/>
+    <property name="hidden_readonly_layout_modes"/>
+    <property name="min_value">1</property>
+    <property name="max_value">4</property>
+  </widget>
+
+  <widget name="ca1" meta_type="Int Widget">
     <property name="title">CA Score 1</property>
     <property name="fields">
Index: /WAeUP_SRP/trunk/profiles/default/schemas/import_course_result.xml
===================================================================
--- /WAeUP_SRP/trunk/profiles/default/schemas/import_course_result.xml	(revision 3726)
+++ /WAeUP_SRP/trunk/profiles/default/schemas/import_course_result.xml	(revision 3727)
@@ -10,4 +10,5 @@
  <field name="credits" meta_type="CPS Int Field"/>
  <field name="score" meta_type="CPS String Field"/>
+ <field name="atl" meta_type="CPS Int Field"/>
  <field name="ca1" meta_type="CPS Int Field"/>
  <field name="ca2" meta_type="CPS Int Field"/>
Index: /WAeUP_SRP/trunk/profiles/default/schemas/student_course_result.xml
===================================================================
--- /WAeUP_SRP/trunk/profiles/default/schemas/student_course_result.xml	(revision 3726)
+++ /WAeUP_SRP/trunk/profiles/default/schemas/student_course_result.xml	(revision 3727)
@@ -11,4 +11,5 @@
  <field name="status" meta_type="CPS String Field"/>
  <field name="passmark" meta_type="CPS Int Field"/>
+ <field name="atl" meta_type="CPS String Field"/>
  <field name="ca1" meta_type="CPS Int Field"/>
  <field name="ca2" meta_type="CPS Int Field"/>
Index: /WAeUP_SRP/trunk/profiles/default/vocabularies/pastoral_grade.xml
===================================================================
--- /WAeUP_SRP/trunk/profiles/default/vocabularies/pastoral_grade.xml	(revision 3726)
+++ /WAeUP_SRP/trunk/profiles/default/vocabularies/pastoral_grade.xml	(revision 3727)
@@ -6,8 +6,7 @@
     <property name="description"></property>
     <item key="" msgid=""></item>
-    <item key="outstanding" msgid="">Outstanding</item>
-    <item key="very_good" msgid="">Very Good</item>
-    <item key="good" msgid="">Good</item>
-    <item key="satisfactory" msgid="">Satisfactory</item>
-    <item key="unsatisfactory" msgid="">Unsatisfactory</item>
+    <item key="1" msgid="">Excellent</item>
+    <item key="2" msgid="">Showing Promise</item>
+    <item key="3" msgid="">Some Concern</item>
+    <item key="4" msgid="">Major Concern</item>
 </object>
Index: /WAeUP_SRP/trunk/profiles/ois/actions.xml
===================================================================
--- /WAeUP_SRP/trunk/profiles/ois/actions.xml	(revision 3726)
+++ /WAeUP_SRP/trunk/profiles/ois/actions.xml	(revision 3727)
@@ -7,4 +7,15 @@
    <permission>View</permission>
   </action>
+ </action-provider>
+ <action-provider name="portal_actions">
+  <action title="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="Payments" action_id="payments"
+     category="student_navigation" condition_expr="member"
+     url_expr="string:${portal_url}/campus/students/${member}/payments"
+     visible="True"/>    
   <action title="My Accommodation" action_id="reserve_accommodation"
      category="student_navigation" condition_expr="member"
Index: /WAeUP_SRP/trunk/profiles/ois/course_results.xml
===================================================================
--- /WAeUP_SRP/trunk/profiles/ois/course_results.xml	(revision 3726)
+++ /WAeUP_SRP/trunk/profiles/ois/course_results.xml	(revision 3727)
@@ -11,4 +11,5 @@
  <column value="session_id"/>
  <column value="score"/>
+ <column value="atl"/>
  <column value="ca1"/>
  <column value="ca2"/>
Index: /WAeUP_SRP/trunk/profiles/ois/layouts/student_clearance.xml
===================================================================
--- /WAeUP_SRP/trunk/profiles/ois/layouts/student_clearance.xml	(revision 3726)
+++ /WAeUP_SRP/trunk/profiles/ois/layouts/student_clearance.xml	(revision 3727)
@@ -620,10 +620,10 @@
  </widget>
  <widget name="matric_no" meta_type="String Widget">
-  <property name="title">Matriculation Number</property>
+  <property name="title">Registration 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="label">Registration Number</property>
+  <property name="label_edit">Registration Number</property>
   <property name="readonly_layout_modes">
   </property>
Index: /WAeUP_SRP/trunk/profiles/ois/layouts/student_clearance_fe.xml
===================================================================
--- /WAeUP_SRP/trunk/profiles/ois/layouts/student_clearance_fe.xml	(revision 3726)
+++ /WAeUP_SRP/trunk/profiles/ois/layouts/student_clearance_fe.xml	(revision 3727)
@@ -587,10 +587,10 @@
  </widget>
  <widget name="matric_no" meta_type="String Widget">
-  <property name="title">Matriculation Number</property>
+  <property name="title">Registration 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="label">Registration Number</property>
+  <property name="label_edit">Registration Number</property>
   <property name="readonly_layout_modes">
    <element value="edit"/>
Index: /WAeUP_SRP/trunk/profiles/ois/layouts/student_course_result.xml
===================================================================
--- /WAeUP_SRP/trunk/profiles/ois/layouts/student_course_result.xml	(revision 3726)
+++ /WAeUP_SRP/trunk/profiles/ois/layouts/student_course_result.xml	(revision 3727)
@@ -10,4 +10,17 @@
  <property name="label_edit"></property>
  <property name="is_i18n">False</property>
+ <widget name="atl" meta_type="Select Widget">
+  <property name="title">ATL</property>
+  <property name="fields">
+   <element value="atl"/>
+  </property>
+  <property name="label">ATL</property>
+  <property name="label_edit">ATL</property>
+  <property name="readonly_layout_modes">
+  </property>
+  <property name="hidden_layout_modes"/>
+  <property name="hidden_readonly_layout_modes"/>
+  <property name="vocabulary">pastoral_grade</property>
+ </widget>  
  <widget name="ca1" meta_type="Float Widget">
   <property name="title">CA 1 Marks</property>
@@ -146,4 +159,7 @@
   </row>
   <row>
+   <cell name="atl"/>
+  </row>  
+  <row>
    <cell name="ca1"/>
   </row>
Index: /WAeUP_SRP/trunk/skins/waeup_layout/layout_search_session_edit.pt
===================================================================
--- /WAeUP_SRP/trunk/skins/waeup_layout/layout_search_session_edit.pt	(revision 3726)
+++ /WAeUP_SRP/trunk/skins/waeup_layout/layout_search_session_edit.pt	(revision 3727)
@@ -78,5 +78,5 @@
   <br /><br />
   <input type="submit" class="standalone" name="cpsdocument_edit_button"
-         value="Save & First-time Login" 
+         value="Save & Login" 
          id="cpsdocument_edit_button"
          tal:condition="not:creation" />
Index: /WAeUP_SRP/trunk/skins/waeup_ois/academic_report_slip.pt
===================================================================
--- /WAeUP_SRP/trunk/skins/waeup_ois/academic_report_slip.pt	(revision 3726)
+++ /WAeUP_SRP/trunk/skins/waeup_ois/academic_report_slip.pt	(revision 3727)
@@ -23,4 +23,5 @@
                     <tr tal:condition="python:info[sem[2]]">
                         <th tal:content="python:sem[1]" />
+                        <th align='center'>ATL</th>  
                         <th align='center'>CA 1 <br />Marks</th>
                         <th align='center'>CA 2 <br />Marks</th>    
@@ -34,4 +35,5 @@
                         tal:attributes="class python:test(repeat['row'].even(), 'even ajaxtd', 'odd ajaxtd')"> 
                         <td tal:content="row/title"></td> 
+                        <td align="center" tal:content="python:context.portal_vocabularies.pastoral_grade.get(row['atl'])"></td>
                         <td align="center" tal:content="row/ca1"></td> 
                         <td align="center" tal:content="row/ca2"></td> 
Index: /WAeUP_SRP/trunk/skins/waeup_ois/academic_report_view.pt
===================================================================
--- /WAeUP_SRP/trunk/skins/waeup_ois/academic_report_view.pt	(revision 3726)
+++ /WAeUP_SRP/trunk/skins/waeup_ois/academic_report_view.pt	(revision 3727)
@@ -44,31 +44,19 @@
         <span tal:content="info/student/name" />:
       </span>
-      <span tal:condition="is_student">My </span>
-      
       Subject Registration Form for <span tal:content="info/level_str" />
     </h3>
-    
-        <br />
+        
+    <br />
            
-        <table>
-           <tr>
-            <th valign='top'>Pastoral Reports:</th> 
-            <td>
-              <span tal:repeat="item python:info['items']">
-                <a href="view" 
-                   tal:attributes="href item/id"
-                   tal:content="item/title"/><br />
-              </span>
-            </td>
-          </tr>
-          <tr>
-            <th>Session:</th> 
-            <td><span tal:content="info/session" /></td>
-          </tr>
-          <tr tal:condition="has_verdict">
-            <th>Verdict:</th> 
-            <td><span tal:content="info/verdict" /></td>
-          </tr>      
-        </table>           
+    <table>
+      <tr>
+        <th>Session:</th> 
+        <td><span tal:content="info/session" /></td>
+      </tr>
+      <tr tal:condition="has_verdict">
+        <th>Verdict:</th> 
+        <td><span tal:content="info/verdict" /></td>
+      </tr>      
+    </table>           
    
              
@@ -89,4 +77,5 @@
         <th tal:attributes="colspan python: test(show_check_boxes,'2','1')" 
             tal:content="python:sem[1]" />
+        <th align='center'>ATL</th>    
         <th align='center'>CA 1 <br />Marks</th>
         <th align='center'>CA 2 <br />Marks</th>    
@@ -110,4 +99,5 @@
           </td>
           <td tal:content="row/title"></td>
+          <td align="center" tal:content="python:context.portal_vocabularies.pastoral_grade.get(row['atl'])"></td>
           <td align="center" tal:content="row/ca1"></td>
           <td align="center" tal:content="row/ca2"></td>
@@ -275,4 +265,17 @@
       </table>
       </form>   
+      
+      <table>      
+           <tr>
+            <th valign='top'>Pastoral Reports:</th> 
+            <td>
+              <span tal:repeat="item python:info['items']">
+                <a href="view" 
+                   tal:attributes="href item/id"
+                   tal:content="item/title"/><br />
+              </span>
+            </td>
+          </tr>
+       </table>      
   </span>
   </span>        
Index: /WAeUP_SRP/trunk/skins/waeup_ois/application_view.pt
===================================================================
--- /WAeUP_SRP/trunk/skins/waeup_ois/application_view.pt	(revision 3727)
+++ /WAeUP_SRP/trunk/skins/waeup_ois/application_view.pt	(revision 3727)
@@ -0,0 +1,25 @@
+<metal:body use-macro="here/main_template/macros/master">
+   <metal:main fill-slot="main"
+                 tal:define="info context/getApplicationInfo;
+                             titles here/getStudentObjectTitles;">
+      <span tal:condition="not: info">
+        <span tal:content="here/illegal_view" />
+      </span>
+      <span tal:condition="info">
+            
+
+        <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:content="titles/StudentApplication" /></h3>
+        <br />
+        <span tal:omit-tag=""
+              tal:content="structure python: info['app_doc'].render(proxy=info['app_doc'],
+              layout_mode='view', 
+              layout_id='student_application')" 
+              />
+      </span>
+   </metal:main>
+</metal:body>
Index: /WAeUP_SRP/trunk/skins/waeup_ois/clearance_slip.pt
===================================================================
--- /WAeUP_SRP/trunk/skins/waeup_ois/clearance_slip.pt	(revision 3727)
+++ /WAeUP_SRP/trunk/skins/waeup_ois/clearance_slip.pt	(revision 3727)
@@ -0,0 +1,58 @@
+<metal:body use-macro="here/slip_template/macros/master">
+    <metal:main fill-slot="main"
+                 tal:define="info context/getClearanceInfo;
+                             titles here/getStudentObjectTitles;">
+      <span tal:condition="not: info">
+        <span tal:content="here/illegal_view" />
+      </span>
+      <span tal:omit-tag=""  tal:condition="info">
+      <div style="text-align: right" tal:condition="info/penalty"> 
+      <strong>Late Clearance!</strong></div>
+            
+        <h3><span tal:content="titles/StudentClearance" /> Slip</h3>
+        <br />
+        <span tal:omit-tag=""
+              tal:content="structure python: info['app_doc'].render(proxy=info['app_doc'],
+              layout_mode='view_info', 
+              layout_id='student_application')" 
+              />        
+              
+        <table tal:define="sc python: info['course_doc'];
+               f_id sc/faculty;
+               d_id sc/department;
+               sc_id sc/course;
+               f_title context/academics/?f_id/Title|string:Faculty not yet in Prospectus;
+               d_title context/academics/?f_id/?d_id/Title|string:Department not yet in Prospectus;
+               sc_title context/academics/?f_id/?d_id/certificates/?sc_id/Title|string:Course not in Prospectus"
+               >
+        <tr>
+          <td width="180px">Certificate:</td> 
+          <td><span tal:content="sc_title" /></td>
+        </tr>
+        </table>                 
+              
+        <span tal:omit-tag=""
+              tal:content="structure python: info['clear_doc'].render(proxy=info['clear_doc'],
+              layout_mode='view', 
+              layout_id='student_clearance_fe')" 
+              />
+        <span tal:condition="not:context/isStudent">   
+              <br /><br />
+              <table  width=100%>
+              <tr >
+              <td width=50%>Date:</td><td>Date:</td>
+              </tr>
+              </table>
+              
+              <br /><br /><br /><br />
+              <table  width=100%>
+              <tr >
+              <td width=50% style="border-top-style:solid; border-top-width:1px; border-top-color:black"> Student</td>
+              <td width=50% style="border-top-style:solid; border-top-width:1px; border-top-color:black">Clearance Officer</td>
+              </tr>
+              </table>
+         </span>              
+              
+      </span>
+    </metal:main>
+</metal:body>
Index: /WAeUP_SRP/trunk/skins/waeup_ois/clearance_view.pt
===================================================================
--- /WAeUP_SRP/trunk/skins/waeup_ois/clearance_view.pt	(revision 3727)
+++ /WAeUP_SRP/trunk/skins/waeup_ois/clearance_view.pt	(revision 3727)
@@ -0,0 +1,40 @@
+<metal:body use-macro="here/main_template/macros/master">
+  <metal:main fill-slot="main"
+              tal:define="info context/getClearanceInfo;
+                          titles here/getStudentObjectTitles;">
+    <span tal:condition="not: info">
+      <span tal:content="here/illegal_view" />
+    </span>
+    <span tal:condition="info" tal:define="is_so info/is_sectionofficer|nothing;
+    is_student info/is_student|nothing;"
+    >
+      <div style="text-align: right">
+        <a href="" target="slip" tal:attributes="href string:clearance_slip"
+           onclick="javascript:window.open('','slip','width=600, height=700, directories=no, toolbar=no, location=no, menubar=yes, scrollbars=yes, status=no, resizable=no, dependent=no')">
+          <img tal:attributes="src string:${here/portal_url}/actionicon_print.png" />
+          <span tal:content="titles/StudentClearance" /> Slip
+        </a>
+      </div>
+      
+      <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 and info">
+          <span tal:content="info/student_name" />:
+        </span>
+        <span tal:content="titles/StudentClearance" />
+      </h3>        
+      
+      <br />
+      <span tal:omit-tag=""
+            tal:content="structure python: info['clear_doc'].render(proxy=info['clear_doc'],
+            layout_mode='view', 
+            layout_id='student_clearance_fe')" 
+            />
+    </span>
+  </metal:main>
+</metal:body>
Index: eUP_SRP/trunk/skins/waeup_ois/getPaymentsFolderInfo.py
===================================================================
--- /WAeUP_SRP/trunk/skins/waeup_ois/getPaymentsFolderInfo.py	(revision 3726)
+++ 	(revision )
@@ -1,131 +1,0 @@
-## 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: eUP_SRP/trunk/skins/waeup_ois/getSchoolFee.py
===================================================================
--- /WAeUP_SRP/trunk/skins/waeup_ois/getSchoolFee.py	(revision 3726)
+++ 	(revision )
@@ -1,54 +1,0 @@
-## 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/trunk/skins/waeup_ois/getStudentObjectTitles.py
===================================================================
--- /WAeUP_SRP/trunk/skins/waeup_ois/getStudentObjectTitles.py	(revision 3727)
+++ /WAeUP_SRP/trunk/skins/waeup_ois/getStudentObjectTitles.py	(revision 3727)
@@ -0,0 +1,22 @@
+## Script (Python) "getStudentObjectTitles"
+##bind container=container
+##bind context=context
+##bind namespace=
+##bind script=script
+##bind subpath=traverse_subpath
+##parameters=
+##title=
+##
+# $Id:getDocumentInfo.py 486 2006-09-06 10:09:39Z joachim $
+"""
+return titles of student-objects as dictionary
+"""
+
+return  {'StudentApplication': 'Admission Data',
+              'StudentAccommodation': 'Accommodation Data' ,
+              'StudentClearance': 'Account/Clearance Data',
+              'StudentPersonal': 'Parents Data',
+              'StudentStudyCourse': 'Subjects/Courses',
+              'PaymentsFolder': 'Payments',
+              'StudentPastoralReport': 'Pastoral Report',
+              }
Index: eUP_SRP/trunk/skins/waeup_ois/goto_interswitch_form.pt
===================================================================
--- /WAeUP_SRP/trunk/skins/waeup_ois/goto_interswitch_form.pt	(revision 3726)
+++ 	(revision )
@@ -1,52 +1,0 @@
-<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: eUP_SRP/trunk/skins/waeup_ois/interswitch_form.pt
===================================================================
--- /WAeUP_SRP/trunk/skins/waeup_ois/interswitch_form.pt	(revision 3726)
+++ 	(revision )
@@ -1,41 +1,0 @@
-<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>
-        </table>
-        <br />
-        <input type="submit" 
-               class="standalone" 
-               name="goto_bank" 
-               value="Confirm" 
-               />
-
-      </form>
-    </span>
-    </metal:main>
-</metal:body>
-
Index: /WAeUP_SRP/trunk/skins/waeup_ois/layout_application_view.pt
===================================================================
--- /WAeUP_SRP/trunk/skins/waeup_ois/layout_application_view.pt	(revision 3727)
+++ /WAeUP_SRP/trunk/skins/waeup_ois/layout_application_view.pt	(revision 3727)
@@ -0,0 +1,83 @@
+<!-- a layout_lib macro -->
+<!-- $Id: layout_application_view.pt 1435 2007-02-19 10:35:10Z henrik $ -->
+
+<metal:define tal:define="isStaff context/isStaff;
+                          isStudent context/isStudent;">
+
+<metal:block tal:condition="isStaff">              
+<metal:block use-macro="here/layout_waeup_lib/macros/table_view"/>              
+</metal:block>              
+
+<metal:block define-macro="default_view"
+       tal:condition="isStudent"
+       tal:define="dm options/datastructure/getDataModel;
+                   layout options/layout;
+                   widgets python:context.getRenderedWidgets(layout);
+                   fields python:('jamb_reg_no',
+                                 'app_ac_pin',
+                                 'app_ac_date',
+                                 'app_email',
+                                 'app_mobile',)"
+                                 >
+  <table cellpadding="2" cellspacing="2" summary="layout">
+    <tr>
+      <td valign="top"><span class="dlabel">Name</span>:
+      </td>
+      <td> 
+        <span tal:content="python:context.getStudentBaseInfo()['student']['name']" />
+      </td>      
+    </tr>
+    <tr>
+      <td valign="top"><span class="dlabel">Sex</span>:
+      </td>
+      <td> 
+        <span tal:content="python:context.getStudentBaseInfo()['student']['sex']" />
+      </td>      
+    </tr>          
+    <tr valign="top">
+      <td><span class="dlabel">Online Student ID</span>:
+      </td>
+      <td> 
+        <span tal:content="python:context.getStudentBaseInfo()['id']" />
+      </td>      
+    </tr>
+    <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 >
+             <span class="dlabel"
+                    tal:condition="widget/label"
+                    tal:content="widget/label">label</span>:
+            </td>
+            <td> 
+               <span tal:replace="structure cell/widget_rendered" />
+            </td>
+          </div>
+        </tal:block>
+      </tal:block>
+    </tr>
+    </table>
+    <table width="100%">
+    <tr>
+      <tal:block define="cell widgets/passport;
+                         widget cell/widget"
+                         >
+          <div tal:attributes="class cell/widget_css_class|nothing;
+              id python:widget.getHtmlWidgetId()+'_widget';">
+            <td valign="top">
+            <tal:block condition="widget/label">
+              <span class="label"
+                    tal:content="widget/label">label</span>:
+            </tal:block>
+            </td>
+            <td align="right">
+              <img src="img" tal:replace="structure cell/widget_rendered">
+            </td>
+          </div>
+      </tal:block>
+    </tr>    
+  </table>
+</metal:block>
+</metal:define>
Index: /WAeUP_SRP/trunk/skins/waeup_ois/layout_application_view_info.pt
===================================================================
--- /WAeUP_SRP/trunk/skins/waeup_ois/layout_application_view_info.pt	(revision 3726)
+++ /WAeUP_SRP/trunk/skins/waeup_ois/layout_application_view_info.pt	(revision 3727)
@@ -29,5 +29,5 @@
         </tr>          
         <tr valign="top">
-          <td><span class="dlabel">Student ID</span>:
+          <td><span class="dlabel">Online Student ID</span>:
           </td>
           <td> 
Index: /WAeUP_SRP/trunk/skins/waeup_ois/layout_application_view_slip.pt
===================================================================
--- /WAeUP_SRP/trunk/skins/waeup_ois/layout_application_view_slip.pt	(revision 3727)
+++ /WAeUP_SRP/trunk/skins/waeup_ois/layout_application_view_slip.pt	(revision 3727)
@@ -0,0 +1,68 @@
+<metal:block define-macro="default_view"
+  tal:define="layout options/layout;
+              info context/getStudentBaseInfo;
+              dm options/datastructure/getDataModel;
+              widgets python:context.getRenderedWidgets(layout);
+              fields python:('jamb_reg_no',
+                                 'app_ac_pin',
+                                 'app_ac_date',
+                                 'app_email',
+                                 'app_mobile',
+                                 'jamb_state',
+                                  )"
+                                 >
+  <table cellpadding="10px" cellspacing="">
+    <tr>
+      <tal:block define="cell widgets/passport;
+                 widget cell/widget"
+                 >
+        <td valign="top">
+          <img src="img" tal:replace="structure cell/widget_rendered" />
+        </td>
+      </tal:block>
+      <td>
+        <table width="" cellpadding="2" cellspacing="0" summary="Form layout">
+          <tr>
+            <td valign="top"><span class="dlabel">Name</span>:
+            </td>
+            <td> 
+              <span tal:content="info/student/name" />
+            </td>      
+          </tr>
+          <tr>
+            <td valign="top"><span class="dlabel">Sex</span>:
+            </td>
+            <td> 
+              <span tal:content="info/student/sex" />
+            </td>      
+          </tr>          
+          <tr valign="top">
+            <td><span class="dlabel">Online Student ID</span>:
+            </td>
+            <td> 
+              <span tal:content="info/student/id" />
+            </td>      
+          </tr>
+          <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 valign="top">
+                    <span class="dlabel"
+                          tal:condition="widget/label"
+                          tal:content="widget/label">label</span>:
+                  </td>
+                  <td valign="top"> 
+                    <span tal:replace="structure cell/widget_rendered" />
+                  </td>
+                </div>
+              </tal:block>
+            </tal:block>
+          </tr>
+        </table>
+      </td>
+    </tr>
+  </table>
+</metal:block>
Index: /WAeUP_SRP/trunk/skins/waeup_ois/layout_personal_view.pt
===================================================================
--- /WAeUP_SRP/trunk/skins/waeup_ois/layout_personal_view.pt	(revision 3727)
+++ /WAeUP_SRP/trunk/skins/waeup_ois/layout_personal_view.pt	(revision 3727)
@@ -0,0 +1,59 @@
+<!-- a layout_lib macro -->
+<!-- $Id: layout_application_view.pt 980 2006-12-02 07:18:27Z henrik $ -->
+<metal:block define-macro="default_view"
+  tal:define="layout options/layout;
+              dm options/datastructure/getDataModel;">
+
+  <table cellpadding="2" cellspacing="2" summary="layout">
+    <tr>
+      <td><span class="dlabel">Online Student ID</span>:
+      </td>
+      <td> 
+         <span tal:replace="context/getStudentId" />
+      </td>      
+    </tr>
+    
+    <tr tal:define="lga python:context.getStudentBaseInfo()['student']['lga'];
+                    lga_voc python:context.portal_vocabularies.local_gov_areas.get(lga)">
+      <td><span class="dlabel">State / LGA</span>:
+      </td>
+      <td tal:condition="lga_voc"> 
+         <span tal:replace="lga_voc" />
+      </td>      
+      <td tal:condition="not: lga_voc"> 
+         <span tal:replace="lga" />
+      </td>           
+    </tr>    
+    
+    <span tal:repeat="row layout/rows">
+        <span tal:repeat="cell row">
+          <span tal:condition="python:cell['widget_rendered']">
+          <span tal:define="widget cell/widget">
+            <div tal:omit-tag=""
+                 tal:attributes="class cell/widget_css_class|nothing;">
+            <tr>                         
+            <tal:block condition="widget/label">
+            <td width="180px" valign="top" nowrap>
+              <span i18n:translate="" tal:condition="widget/is_i18n">
+                  <span tal:content="widget/label" />:</span>
+              <span tal:condition="not:widget/is_i18n">
+                  <span tal:content="widget/label" />:</span>
+            </td>
+            </tal:block>
+            <tal:block condition="not: widget/label">
+            <td valign="top">
+              <div> no label </div>
+            </td>
+            </tal:block>              
+            <td valign="top">
+             <div class="ddescription" tal:condition="cell/widget_rendered" tal:content="structure cell/widget_rendered"></div>
+             <div class="ddescription" tal:condition="not:cell/widget_rendered"> none </div>
+            </td>
+            </tr>
+            </div>
+          </span>
+          </span>
+      </span>
+    </span>    
+  </table>
+</metal:block>
Index: eUP_SRP/trunk/skins/waeup_ois/pay_interswitch.py
===================================================================
--- /WAeUP_SRP/trunk/skins/waeup_ois/pay_interswitch.py	(revision 3726)
+++ 	(revision )
@@ -1,170 +1,0 @@
-## 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)
-
-# for OIS only
-if request.has_key('demand'):
-    return context.demand_slip(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: eUP_SRP/trunk/skins/waeup_ois/payments_view.pt
===================================================================
--- /WAeUP_SRP/trunk/skins/waeup_ois/payments_view.pt	(revision 3726)
+++ 	(revision )
@@ -1,100 +1,0 @@
-<metal:body use-macro="here/main_template/macros/master">
-  <metal:main fill-slot="main"
-              tal:define="info context/getPaymentsFolderInfo;">
-    <span tal:condition="not: info">
-      <span tal:content="here/illegal_view" />
-    </span>
-    <span tal:condition="info" tal:omit-tag="">
-      <span tal:define= " rows info/payments;
-      review_state info/review_state;
-      is_student info/is_student;
-      s_name info/student_name;"
-      >
-        <a href=""
-           tal:attributes="href string:${context/aq_parent/absolute_url}">
-          <img tal:attributes="src string:${here/portal_url}/arrow_up.gif"/>
-          Up one level
-        </a>
-        <h3> 
-          <span tal:condition="not:is_student" tal:omit-tag="">
-            <span tal:content="s_name" />:</span>
-          <span tal:condition="is_student" tal:omit-tag="">My</span> Payments
-        </h3>
-        <br />
-        <table class="registration" width="100%">
-          <tr>
-            <th>Description, Amount, Date</th>
-            <th>Response</th>
-            <th>Transaction Code</th>
-          </tr>
-          <tr tal:repeat="row rows"
-              tal:attributes="class python:test(repeat['row'].even(), 'even ajaxtd', 'odd ajaxtd')">
-            <td style="white-space:normal" tal:attributes="class string:${row/confirmed}">
-              <a style="white-space:normal"  target="slip" href="" 
-                 tal:attributes="href string:${row/url}/payment_receipt"
-                 onclick="javascript:window.open('','slip','width=600, height=700, directories=no, toolbar=no, location=no, menubar=yes, scrollbars=yes, status=no, resizable=no, dependent=no')">
-                <strong tal:content="row/title" /></a> 
-            </td>
-            <td style="white-space:normal" tal:content="row/resp_desc" />
-            <td tal:content="row/trans_ref" />
-            <td>
-              <a tal:condition="row/is_approvable"
-                 tal:attributes="href string:${row/url}/approve_epayment;
-                 onclick python:'return window.confirm(\'%s\')' %(cpsmcat('Are you sure? You will not be able to undo the approval.'), );"
-                 >
-                [approve]
-              </a>             
-            </td>
-            <td>
-              <a tal:condition="row/is_requeryable"
-                 tal:attributes="href row/href;
-                 onclick python:'return window.confirm(\'%s\')' %(cpsmcat('Are you sure?'), );"
-                 >
-                [requery]
-              </a>             
-            </td>
-            <td>
-              <a tal:condition="row/is_editable"
-                href="edit" tal:attributes="href string:${row/url}/external_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')"
-                >
-                [edit]
-              </a>             
-            </td>            
-          </tr>
-        </table>
-        <br />
-        <div>
-          <form tal:condition="python: info.get('payment_method') == 'online_payment'" 
-                tal:attributes="action string: ${context/absolute_url}/pay_interswitch" method="post" class="group">
-            <input type="submit" name="epayment" 
-                   class="context" 
-                   value="Initiate School Fee Online Payment" 
-                   />
-            <input type="submit" 
-                   class="standalone" 
-                   name="demand" 
-                   value="Demand for Payment" 
-                   />                      
-          </form>  
-          <form tal:condition="python: info.get('payment_method') == 'sc_payment'" 
-                tal:attributes="action string: ${context/absolute_url}/pay_by_sc" method="post" class="group">
-            <input type="hidden" name="paid_session" 
-                   tal:attributes="value info/next_session"
-                   />
-            <input type="submit" name="epayment" 
-                   class="context" 
-                   value="Pay School Fee by Scratch Card"
-                   tal:attributes="value string:Pay ${info/next_session_str} School Fee by Scratch Card"
-                   />
-          </form>          
-          <div tal:condition="info/reasons">
-            <font color="red" tal:content="info/reasons"></font>
-            <br /><br />
-          </div>
-        </div>        
-      </span>
-    </span>
-  </metal:main>
-</metal:body>
Index: /WAeUP_SRP/trunk/skins/waeup_ois/personal_view.pt
===================================================================
--- /WAeUP_SRP/trunk/skins/waeup_ois/personal_view.pt	(revision 3727)
+++ /WAeUP_SRP/trunk/skins/waeup_ois/personal_view.pt	(revision 3727)
@@ -0,0 +1,23 @@
+<metal:body use-macro="here/main_template/macros/master">
+    <metal:main fill-slot="main"
+                tal:define="info context/getPersonalInfo;
+                            titles here/getStudentObjectTitles;">
+      <span tal:condition="not: info">
+        <span tal:content="here/illegal_view" />
+      </span>
+      <span tal:condition="info">
+        <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:content="titles/StudentPersonal" /></h3>
+        <br />
+        <span tal:omit-tag=""
+              tal:content="structure python: info['per_doc'].render(
+              layout_mode='view', 
+              layout_id='student_personal_fe')" 
+              />
+      </span>
+    </metal:main>
+</metal:body>
Index: /WAeUP_SRP/trunk/skins/waeup_ois/set_access_data.py
===================================================================
--- /WAeUP_SRP/trunk/skins/waeup_ois/set_access_data.py	(revision 3727)
+++ /WAeUP_SRP/trunk/skins/waeup_ois/set_access_data.py	(revision 3727)
@@ -0,0 +1,84 @@
+##parameters=REQUEST,matric_no=None
+# $Id: set_access_data.py 3367 2008-03-21 13:29:31Z henrik $
+"""
+process the Application Form
+return html renderer + psm
+"""
+import DateTime,logging
+current = DateTime.DateTime()
+pr = context.portal_registration
+logger = logging.getLogger('Skins.set_access_data')
+validate = REQUEST.has_key("cpsdocument_edit_button")
+
+if matric_no is None:
+    logger.info('No matric_no in request')
+    return REQUEST.RESPONSE.redirect("%s" % context.portal_url())
+matric_no = matric_no.upper()
+lt = context.portal_layouts
+#pr = context.portal_registration
+default = {'matric_no':matric_no}
+st_res = context.students_catalog(matric_no = matric_no)
+if st_res:
+    sid = st_res[0].id
+else:
+    st_res = context.returning_import(matric_no = matric_no)
+    if st_res:
+        sid = st_res[0].id
+        logger.info('Student object with matric_no %s does not exist in students_catalog, Id taken from returning_import' % matric_no)
+    else:
+        logger.info('Student object with matric_no %s neither exists in students_catalog nor in returning_import' % matric_no)
+        return
+res,psm,ds = lt.renderLayout(layout_id= 'student_firsttime_login',
+                      schema_id= 'student_returning',
+                      context=context,
+                      mapping=validate and REQUEST,
+                      ob=default,
+                      layout_mode='edit',
+                      formaction = "set_access_data",
+                      button = "Search",
+                      matric_no = matric_no,
+                      commit = False,
+                      )
+if psm == '':
+    return context.set_access_data_form(rendered = res,
+                                 psm = None,
+                                 firstlayout = True,
+                                 lastlayout = True,
+                                 ds = ds,
+                                 name = "%(name)s" % REQUEST.form
+                                 )
+elif psm == 'invalid':
+    psm = "Please correct your input!"
+elif psm == 'valid' and not REQUEST.form.has_key('acknowledge'):
+    psm = "You did not check the ackkowledge box!"
+else:
+    password = REQUEST.get('widget__password')
+    try:
+        context.waeup_tool.makeStudentMember(sid,password=password)
+        psm = ''
+    except KeyError:
+        psm = "You are already registered please log in with your UserId %s" % sid
+        #psm = ""
+        logger.info('%s repeatedly tried to set password' % sid)
+    except:
+        psm = "The system encountered an error. Please try again."
+        logger.info('%s, makeStudentMember error, password = %s' % (sid,password))
+if psm != '':
+    return context.set_access_data_form(rendered = res,
+                                 #psm = "%s, %s" % (psm,ds),
+                                 psm = psm,
+                                 firstlayout = True,
+                                 lastlayout = True,
+                                 ds = ds,
+                                 name = "%(name)s" % REQUEST.form
+                                 )
+email = ds.get('email')
+args = {}
+args['__ac_name'] = sid
+args['__ac_password'] = password
+args['returning'] = '1'
+args['email'] = email
+args['phone_nr'] = ds.get('phone_nr')
+from urllib import urlencode
+url = "%s/logged_in?%s" % (context.absolute_url(),urlencode(args))
+return REQUEST.RESPONSE.redirect(url)
Index: /WAeUP_SRP/trunk/skins/waeup_ois/student_view.pt
===================================================================
--- /WAeUP_SRP/trunk/skins/waeup_ois/student_view.pt	(revision 3726)
+++ /WAeUP_SRP/trunk/skins/waeup_ois/student_view.pt	(revision 3727)
@@ -38,9 +38,10 @@
             <td><span tal:content="python:context.portal_vocabularies.student_levels.get(baseinfo['level'])" /></td>
           </tr>
-          <tr>
+          <tr tal:condition="is_staff">
             <td>Current Study Mode:</td> 
             <td><span tal:content="python:context.portal_vocabularies.entry_modes.get(baseinfo['mode'])" /></td>
           </tr>        
-          <tr tal:define="verdict python:context.portal_vocabularies.verdicts.get(baseinfo['verdict'])">
+          <tr tal:define="verdict python:context.portal_vocabularies.verdicts.get(baseinfo['verdict'])"
+              tal:condition="is_staff">
             <td>Current Verdict:</td> 
             <td><span tal:condition="verdict" tal:content="python:verdict.upper()" /></td>
Index: /WAeUP_SRP/trunk/skins/waeup_ois/study_course_view.pt
===================================================================
--- /WAeUP_SRP/trunk/skins/waeup_ois/study_course_view.pt	(revision 3726)
+++ /WAeUP_SRP/trunk/skins/waeup_ois/study_course_view.pt	(revision 3727)
@@ -7,5 +7,6 @@
     <span tal:condition="info">
     <span tal:define="create_level info/create_level|nothing;
-                      is_so info/is_so;">               
+                      is_so info/is_so;
+                      titles here/getStudentObjectTitles;">               
     <a href=""
        tal:attributes="href string:${here/academicsParent}">
@@ -17,5 +18,5 @@
          <span tal:content="info/student/name" />:
        </span>
-        Study Course
+       <span tal:content="titles/StudentStudyCourse" />
     </h3>
     <br />  
@@ -33,5 +34,5 @@
         <td><span tal:content="python:context.portal_vocabularies.student_levels.get(info['doc'].current_level)" /></td>
       </tr>
-      <tr>
+      <tr tal:condition="is_so">
         <td width="220px">Current Study Mode:</td> 
         <td><span tal:content="python:context.portal_vocabularies.entry_modes.get(info['doc'].current_mode)" /></td>
Index: /WAeUP_SRP/trunk/skins/waeup_student/application_slip.pt
===================================================================
--- /WAeUP_SRP/trunk/skins/waeup_student/application_slip.pt	(revision 3726)
+++ /WAeUP_SRP/trunk/skins/waeup_student/application_slip.pt	(revision 3727)
@@ -1,5 +1,6 @@
 <metal:body use-macro="here/slip_template/macros/master">
     <metal:main fill-slot="main"
-                tal:define="info context/getApplicationInfo">
+                tal:define="info context/getApplicationInfo;
+                            titles here/getStudentObjectTitles;">
       <span tal:condition="not: info">
         <span tal:content="here/illegal_view" />
@@ -7,5 +8,5 @@
       <span tal:condition="info">
             
-        <h3>Application Slip</h3>
+        <h3><span tal:content="titles/StudentApplication" /> Slip</h3>
         <br />
         <span tal:omit-tag=""
Index: /WAeUP_SRP/trunk/skins/waeup_student/application_view.pt
===================================================================
--- /WAeUP_SRP/trunk/skins/waeup_student/application_view.pt	(revision 3726)
+++ /WAeUP_SRP/trunk/skins/waeup_student/application_view.pt	(revision 3727)
@@ -1,5 +1,6 @@
 <metal:body use-macro="here/main_template/macros/master">
    <metal:main fill-slot="main"
-                 tal:define="info context/getApplicationInfo">
+                 tal:define="info context/getApplicationInfo;
+                             titles here/getStudentObjectTitles;">
       <span tal:condition="not: info">
         <span tal:content="here/illegal_view" />
@@ -13,5 +14,5 @@
           Up one level
         </a>
-        <h3>My Application Record</h3>
+        <h3>My <span tal:content="titles/StudentApplication" /></h3>
         <br />
         <span tal:omit-tag=""
Index: /WAeUP_SRP/trunk/skins/waeup_student/clearance_slip.pt
===================================================================
--- /WAeUP_SRP/trunk/skins/waeup_student/clearance_slip.pt	(revision 3726)
+++ /WAeUP_SRP/trunk/skins/waeup_student/clearance_slip.pt	(revision 3727)
@@ -1,5 +1,6 @@
 <metal:body use-macro="here/slip_template/macros/master">
     <metal:main fill-slot="main"
-                 tal:define="info context/getClearanceInfo">
+                 tal:define="info context/getClearanceInfo;
+                             titles here/getStudentObjectTitles;">
       <span tal:condition="not: info">
         <span tal:content="here/illegal_view" />
@@ -9,5 +10,5 @@
       <strong>Late Clearance!</strong></div>
             
-        <h3>Clearance/Eligibility Slip</h3>
+        <h3><span tal:content="titles/StudentClearance" /> Slip</h3>
         <br />
         <span tal:omit-tag=""
Index: /WAeUP_SRP/trunk/skins/waeup_student/clearance_view.pt
===================================================================
--- /WAeUP_SRP/trunk/skins/waeup_student/clearance_view.pt	(revision 3726)
+++ /WAeUP_SRP/trunk/skins/waeup_student/clearance_view.pt	(revision 3727)
@@ -1,5 +1,6 @@
 <metal:body use-macro="here/main_template/macros/master">
   <metal:main fill-slot="main"
-              tal:define="info context/getClearanceInfo">
+              tal:define="info context/getClearanceInfo;
+                          titles here/getStudentObjectTitles;">
     <span tal:condition="not: info">
       <span tal:content="here/illegal_view" />
@@ -12,5 +13,5 @@
            onclick="javascript:window.open('','slip','width=600, height=700, directories=no, toolbar=no, location=no, menubar=yes, scrollbars=yes, status=no, resizable=no, dependent=no')">
           <img tal:attributes="src string:${here/portal_url}/actionicon_print.png" />
-          Clearance/Eligibility Slip
+          <span tal:content="titles/StudentClearance" /> Slip
         </a>
       </div>
@@ -29,5 +30,5 @@
           My
         </span>
-        Clearance/Elegibility Record
+        <span tal:content="titles/StudentClearance" />
       </h3>        
       
Index: /WAeUP_SRP/trunk/skins/waeup_student/lecturer_course_edit_form.pt
===================================================================
--- /WAeUP_SRP/trunk/skins/waeup_student/lecturer_course_edit_form.pt	(revision 3726)
+++ /WAeUP_SRP/trunk/skins/waeup_student/lecturer_course_edit_form.pt	(revision 3727)
@@ -21,4 +21,9 @@
                  value="Save" 
                  id="edit"/>
+          <input type="submit" name="external_close_button"
+                 class="standalone" value="Close"
+                 onclick="window.opener.location.reload();window.close()"
+                 id="external_close_button"
+                 i18n:attributes="value" />                   
         </form>
       </metal:block>
Index: /WAeUP_SRP/trunk/skins/waeup_student/personal_view.pt
===================================================================
--- /WAeUP_SRP/trunk/skins/waeup_student/personal_view.pt	(revision 3726)
+++ /WAeUP_SRP/trunk/skins/waeup_student/personal_view.pt	(revision 3727)
@@ -1,5 +1,6 @@
 <metal:body use-macro="here/main_template/macros/master">
     <metal:main fill-slot="main"
-                tal:define="info context/getPersonalInfo">
+                tal:define="info context/getPersonalInfo;
+                            titles here/getStudentObjectTitles;">
       <span tal:condition="not: info">
         <span tal:content="here/illegal_view" />
@@ -11,5 +12,5 @@
           Up one level
         </a>            
-        <h3>My Personal Record</h3>
+        <h3>My <span tal:content="titles/StudentPersonal" /></h3>
         <br />
         <span tal:omit-tag=""
Index: /WAeUP_SRP/trunk/skins/waeup_student/study_course_view.pt
===================================================================
--- /WAeUP_SRP/trunk/skins/waeup_student/study_course_view.pt	(revision 3726)
+++ /WAeUP_SRP/trunk/skins/waeup_student/study_course_view.pt	(revision 3727)
@@ -7,5 +7,6 @@
     <span tal:condition="info">
     <span tal:define="create_level info/create_level|nothing;
-                      is_so info/is_so;">               
+                      is_so info/is_so;
+                      titles here/getStudentObjectTitles;">               
     <a href=""
        tal:attributes="href string:${here/academicsParent}">
@@ -17,5 +18,5 @@
          <span tal:content="info/student/name" />:
        </span>
-        Study Course
+       My <span tal:content="titles/StudentStudyCourse" />
     </h3>
     <br />  
