Index: /WAeUP_SRP/base/skins/waeup_statistics/getPreviousRetStudentStatistics.py
===================================================================
--- /WAeUP_SRP/base/skins/waeup_statistics/getPreviousRetStudentStatistics.py	(revision 2706)
+++ /WAeUP_SRP/base/skins/waeup_statistics/getPreviousRetStudentStatistics.py	(revision 2706)
@@ -0,0 +1,113 @@
+## Script (Python) "getPreviousRetStudentStatistics"
+##bind container=container
+##bind context=context
+##bind namespace=
+##bind script=script
+##bind subpath=traverse_subpath
+##parameters=
+##title=
+##
+# $Id: getPreviousRetStudentStatistics.py 1277 2007-01-11 21:11:37Z joachim $
+"""
+return Student Statistics
+"""
+
+import logging
+logger = logging.getLogger('Skins.getRetStudentStatistics')
+
+logger.info('%s invoked statistics' % context.portal_membership.getAuthenticatedMember())
+if not context.isStaff():
+    return 'Not allowed'
+
+entry_sessions = ('','-1','94','95','96','97','98','99','00','01','02','03','04','05','06','0','1','2','3','4','5','6')
+
+current_session = context.getSessionId()[0]
+
+ret_states =      ('admitted',
+                   'objection_raised',
+                   'clearance_pin_entered',
+                   'clearance_requested',
+                   'cleared_and_validated',
+                   'returning',
+                   'school_fee_paid',
+                   'courses_registered',
+                   'courses_validated',
+                   )
+full_time =       ('ume_ft','de_ft','ug_ft','pg_ft')
+part_time =       (         'de_pt','ug_pt','pg_pt')
+
+faculties = context.portal_catalog(portal_type="Faculty")
+
+l = []
+
+
+fac_res = {}
+
+dict = {}
+dict['id'] = 'All Faculties'
+dict['title'] = 'All Faculties'
+
+res_ft = context.students_catalog(entry_session = entry_sessions,  mode = full_time, review_state = ret_states)
+dict['total_ft'] = len(res_ft)
+
+res_pt = context.students_catalog(entry_session = entry_sessions,  mode = part_time, review_state = ret_states)
+dict['total_pt'] = len(res_pt)
+
+for state in ret_states:
+    # full_time
+    res_ft = context.students_catalog(entry_session = entry_sessions, review_state = state,  mode = full_time)
+    state_ft = state + '_ft'
+    dict[state_ft] = len(res_ft)
+    statepercent = state+'_ft_percent'
+    if dict['total_ft'] > 0:
+        dict[statepercent] = "%.0f" % round(dict[state_ft]*100.0/dict['total_ft'])
+    else:
+        dict[statepercent] = 0
+
+    # part_time
+    res_pt = context.students_catalog(entry_session = entry_sessions, review_state = state,  mode = part_time)
+    state_pt = state + '_pt'
+    dict[state_pt] = len(res_pt)
+    statepercent = state+'_pt_percent'
+    if dict['total_pt'] > 0:
+        dict[statepercent] = "%.0f" % round(dict[state_pt]*100.0/dict['total_pt'])
+    else:
+        dict[statepercent] = 0
+
+l.append(dict)
+
+
+for f in faculties:
+    dict = {}
+    dict['id'] = f.getId
+    dict['title'] = f.Title
+    res_ft = context.students_catalog(entry_session = entry_sessions, faculty = f.getId, mode = full_time)
+    dict['total_ft'] = len(res_ft)
+    res_pt = context.students_catalog(entry_session = entry_sessions, faculty = f.getId, mode = part_time)
+    dict['total_pt'] = len(res_pt)
+    for state in ret_states:
+        # full_time
+        res_ft = context.students_catalog(entry_session = entry_sessions, faculty = f.getId, review_state = state, mode = full_time)
+        state_ft = state + '_ft'
+        dict[state_ft] = len(res_ft)
+        statepercent = state+'_ft_percent'
+        if dict['total_ft'] > 0:
+            dict[statepercent] = "%.0f" % round(dict[state_ft]*100.0/dict['total_ft'])
+        else:
+            dict[statepercent] = 0
+
+        # part_time
+        res_pt = context.students_catalog(entry_session = entry_sessions, faculty = f.getId, review_state = state, mode = part_time)
+        state_pt = state + '_pt'
+        dict[state_pt] = len(res_pt)
+        statepercent = state+'_pt_percent'
+        if dict['total_pt'] > 0:
+            dict[statepercent] = "%.0f" % round(dict[state_pt]*100.0/dict['total_pt'])
+        else:
+            dict[statepercent] = 0
+
+    l.append(dict)
+
+return l
+
+
Index: /WAeUP_SRP/base/skins/waeup_statistics/statistics_previous_ret_view.pt
===================================================================
--- /WAeUP_SRP/base/skins/waeup_statistics/statistics_previous_ret_view.pt	(revision 2706)
+++ /WAeUP_SRP/base/skins/waeup_statistics/statistics_previous_ret_view.pt	(revision 2706)
@@ -0,0 +1,171 @@
+<metal:body use-macro="here/main_template/macros/master">
+  <metal:main fill-slot="main">
+  <metal:block tal:define="faculties context/getRetStudentStatistics;
+                        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>        
+      <nobr><a href="statistics_new_view">New Student Statistics</a>
+      &nbsp;&nbsp;&nbsp;&nbsp;</nobr>
+      </strong>     
+
+      <h3>Returning Student Statistics  <span tal:content="session_str" /></h3>
+      <br />      
+      <span tal:condition="not:isAnon">
+
+      <h3>Full-Time Students (UME, DE, UG, PG)</h3>
+      <br />            
+      
+        <table>
+          <tr class="odd ajaxtd">
+            <th >Faculty</th>
+            <th align="right">Total</th>
+            <th align="right">ADM</th>
+            <th align="right">OR</th>
+            <th align="right">CPE</th>
+            <th align="right">CR</th>
+            <th align="right">VC</th>
+            <th align="right">RET</th>
+            <th align="right">SFP</th>
+            <th align="right">CLR</th>
+            <th align="right">CLV</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="80px" align="right">
+                <span tal:content="d/total_ft" />
+              </td>
+              <td width="80px" align="right"> 
+                <span tal:content="d/admitted_ft" />
+                (<span tal:content="d/admitted_ft_percent" />%)
+              </td>    
+              <td width="80px" align="right"> 
+                <span tal:content="d/objection_raised_ft" />
+                (<span tal:content="d/objection_raised_ft_percent" />%)
+              </td>    
+              <td width="80px" align="right"> 
+                <span tal:content="d/clearance_pin_entered_ft" />
+                (<span tal:content="d/clearance_pin_entered_ft_percent" />%)
+              </td>     
+              <td width="80px" align="right"> 
+                <span tal:content="d/clearance_requested_ft" />
+                (<span tal:content="d/clearance_requested_ft_percent" />%)
+              </td>          
+              <td width="80px" align="right"> 
+                <span tal:content="d/cleared_and_validated_ft" />
+                (<span tal:content="d/cleared_and_validated_ft_percent" />%)
+              </td>                                                       
+              <td width="80px" align="right"> 
+                <span tal:content="d/returning_ft" />
+                (<span tal:content="d/returning_ft_percent" />%)
+              </td>              
+              <td width="80px" align="right"> 
+                <span tal:content="d/school_fee_paid_ft" />
+                (<span tal:content="d/school_fee_paid_ft_percent" />%)
+              </td>
+              <td width="80px" align="right"> 
+                <span tal:content="d/courses_registered_ft" />
+                (<span tal:content="d/courses_registered_ft_percent" />%)
+              </td>
+              <td width="80px" align="right"> 
+                <span tal:content="d/courses_validated_ft" />
+                (<span tal:content="d/courses_validated_ft_percent" />%)
+              </td>                                          
+
+          </tr>
+        </table>
+
+      <h3>Part-Time Students (DE, UG, PG)</h3>
+      <br />           
+
+        <table>
+          <tr class="odd ajaxtd">
+            <th >Faculty</th>
+            <th align="right">Total</th>
+            <th align="right">ADM</th>
+            <th align="right">OR</th>
+            <th align="right">CPE</th>
+            <th align="right">CR</th>
+            <th align="right">VC</th>
+            <th align="right">RET</th>
+            <th align="right">SFP</th>
+            <th align="right">CLR</th>
+            <th align="right">CLV</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="80px" align="right">
+                <span tal:content="d/total_pt" />
+              </td>
+              <td width="80px" align="right"> 
+                <span tal:content="d/admitted_pt" />
+                (<span tal:content="d/admitted_pt_percent" />%)
+              </td>    
+              <td width="80px" align="right"> 
+                <span tal:content="d/objection_raised_pt" />
+                (<span tal:content="d/objection_raised_pt_percent" />%)
+              </td>    
+              <td width="80px" align="right"> 
+                <span tal:content="d/clearance_pin_entered_pt" />
+                (<span tal:content="d/clearance_pin_entered_pt_percent" />%)
+              </td>     
+              <td width="80px" align="right"> 
+                <span tal:content="d/clearance_requested_pt" />
+                (<span tal:content="d/clearance_requested_pt_percent" />%)
+              </td>          
+              <td width="80px" align="right"> 
+                <span tal:content="d/cleared_and_validated_pt" />
+                (<span tal:content="d/cleared_and_validated_pt_percent" />%)
+              </td>                       
+              <td width="80px" align="right"> 
+                <span tal:content="d/returning_pt" />
+                (<span tal:content="d/returning_pt_percent" />%)
+              </td>              
+              <td width="80px" align="right"> 
+                <span tal:content="d/school_fee_paid_pt" />
+                (<span tal:content="d/school_fee_paid_pt_percent" />%)
+              </td>
+              <td width="80px" align="right"> 
+                <span tal:content="d/courses_registered_pt" />
+                (<span tal:content="d/courses_registered_pt_percent" />%)
+              </td>
+              <td width="80px" align="right"> 
+                <span tal:content="d/courses_validated_pt" />
+                (<span tal:content="d/courses_validated_pt_percent" />%)
+              </td>                                          
+
+          </tr>
+        </table>
+
+        
+        <br />
+        <table>
+        <tr><td>Total: </td> <td>Those who have logged in</td></tr>
+        <tr><td>ADM: </td> <td>Admitted</td></tr>
+        <tr><td>OR: </td> <td>Objection raised</td></tr>
+        <tr><td>CPE: </td> <td>Clearance PIN entered</td></tr>
+        <tr><td>CR: </td> <td>Clearance requested</td></tr>
+        <tr><td>VC: </td> <td>Validated an cleared</td></tr>
+        <tr><td>RET: </td> <td>Returning</td></tr>
+        <tr><td>SFP: </td> <td>School fee paid</td></tr>
+        <tr><td>CLR: </td> <td>Course list registered</td></tr>
+        <tr><td>CLV: </td> <td>Course list validated</td></tr>                
+        </table>
+      </span>
+      </span>
+  </metal:block>      
+  </metal:main>
+</metal:body>
+      
