Index: WAeUP_SRP/base/skins/waeup_student/apply_admission.py
===================================================================
--- WAeUP_SRP/base/skins/waeup_student/apply_admission.py	(revision 2307)
+++ WAeUP_SRP/base/skins/waeup_student/apply_admission.py	(revision 2310)
@@ -1,53 +1,260 @@
+## Script (Python) "apply_admission"
+##bind container=container
+##bind context=context
+##bind namespace=
+##bind script=script
+##bind subpath=traverse_subpath
 ##parameters=REQUEST
+##title=
+##
 # $Id$
 """
 process the Application Form
-return html renderer + psm
 """
+try:
+    from Products.zdb import set_trace
+except:
+    def set_trace():
+        pass
+
 import DateTime
+import logging
+logger = logging.getLogger('Skins.apply_admission')
+
+mtool = context.portal_membership
+member = mtool.getAuthenticatedMember()
+
 current = DateTime.DateTime()
 pr = context.portal_registration
-
-
-type_name = 'StudentApplication'
-ti = context.portal_types[type_name]
-REQUEST.set('type_name',type_name)
-
-validate = REQUEST.has_key("cpsdocument_create_button")
-
+request = REQUEST
+
+#type_name = 'StudentApplication'
+#ti = context.portal_types[type_name]
+#REQUEST.set('type_name',type_name)
+create = "create" in request.keys()
+apply_admission = "apply" in request.keys()
+edit = "edit" in request.keys()
+slip = "slip" in request.keys()
+manage = "manage" in request.keys()
+submitted = False
+mode = request.get('mode','')
+if not mode:
+    if apply_admission or edit or manage:
+        mode = "edit"
+    else:
+        mode = "create"
+validate = create or edit or apply_admission
+
+if manage:
+    validate = False
+#layout = "application_pume"
+#application_type = ""
+without_reg_no = False
+if traverse_subpath and traverse_subpath[0] == "prence":
+    layout = "application_prence"
+    application_type = "prence"
+    without_reg_no = True
+elif traverse_subpath and traverse_subpath[0] == "pume":
+    layout = "application_pume"
+    application_type = "pume"
+elif traverse_subpath and traverse_subpath[0] == "pce":
+    layout = "application_pce"
+    application_type = "pce"
+elif traverse_subpath and traverse_subpath[0] == "pde":
+    layout = "application_pde"
+    application_type = "pce"
+elif traverse_subpath and traverse_subpath[0] == "cest":
+    layout = "application_cest"
+    application_type = "pce"    
+else:
+    return request.RESPONSE.redirect("%s/srp_anonymous_view" % context.portal_url())
+    
+        
 lt = context.portal_layouts
-pr = context.portal_registration
-
-res,psm,ds = lt.renderLayout(layout_id= 'student_application_fe',
-                      schema_id= 'student_application',
-                      context=context,
-                      mapping=validate and REQUEST,
-                      ob={},
-                      layout_mode='create',
-                      formaction = "apply_admission",
-                      button = "Open JAMB Record",
-                      )
+reg_no = request.get('widget__reg_no','').upper()
+if not reg_no:
+    reg_no = request.form.get('reg_no','').upper()
+pin = request.form.get('pin','')
+object = {}
+if reg_no:
+    brains = context.applicants_catalog(reg_no = reg_no)
+    if len(brains) == 1:
+        for field in context.applicants_catalog.schema():
+            object[field] = getattr(brains[0],field,None)
+        if not object['passport']:
+                object['passport'] = ''
+        if object['status'] and 'submitted' in object['status']:
+            submitted = True
+
+        if not (create or slip) and (pin != object['pin'] and not context.isSectionOfficer()):
+            logger.info('%s/%s entered wrong pin %s' % (member,reg_no,pin))
+            return request.RESPONSE.redirect("%s/srp_anonymous_view" % context.portal_url())
+
+
+        # For the next application session it should be reverted to
+        # (see comment 09/06/07 16:40:52 in ticket #328):
+
+        #if not create and (pin != object['pin'] and not context.isSectionOfficer()):
+            #logger.info('%s/%s entered wrong pin %s' % (member,reg_no,pin))
+            #return request.RESPONSE.redirect("%s/srp_anonymous_view" % context.portal_url())
+
+if slip:
+    mode = "view_slip"
+    logger.info('%s/%s views application slip' % (member,reg_no))
+
+res,psm,ds = lt.renderLayout(layout_id= layout,
+                             schema_id= 'application',
+                             layout_mode = mode,
+                             context=context,
+                             mapping=validate and REQUEST,
+                             ob=object,
+                             commit = False,
+                            )
+
+if slip:
+    return context.apply_admission_slip(rendered = res,
+                                   psm = "",
+                                   #psm = "%s, %s" % (psm,ds),
+                                   mode = mode,
+                                   ds = ds,
+                                   application_type = application_type,
+                                  )
+
 if psm == 'invalid':
-    return context.application_pin_form(rendered = res,
-                                 psm = "Please correct your input!",
-                                 #psm = "%s, %s" % (psm,ds),
-                                 firstlayout = True,
-                                 lastlayout = True,
-                                 ds = ds,
-                                 )
-elif psm == '':
-    return context.application_pin_form(rendered = res,
-                                 psm = None,
-                                 firstlayout = True,
-                                 lastlayout = True,
-                                 ds = ds,
-                                 )
-elif psm == 'valid':
-    s_id = ds.get('s_id')
-    pin = str(ds.get('app_ac_pin'))
-    return context.REQUEST.RESPONSE.redirect("%s/logged_in?__ac_name=%s&__ac_password=%s&pin=%s"
-          % (context.absolute_url(),s_id,pin.split('-')[2],pin))
-
-return
-
-
+    return context.apply_admission_form(rendered = res,
+                                   psm = "Please correct your input!",
+                                   #psm = "%s, %s" % (psm,ds),
+                                   mode = mode,
+                                   ds = ds,
+                                   application_type = application_type,
+                                  )
+elif psm == '' and not manage:
+    return context.apply_admission_form(rendered = res,
+                                   psm = psm,
+                                   ds = ds,
+                                   mode = mode,
+                                   application_type = application_type,
+                                  )
+elif psm == 'valid' or (psm == '' and manage):
+    pass
+if without_reg_no:
+    reg_no = ds.get('reg_no')
+data = {}
+dm = ds.getDataModel()
+for field in context.applicants_catalog.schema():
+    if dm.has_key("%s" % field):
+        data[field] = dm.get(field)
+data['reg_no'] = reg_no
+
+if apply_admission:
+    if submitted:
+        mode = "view"
+        psm = "The form has already been submitted and you are not allowed to resubmit the data!"
+        logger.info('%s/%s tried to resubmit application record' % (member,reg_no))
+        res,psm_dummy,ds_dummy = lt.renderLayout(layout_id= layout,
+                                schema_id= 'application',
+                                layout_mode = mode,
+                                context=context,
+                                mapping={},
+                                ob=object,
+                                commit = False,
+                                )
+    elif not request.has_key('confirm'):
+        mode = "edit"
+        psm = "Please confirm Passport Photograph!"
+        logger.info('%s/%s tried to submit without ticking confirmation check box' % (member,reg_no))
+    else:
+        mode = "view"
+        psm = "You successfully applied for admission!"
+        if object['status'] == 'edited':
+            data['status'] = "submitted"
+            data['application_date'] = current
+            logger.info('%s/%s modified and submitted application record' % (member,reg_no))
+        elif object['status'] == 'reset':
+            data['status'] = 'resubmitted on %s' % DateTime.DateTime().strftime('%A, %B %d, %Y')
+            logger.info('%s/%s modified and resubmitted application record' % (member,reg_no))
+        object['status'] = data['status']
+        context.applicants_catalog.modifyRecord(**data)
+
+        res,psm_dummy,ds = lt.renderLayout(layout_id= layout,
+                                schema_id= 'application',
+                                layout_mode = mode,
+                                context=context,
+                                mapping=validate and REQUEST,
+                                ob=object,
+                                commit = False,
+                                )
+elif create:
+    if submitted:
+        mode = "view"
+        logger.info('%s/%s views application record' % (member,reg_no))
+    else:
+        mode = "edit"
+        logger.info('%s/%s edits application record' % (member,reg_no))
+    psm = ""
+    #set_trace()
+    if without_reg_no:
+        object['reg_no'] = reg_no
+    object['pin'] = str(ds.get('pin'))
+    res,psm,ds_dummy = lt.renderLayout(layout_id= layout,
+                                schema_id= 'application',
+                                layout_mode = mode,
+                                context=context,
+                                mapping={},
+                                ob=object,
+                                commit = False,
+                                )
+elif edit:
+    if submitted:
+        mode = "view"
+        psm = "The form has already been submitted and you are not allowed to modify the data!"
+        logger.info('%s/%s tried to edit submitted application record' % (member,reg_no))
+        res,psm_dummy,ds_dummy = lt.renderLayout(layout_id= layout,
+                                schema_id= 'application',
+                                layout_mode = mode,
+                                context=context,
+                                mapping={},
+                                ob=object,
+                                commit = False,
+                                )
+    else:
+        mode = "edit"
+        psm = "Content changed!"
+        data['status'] = "edited"
+        context.applicants_catalog.modifyRecord(**data)
+        logger.info('%s/%s modified application record' % (member,reg_no))
+
+elif manage:
+    if submitted:
+        mode = "view"
+        psm = "You are now assuming the applicant's role!"
+        logger.info('%s/%s entered application record' % (member,reg_no))
+        res,psm_dummy,ds_dummy = lt.renderLayout(layout_id= layout,
+                                schema_id= 'application',
+                                layout_mode = mode,
+                                context=context,
+                                mapping={},
+                                ob=object,
+                                commit = False,
+                                )
+    else:
+        mode = "edit"
+        psm = "You are now assuming the applicant's role!"
+        logger.info('%s/%s entered application record' % (member,reg_no))
+
+
+try:
+    passport_uploaded = bool(data['passport'])
+except:
+    passport_uploaded = False
+
+return context.apply_admission_form(rendered = res,
+                               psm = psm,
+                               #psm = "%s, %s" % (psm,ds),
+                               mode = mode,
+                               show_submit = passport_uploaded,
+                               ds = ds,
+                               application_type = application_type,
+                              )
+
+
Index: WAeUP_SRP/base/skins/waeup_student/apply_admission.py_deprecated
===================================================================
--- WAeUP_SRP/base/skins/waeup_student/apply_admission.py_deprecated	(revision 2310)
+++ WAeUP_SRP/base/skins/waeup_student/apply_admission.py_deprecated	(revision 2310)
@@ -0,0 +1,53 @@
+##parameters=REQUEST
+# $Id: apply_admission.py 892 2006-11-18 21:14:18Z henrik $
+"""
+process the Application Form
+return html renderer + psm
+"""
+import DateTime
+current = DateTime.DateTime()
+pr = context.portal_registration
+
+
+type_name = 'StudentApplication'
+ti = context.portal_types[type_name]
+REQUEST.set('type_name',type_name)
+
+validate = REQUEST.has_key("cpsdocument_create_button")
+
+lt = context.portal_layouts
+pr = context.portal_registration
+
+res,psm,ds = lt.renderLayout(layout_id= 'student_application_fe',
+                      schema_id= 'student_application',
+                      context=context,
+                      mapping=validate and REQUEST,
+                      ob={},
+                      layout_mode='create',
+                      formaction = "apply_admission",
+                      button = "Open JAMB Record",
+                      )
+if psm == 'invalid':
+    return context.application_pin_form(rendered = res,
+                                 psm = "Please correct your input!",
+                                 #psm = "%s, %s" % (psm,ds),
+                                 firstlayout = True,
+                                 lastlayout = True,
+                                 ds = ds,
+                                 )
+elif psm == '':
+    return context.application_pin_form(rendered = res,
+                                 psm = None,
+                                 firstlayout = True,
+                                 lastlayout = True,
+                                 ds = ds,
+                                 )
+elif psm == 'valid':
+    s_id = ds.get('s_id')
+    pin = str(ds.get('app_ac_pin'))
+    return context.REQUEST.RESPONSE.redirect("%s/logged_in?__ac_name=%s&__ac_password=%s&pin=%s"
+          % (context.absolute_url(),s_id,pin.split('-')[2],pin))
+
+return
+
+
Index: WAeUP_SRP/base/skins/waeup_student/apply_admission_form.pt
===================================================================
--- WAeUP_SRP/base/skins/waeup_student/apply_admission_form.pt	(revision 2310)
+++ WAeUP_SRP/base/skins/waeup_student/apply_admission_form.pt	(revision 2310)
@@ -0,0 +1,84 @@
+<tal:block define="rendered_main options/rendered;
+           portal_status_message options/psm;
+           ds options/ds;
+           application_type options/application_type;
+           mode options/mode;
+           expired python:True;
+           show_submit options/show_submit|nothing;
+           "
+           >
+  <metal:block define-macro="edit_form">
+    <metal:block use-macro="here/main_template/macros/master">
+      <metal:block fill-slot="main">
+        <span tal:condition="python:not mode=='view' and not expired">
+          <h3 tal:condition="python:application_type=='pume'">Apply for Post UME Screening Test (2007/2008)! </h3>
+          <h3 tal:condition="python:application_type=='pde'">Apply for Post DE Screening Test(2007/2008)! </h3>
+          <h3 tal:condition="python:application_type=='prence'">Apply for Pre-NCE Programme (2007/2008)! </h3>
+          <h3 tal:condition="python:application_type=='pce'">Apply for NCE Screening (2007/2008)! </h3>
+          <h3 tal:condition="python:application_type=='cest'">Apply for Common Entrance Screening Test (2007/2008)! </h3>
+        </span>
+        <span tal:condition="expired">
+          <h3>Show Application Record! </h3>
+        </span>
+        
+        <h3 tal:condition="python:mode=='view'">Your Application Record</h3>
+        <br />
+        <form action="" id="editForm" method="post" 
+              enctype="multipart/form-data" class="workflow"
+              tal:attributes="action string:${context/absolute_url}/apply_admission/${application_type}"
+              >
+          <input type="hidden" name="reg_no"
+                 tal:attributes="value ds/reg_no|nothing"
+                 tal:condition="ds/reg_no|nothing"/>
+          <input type="hidden" name="pin"
+                 tal:attributes="value ds/pin|nothing"
+                 tal:condition="ds/pin|nothing"/>
+
+          <div tal:replace="structure rendered_main" />
+          
+          <metal:block tal:condition="python: show_submit and mode == 'edit'">
+            <br/>
+            <input type="checkbox" class="standalone" 
+                   name="confirm"
+                   value="" 
+                   />
+              I confirm that the Passport Photograph uploaded on this form is a true picture of me.
+            <br/><br/>
+          </metal:block>
+
+          
+          <input type="submit" class="standalone" 
+                 name="edit"
+                 value="Save" 
+                 tal:condition="python: mode == 'edit'" />
+          <input type="submit" class="standalone" name="apply"
+                 value="Final Submit"
+                 tal:condition="python: show_submit and mode == 'edit'"
+                 />
+          <input type="submit" 
+                 class="standalone" 
+                 name="create"
+                 value="Show Application Record"
+                 tal:condition="python: mode == 'create'" 
+                 />
+          </form>
+          <metal:block tal:condition="python: mode in ('create','edit') and not expired">
+            <p>Instructions :</p>
+            <ul>
+              <li>Enter your <span tal:condition="python:not application_type=='prence'">JAMB Registration Number and the</span> Application PIN.</li> 
+              <li>Fill the form and upload your Passport Photograph with red background in jpg format.</li> 
+              <li>Save and preview picture.
+              <li>Press the 'Final Submit' button.</li>
+            </ul>
+            <br />
+            <font color="red">Application submission deadline is at Midnight on Thursday, 6th September 2007.  
+            No application will be treated after the deadline. </font>
+          </metal:block>
+          <metal:block tal:condition="expired">
+            <br /><font color="red">The application period has expired!</font>   
+          </metal:block>
+          
+      </metal:block>
+    </metal:block>
+  </metal:block>
+</tal:block>
Index: WAeUP_SRP/base/skins/waeup_student/apply_admission_manage.py
===================================================================
--- WAeUP_SRP/base/skins/waeup_student/apply_admission_manage.py	(revision 2310)
+++ WAeUP_SRP/base/skins/waeup_student/apply_admission_manage.py	(revision 2310)
@@ -0,0 +1,135 @@
+## Script (Python) "apply_admission_manage"
+##bind container=container
+##bind context=context
+##bind namespace=
+##bind script=script
+##bind subpath=traverse_subpath
+##parameters=REQUEST
+##title=
+##
+# $Id: apply_admission_manage.py 2225 2007-09-12 21:04:51Z henrik $
+"""
+search for  Pume Applications
+"""
+
+try:
+    from Products.zdb import set_trace
+except:
+    def set_trace():
+        pass
+
+import DateTime
+import logging
+logger = logging.getLogger('Skins.apply_admission_manage')
+mtool = context.portal_membership
+member = mtool.getAuthenticatedMember()
+
+current = DateTime.DateTime()
+pr = context.portal_registration
+request = REQUEST
+
+
+if not context.isSectionOfficer():
+    return request.RESPONSE.redirect("%s/srp_anonymous_view" % context.absolute_url())
+
+#type_name = 'StudentApplication'
+#ti = context.portal_types[type_name]
+#REQUEST.set('type_name',type_name)
+
+search = "search" in request.keys()
+reset = "reset" in request.keys()
+edit = "edit" in request.keys()
+lt = context.portal_layouts
+
+reg_no = request.get('reg_no','').upper()
+new_reg_no = request.get('new_reg_no','').upper()
+
+if reset or edit:
+    reg_no = reg_no
+elif new_reg_no:
+    reg_no = new_reg_no
+
+res = ''
+psm = ''
+object = {}
+ds = []
+found = False
+
+validate = not search
+
+if reg_no:
+    brains = context.applicants_catalog(reg_no = reg_no)
+
+    if len(brains) == 1:
+        found = True
+        for field in context.applicants_catalog.schema():
+            object[field] = getattr(brains[0],field,None)
+        res,psm,ds = lt.renderLayout(layout_id= 'application_manage',
+                                     schema_id= 'application',
+                                     layout_mode = "edit",
+                                     context=context,
+                                     mapping=validate and REQUEST,
+                                     ob=object,
+                                     commit = False,
+                                    )
+
+
+if psm == 'invalid':
+    return context.apply_admission_manage_form(rendered = res,
+                                   psm = "Please correct your input!",
+                                   #psm = "%s, %s" % (psm,ds),
+                                   ds = ds,
+                                  )
+elif psm == '':
+    if search and not found:
+        psm = 'Registration Number not found!'
+    return context.apply_admission_manage_form(rendered = res,
+                                   psm = psm,
+                                   reg_no = reg_no,
+                                   ds = ds,
+                                  )
+elif psm == 'valid':
+    psm = ''
+    pass
+
+data = {}
+dm = ds.getDataModel()
+for field in context.applicants_catalog.schema():
+    if dm.has_key("%s" % field):
+        data[field] = dm.get(field)
+
+
+if reset and reg_no:
+    #data['reg_no'] = reg_no
+    psm = "You successfully reset the record! The applicant will be able to edit and resubmit the data."
+    data['status'] = "reset"
+    context.applicants_catalog.modifyRecord(**data)
+    logger.info('%s reset application record of %s' % (member,reg_no))
+
+if edit and reg_no:
+    #data['reg_no'] = reg_no
+    psm = "Content changed!"
+    context.applicants_catalog.modifyRecord(**data)
+    logger.info('%s edited application record of %s' % (member,reg_no))
+
+
+brains = context.applicants_catalog(reg_no = reg_no)
+for field in context.applicants_catalog.schema():
+    object[field] = getattr(brains[0],field,None)
+
+res,psm_dummy,ds = lt.renderLayout(layout_id= 'application_manage',
+                             schema_id= 'application',
+                             layout_mode = "edit",
+                             context=context,
+                             ob=object,
+                             commit = False,
+                            )
+
+
+return context.apply_admission_manage_form(rendered = res,
+                                      psm = psm,
+                                      reg_no = reg_no,
+                                      ds = ds
+                                     )
+
+
Index: WAeUP_SRP/base/skins/waeup_student/apply_admission_manage_form.pt
===================================================================
--- WAeUP_SRP/base/skins/waeup_student/apply_admission_manage_form.pt	(revision 2310)
+++ WAeUP_SRP/base/skins/waeup_student/apply_admission_manage_form.pt	(revision 2310)
@@ -0,0 +1,102 @@
+<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>Number of records viewed:</td> 
+              <td><span tal:replace="info_applicants/pin_entered" /></td>  
+            </tr>
+            <tr> 
+              <td>Number of records submitted:</td> 
+              <td><span tal:replace="info_applicants/submitted" /></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: '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/>
+        
+        <form action="" id="editForm" method="post" 
+            enctype="multipart/form-data" class="workflow"
+            tal:attributes="action string:${context/absolute_url}/apply_admission"
+            tal:condition="rendered_main"
+            >
+        <input type="hidden" name="reg_no"
+               tal:attributes="value ds/reg_no|nothing"
+               tal:condition="ds/reg_no|nothing"/>
+        <input type="submit" 
+               class="standalone" 
+               name="manage"
+               value="Assume Applicant's Role"
+               />             
+        </form>          
+        
+      </metal:block>
+    </metal:block>
+  </metal:block>
+</tal:block>
Index: WAeUP_SRP/base/skins/waeup_student/apply_admission_slip.pt
===================================================================
--- WAeUP_SRP/base/skins/waeup_student/apply_admission_slip.pt	(revision 2310)
+++ WAeUP_SRP/base/skins/waeup_student/apply_admission_slip.pt	(revision 2310)
@@ -0,0 +1,23 @@
+<tal:block define="rendered_main options/rendered;
+           portal_status_message options/psm;
+           ds options/ds;
+           jamb options/jamb/getContent|nothing;
+           mode options/mode;
+           name python:ds['lastname'];
+           "
+           >
+  <metal:block define-macro="edit_form">
+    <metal:block use-macro="here/slip_template/macros/master">
+      <metal:block fill-slot="main">
+        <h3>Post UME Screening (2007/2008) Aknowledgement Slip</h3>
+        <br />
+        <div tal:replace="structure rendered_main" />
+        
+        The applicant has confirmed that the picture shown on this slip is a true picture of him/her. 
+        <br/><br/>
+        Please check for your screening venue at any of the UNIBEN entry gates or
+        at the Sports Complex and come to the screening venue with a copy of this slip.  
+      </metal:block>
+    </metal:block>
+  </metal:block>
+</tal:block>
Index: WAeUP_SRP/base/skins/waeup_student/apply_pume.py
===================================================================
--- WAeUP_SRP/base/skins/waeup_student/apply_pume.py	(revision 2307)
+++ 	(revision )
@@ -1,244 +1,0 @@
-## Script (Python) "apply_pume"
-##bind container=container
-##bind context=context
-##bind namespace=
-##bind script=script
-##bind subpath=traverse_subpath
-##parameters=REQUEST
-##title=
-##
-# $Id$
-"""
-process the Pume Application Form
-"""
-try:
-    from Products.zdb import set_trace
-except:
-    def set_trace():
-        pass
-
-import DateTime
-import logging
-logger = logging.getLogger('Skins.apply_pume')
-
-mtool = context.portal_membership
-member = mtool.getAuthenticatedMember()
-
-current = DateTime.DateTime()
-pr = context.portal_registration
-request = REQUEST
-
-#type_name = 'StudentApplication'
-#ti = context.portal_types[type_name]
-#REQUEST.set('type_name',type_name)
-create = "create" in request.keys()
-apply_pume = "apply" in request.keys()
-edit = "edit" in request.keys()
-slip = "slip" in request.keys()
-manage = "manage" in request.keys()
-submitted = False
-mode = request.get('mode','')
-if not mode:
-    if apply_pume or edit or manage:
-        mode = "edit"
-    else:
-        mode = "create"
-validate = create or edit or apply_pume
-
-if manage:
-    validate = False
-layout = "application"
-prence = ""
-without_reg_no = False
-if traverse_subpath and traverse_subpath[0] == "prence":
-    layout = "application_prence"
-    prence = "prence"
-    without_reg_no = True
-lt = context.portal_layouts
-reg_no = request.get('widget__reg_no','').upper()
-if not reg_no:
-    reg_no = request.form.get('reg_no','').upper()
-pin = request.form.get('pin','')
-object = {}
-if reg_no:
-    brains = context.applicants_catalog(reg_no = reg_no)
-    if len(brains) == 1:
-        for field in context.applicants_catalog.schema():
-            object[field] = getattr(brains[0],field,None)
-        if not object['passport']:
-                object['passport'] = ''
-        if object['status'] and 'submitted' in object['status']:
-            submitted = True
-        
-        if not (create or slip) and (pin != object['pin'] and not context.isSectionOfficer()):
-            logger.info('%s/%s entered wrong pin %s' % (member,reg_no,pin))
-            return request.RESPONSE.redirect("%s/srp_anonymous_view" % context.portal_url())
-
-        
-        # For the next PUME application session it should be reverted to
-        # (see comment 09/06/07 16:40:52 in ticket #328):
-
-        #if not create and (pin != object['pin'] and not context.isSectionOfficer()):
-            #logger.info('%s/%s entered wrong pin %s' % (member,reg_no,pin))
-            #return request.RESPONSE.redirect("%s/srp_anonymous_view" % context.portal_url())        
-
-if slip:
-    mode = "view_slip"
-    logger.info('%s/%s views application slip' % (member,reg_no))
-
-res,psm,ds = lt.renderLayout(layout_id= layout,
-                             schema_id= 'application',
-                             layout_mode = mode,
-                             context=context,
-                             mapping=validate and REQUEST,
-                             ob=object,
-                             commit = False,
-                            )
-
-if slip:
-    return context.apply_pume_slip(rendered = res,
-                                   psm = "",
-                                   #psm = "%s, %s" % (psm,ds),
-                                   mode = mode,
-                                   ds = ds,
-                                   prence = prence,
-                                  )
-
-if psm == 'invalid':
-    return context.apply_pume_form(rendered = res,
-                                   psm = "Please correct your input!",
-                                   #psm = "%s, %s" % (psm,ds),
-                                   mode = mode,
-                                   ds = ds,
-                                   prence = prence,
-                                  )
-elif psm == '' and not manage:
-    return context.apply_pume_form(rendered = res,
-                                   psm = psm,
-                                   ds = ds,
-                                   mode = mode,
-                                   prence = prence,
-                                  )
-elif psm == 'valid' or (psm == '' and manage):
-    pass
-if without_reg_no:
-    reg_no = ds.get('reg_no')
-data = {}
-dm = ds.getDataModel()
-for field in context.applicants_catalog.schema():
-    if dm.has_key("%s" % field):
-        data[field] = dm.get(field)
-data['reg_no'] = reg_no
-
-if apply_pume:
-    if submitted:
-        mode = "view"
-        psm = "The form has already been submitted and you are not allowed to resubmit the data!"
-        logger.info('%s/%s tried to resubmit application record' % (member,reg_no))
-        res,psm_dummy,ds_dummy = lt.renderLayout(layout_id= layout,
-                                schema_id= 'application',
-                                layout_mode = mode,
-                                context=context,
-                                mapping={},
-                                ob=object,
-                                commit = False,
-                                )
-    elif not request.has_key('confirm'):
-        mode = "edit"
-        psm = "Please confirm Passport Photograph!"
-        logger.info('%s/%s tried to submit without ticking confirmation check box' % (member,reg_no))
-    else:
-        mode = "view"
-        psm = "You successfully applied for PUME!"
-        if object['status'] == 'edited':
-            data['status'] = "submitted"
-            data['application_date'] = current
-            logger.info('%s/%s modified and submitted application record' % (member,reg_no))
-        elif object['status'] == 'reset':
-            data['status'] = 'resubmitted on %s' % DateTime.DateTime().strftime('%A, %B %d, %Y')
-            logger.info('%s/%s modified and resubmitted application record' % (member,reg_no))
-        object['status'] = data['status']
-        context.applicants_catalog.modifyRecord(**data)
-
-        res,psm_dummy,ds = lt.renderLayout(layout_id= layout,
-                                schema_id= 'application',
-                                layout_mode = mode,
-                                context=context,
-                                mapping=validate and REQUEST,
-                                ob=object,
-                                commit = False,
-                                )
-elif create:
-    if submitted:
-        mode = "view"
-        logger.info('%s/%s views application record' % (member,reg_no))
-    else:
-        mode = "edit"
-        logger.info('%s/%s edits application record' % (member,reg_no))
-    psm = ""
-    #set_trace()
-    if without_reg_no:
-        object['reg_no'] = reg_no
-    object['pin'] = str(ds.get('pin'))
-    res,psm,ds_dummy = lt.renderLayout(layout_id= layout,
-                                schema_id= 'application',
-                                layout_mode = mode,
-                                context=context,
-                                mapping={},
-                                ob=object,
-                                commit = False,
-                                )
-elif edit:
-    if submitted:
-        mode = "view"
-        psm = "The form has already been submitted and you are not allowed to modify the data!"
-        logger.info('%s/%s tried to edit submitted application record' % (member,reg_no))
-        res,psm_dummy,ds_dummy = lt.renderLayout(layout_id= layout,
-                                schema_id= 'application',
-                                layout_mode = mode,
-                                context=context,
-                                mapping={},
-                                ob=object,
-                                commit = False,
-                                )
-    else:
-        mode = "edit"
-        psm = "Content changed!"
-        data['status'] = "edited"
-        context.applicants_catalog.modifyRecord(**data)
-        logger.info('%s/%s modified application record' % (member,reg_no))
-
-elif manage:
-    if submitted:
-        mode = "view"
-        psm = "You are now assuming the applicant's role!"
-        logger.info('%s/%s entered application record' % (member,reg_no))
-        res,psm_dummy,ds_dummy = lt.renderLayout(layout_id= layout,
-                                schema_id= 'application',
-                                layout_mode = mode,
-                                context=context,
-                                mapping={},
-                                ob=object,
-                                commit = False,
-                                )
-    else:
-        mode = "edit"
-        psm = "You are now assuming the applicant's role!"
-        logger.info('%s/%s entered application record' % (member,reg_no))
-
-
-try:
-    passport_uploaded = bool(data['passport'])
-except:
-    passport_uploaded = False
-
-return context.apply_pume_form(rendered = res,
-                               psm = psm,
-                               #psm = "%s, %s" % (psm,ds),
-                               mode = mode,
-                               show_submit = passport_uploaded,
-                               ds = ds,
-                               prence = prence,
-                              )
-
-
Index: WAeUP_SRP/base/skins/waeup_student/apply_pume_form.pt
===================================================================
--- WAeUP_SRP/base/skins/waeup_student/apply_pume_form.pt	(revision 2307)
+++ 	(revision )
@@ -1,69 +1,0 @@
-<tal:block define="rendered_main options/rendered;
-           portal_status_message options/psm;
-           ds options/ds;
-           jamb options/jamb/getContent|nothing;
-           mode options/mode;
-           show_submit options/show_submit|nothing;
-           "
-           >
-  <metal:block define-macro="edit_form">
-    <metal:block use-macro="here/main_template/macros/master">
-      <metal:block fill-slot="main">
-        <h3 tal:condition="python:not mode=='view'">Apply for Post UME Screening (2007/2008)! </h3>
-        <h3 tal:condition="python:mode=='view'">Your PUME Application Record</h3>
-        <br />
-        <form action="" id="editForm" method="post" 
-              enctype="multipart/form-data" class="workflow"
-              tal:attributes="action string:${context/absolute_url}/apply_pume/${options/prence}"
-              >
-          <input type="hidden" name="reg_no"
-                 tal:attributes="value ds/reg_no|nothing"
-                 tal:condition="ds/reg_no|nothing"/>
-          <input type="hidden" name="pin"
-                 tal:attributes="value ds/pin|nothing"
-                 tal:condition="ds/pin|nothing"/>
-
-          <div tal:replace="structure rendered_main" />
-          
-          <metal:block tal:condition="python: show_submit and mode == 'edit'">
-            <br/>
-            <input type="checkbox" class="standalone" 
-                   name="confirm"
-                   value="" 
-                   />
-              I confirm that the Passport Photograph uploaded on this form is a true picture of me.
-            <br/><br/>
-          </metal:block>
-
-          
-          <input type="submit" class="standalone" 
-                 name="edit"
-                 value="Save" 
-                 tal:condition="python: mode == 'edit'" />
-          <input type="submit" class="standalone" name="apply"
-                 value="Final Submit"
-                 tal:condition="python: show_submit and mode == 'edit'"
-                 />
-          <input type="submit" 
-                 class="standalone" 
-                 name="create"
-                 value="Show Application Record"
-                 tal:condition="python: mode == 'create'" 
-                 />
-          </form>
-          <metal:block tal:condition="python: mode in ('create','edit')">
-          <p>Instructions :</p>
-          <ul>
-            <li>Enter your JAMB Registration Number and the Application PIN.</li> 
-            <li>Fill the form and upload your Passport Photograph with red background in jpg format.</li> 
-            <li>Save and preview picture.
-            <li>Press the 'Final Submit' button.</li>
-          </ul>
-          <br />
-          <font color="red">Application submission deadline is at Midnight on Thursday, 6th September 2007.  
-          No application will be treated after the deadline. </font>
-          </metal:block>
-      </metal:block>
-    </metal:block>
-  </metal:block>
-</tal:block>
Index: WAeUP_SRP/base/skins/waeup_student/apply_pume_manage.py
===================================================================
--- WAeUP_SRP/base/skins/waeup_student/apply_pume_manage.py	(revision 2307)
+++ 	(revision )
@@ -1,135 +1,0 @@
-## Script (Python) "apply_pume_manage"
-##bind container=container
-##bind context=context
-##bind namespace=
-##bind script=script
-##bind subpath=traverse_subpath
-##parameters=REQUEST
-##title=
-##
-# $Id$
-"""
-search for  Pume Applications
-"""
-
-try:
-    from Products.zdb import set_trace
-except:
-    def set_trace():
-        pass
-
-import DateTime
-import logging
-logger = logging.getLogger('Skins.apply_pume_manage')
-mtool = context.portal_membership
-member = mtool.getAuthenticatedMember()
-
-current = DateTime.DateTime()
-pr = context.portal_registration
-request = REQUEST
-
-
-if not context.isSectionOfficer():
-    return request.RESPONSE.redirect("%s/srp_anonymous_view" % context.absolute_url())
-
-#type_name = 'StudentApplication'
-#ti = context.portal_types[type_name]
-#REQUEST.set('type_name',type_name)
-
-search = "search" in request.keys()
-reset = "reset" in request.keys()
-edit = "edit" in request.keys()
-lt = context.portal_layouts
-
-reg_no = request.get('reg_no','').upper()
-new_reg_no = request.get('new_reg_no','').upper()
-
-if reset or edit:
-    reg_no = reg_no
-elif new_reg_no:
-    reg_no = new_reg_no
-
-res = ''
-psm = ''
-object = {}
-ds = []
-found = False
-
-validate = not search
-
-if reg_no:
-    brains = context.applicants_catalog(reg_no = reg_no)
-
-    if len(brains) == 1:
-        found = True
-        for field in context.applicants_catalog.schema():
-            object[field] = getattr(brains[0],field,None)
-        res,psm,ds = lt.renderLayout(layout_id= 'application_manage',
-                                     schema_id= 'application',
-                                     layout_mode = "edit",
-                                     context=context,
-                                     mapping=validate and REQUEST,
-                                     ob=object,
-                                     commit = False,
-                                    )
-
-
-if psm == 'invalid':
-    return context.apply_pume_manage_form(rendered = res,
-                                   psm = "Please correct your input!",
-                                   #psm = "%s, %s" % (psm,ds),
-                                   ds = ds,
-                                  )
-elif psm == '':
-    if search and not found:
-        psm = 'Registration Number not found!'
-    return context.apply_pume_manage_form(rendered = res,
-                                   psm = psm,
-                                   reg_no = reg_no,
-                                   ds = ds,
-                                  )
-elif psm == 'valid':
-    psm = ''
-    pass
-
-data = {}
-dm = ds.getDataModel()
-for field in context.applicants_catalog.schema():
-    if dm.has_key("%s" % field):
-        data[field] = dm.get(field)
-
-
-if reset and reg_no:
-    #data['reg_no'] = reg_no
-    psm = "You successfully reset the record! The applicant will be able to edit and resubmit the data."
-    data['status'] = "reset"
-    context.applicants_catalog.modifyRecord(**data)
-    logger.info('%s reset application record of %s' % (member,reg_no))
-
-if edit and reg_no:
-    #data['reg_no'] = reg_no
-    psm = "Content changed!"
-    context.applicants_catalog.modifyRecord(**data)
-    logger.info('%s edited application record of %s' % (member,reg_no))
-
-
-brains = context.applicants_catalog(reg_no = reg_no)
-for field in context.applicants_catalog.schema():
-    object[field] = getattr(brains[0],field,None)
-
-res,psm_dummy,ds = lt.renderLayout(layout_id= 'application_manage',
-                             schema_id= 'application',
-                             layout_mode = "edit",
-                             context=context,
-                             ob=object,
-                             commit = False,
-                            )
-
-
-return context.apply_pume_manage_form(rendered = res,
-                                      psm = psm,
-                                      reg_no = reg_no,
-                                      ds = ds
-                                     )
-
-
Index: WAeUP_SRP/base/skins/waeup_student/apply_pume_manage_form.pt
===================================================================
--- WAeUP_SRP/base/skins/waeup_student/apply_pume_manage_form.pt	(revision 2307)
+++ 	(revision )
@@ -1,102 +1,0 @@
-<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_pume_manage"
-              >
-
-          <span tal:condition="not: rendered_main">
-            <h3>Application Process</h3>
-            <br />
-            
-            <table tal:define="info_applicants context/getApplicantsStatistics">
-            <tr> 
-              <td>Number of records viewed:</td> 
-              <td><span tal:replace="info_applicants/pin_entered" /></td>  
-            </tr>
-            <tr> 
-              <td>Number of records submitted:</td> 
-              <td><span tal:replace="info_applicants/submitted" /></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>PUME 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: '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/>
-        
-        <form action="" id="editForm" method="post" 
-            enctype="multipart/form-data" class="workflow"
-            tal:attributes="action string:${context/absolute_url}/apply_pume"
-            tal:condition="rendered_main"
-            >
-        <input type="hidden" name="reg_no"
-               tal:attributes="value ds/reg_no|nothing"
-               tal:condition="ds/reg_no|nothing"/>
-        <input type="submit" 
-               class="standalone" 
-               name="manage"
-               value="Assume Applicant's Role"
-               />             
-        </form>          
-        
-      </metal:block>
-    </metal:block>
-  </metal:block>
-</tal:block>
Index: WAeUP_SRP/base/skins/waeup_student/apply_pume_slip.pt
===================================================================
--- WAeUP_SRP/base/skins/waeup_student/apply_pume_slip.pt	(revision 2307)
+++ 	(revision )
@@ -1,23 +1,0 @@
-<tal:block define="rendered_main options/rendered;
-           portal_status_message options/psm;
-           ds options/ds;
-           jamb options/jamb/getContent|nothing;
-           mode options/mode;
-           name python:ds['lastname'];
-           "
-           >
-  <metal:block define-macro="edit_form">
-    <metal:block use-macro="here/slip_template/macros/master">
-      <metal:block fill-slot="main">
-        <h3>Post UME Screening (2007/2008) Aknowledgement Slip</h3>
-        <br />
-        <div tal:replace="structure rendered_main" />
-        
-        The applicant has confirmed that the picture shown on this slip is a true picture of him/her. 
-        <br/><br/>
-        Please check for your screening venue at any of the UNIBEN entry gates or
-        at the Sports Complex and come to the screening venue with a copy of this slip.  
-      </metal:block>
-    </metal:block>
-  </metal:block>
-</tal:block>
Index: WAeUP_SRP/base/skins/waeup_student/expired_admission_form.pt
===================================================================
--- WAeUP_SRP/base/skins/waeup_student/expired_admission_form.pt	(revision 2310)
+++ WAeUP_SRP/base/skins/waeup_student/expired_admission_form.pt	(revision 2310)
@@ -0,0 +1,47 @@
+<tal:block define="rendered_main options/rendered;
+           portal_status_message options/psm;
+           ds options/ds;
+           jamb options/jamb/getContent|nothing;
+           mode options/mode;
+           show_submit options/show_submit|nothing;
+           "
+           >
+  <metal:block define-macro="edit_form">
+    <metal:block use-macro="here/main_template/macros/master">
+      <metal:block fill-slot="main">
+        <h3 tal:condition="python:not mode=='view'">Show Post UME Screening (2007/2008) Application Record! </h3>
+        <h3 tal:condition="python:mode=='view'">Your Application Record</h3>
+        <br />
+        <form action="" id="editForm" method="post" 
+              enctype="multipart/form-data" class="workflow"
+              tal:attributes="action string:${context/absolute_url}/apply_admission"
+              >
+          <input type="hidden" name="reg_no"
+                 tal:attributes="value ds/reg_no|nothing"
+                 tal:condition="ds/reg_no|nothing"/>
+          <input type="hidden" name="pin"
+                 tal:attributes="value ds/pin|nothing"
+                 tal:condition="ds/pin|nothing"/>
+
+          <div tal:replace="structure rendered_main" />
+          
+          <input type="submit" 
+                 class="standalone" 
+                 name="create"
+                 value="Show Application Record"
+                 tal:condition="python: mode == 'create'" 
+                 />
+          </form>
+          <metal:block tal:condition="python: mode in ('create','edit')">
+          <p>Instructions :</p>
+          <ul>
+            <li>Enter your JAMB Registration Number and the Application PIN.</li> 
+            <li>Print your Acknowledegement Slip.
+          </ul>
+          <br />
+          <font color="red">Application period has expired!</font>
+          </metal:block>
+      </metal:block>
+    </metal:block>
+  </metal:block>
+</tal:block>
Index: WAeUP_SRP/base/skins/waeup_student/expired_pume_form.pt
===================================================================
--- WAeUP_SRP/base/skins/waeup_student/expired_pume_form.pt	(revision 2307)
+++ 	(revision )
@@ -1,47 +1,0 @@
-<tal:block define="rendered_main options/rendered;
-           portal_status_message options/psm;
-           ds options/ds;
-           jamb options/jamb/getContent|nothing;
-           mode options/mode;
-           show_submit options/show_submit|nothing;
-           "
-           >
-  <metal:block define-macro="edit_form">
-    <metal:block use-macro="here/main_template/macros/master">
-      <metal:block fill-slot="main">
-        <h3 tal:condition="python:not mode=='view'">Show Post UME Screening (2007/2008) Application Record! </h3>
-        <h3 tal:condition="python:mode=='view'">Your PUME Application Record</h3>
-        <br />
-        <form action="" id="editForm" method="post" 
-              enctype="multipart/form-data" class="workflow"
-              tal:attributes="action string:${context/absolute_url}/apply_pume"
-              >
-          <input type="hidden" name="reg_no"
-                 tal:attributes="value ds/reg_no|nothing"
-                 tal:condition="ds/reg_no|nothing"/>
-          <input type="hidden" name="pin"
-                 tal:attributes="value ds/pin|nothing"
-                 tal:condition="ds/pin|nothing"/>
-
-          <div tal:replace="structure rendered_main" />
-          
-          <input type="submit" 
-                 class="standalone" 
-                 name="create"
-                 value="Show Application Record"
-                 tal:condition="python: mode == 'create'" 
-                 />
-          </form>
-          <metal:block tal:condition="python: mode in ('create','edit')">
-          <p>Instructions :</p>
-          <ul>
-            <li>Enter your JAMB Registration Number and the Application PIN.</li> 
-            <li>Print your Acknowledegement Slip.
-          </ul>
-          <br />
-          <font color="red">Application period has expired!</font>
-          </metal:block>
-      </metal:block>
-    </metal:block>
-  </metal:block>
-</tal:block>
Index: WAeUP_SRP/base/skins/waeup_student/search_students_form.pt
===================================================================
--- WAeUP_SRP/base/skins/waeup_student/search_students_form.pt	(revision 2307)
+++ WAeUP_SRP/base/skins/waeup_student/search_students_form.pt	(revision 2310)
@@ -20,5 +20,5 @@
       <nobr><a href="statistics_simple_view">Basic Student Statistics</a>
       &nbsp;&nbsp;&nbsp;&nbsp;</nobr>      
-      <nobr><a href="apply_pume_manage">Application Process</a>
+      <nobr><a href="apply_admission_manage">Application Process</a>
       &nbsp;&nbsp;&nbsp;&nbsp;</nobr>         
       <span tal:condition="is_so">
