source: WAeUP_SRP/trunk/skins/waeup_student/apply_admission.py @ 481

Last change on this file since 481 was 481, checked in by joachim, 18 years ago

modified student_application_schema

File size: 3.1 KB
Line 
1##parameters=REQUEST
2# $Id: apply_admission.py 173 2005-11-15 16:28:29Z joachim $
3"""
4process the Application Form
5return html renderer + psm
6"""
7type_name = 'StudentApplication'
8ti = context.portal_types[type_name]
9REQUEST.set('type_name',type_name)
10
11validate = REQUEST.has_key("cpsdocument_create_button")
12
13lt = context.portal_layouts
14pr = context.portal_registration
15
16prefix = 'APP'
17res,psm,ds = lt.renderLayout(layout_id= 'student_application_fe',
18                      schema_id= 'student_application',
19                      context=context,
20                      mapping=validate and REQUEST,
21                      ob={'app_ac_prefix': prefix},
22                      layout_mode='create',
23                      formaction = "apply_admission",
24                      submit = "check",
25                      )
26if psm == 'invalid':
27    return context.application_pin_form(rendered = res,
28                                 psm = "Please correct your input",
29                                 #psm = "psm : #%s#" % (psm,),
30                                 firstlayout = True,
31                                 lastlayout = True,
32                                 ds = ds,
33                                 )
34elif psm == '':
35    return context.application_pin_form(rendered = res,
36                                 psm = None,
37                                 firstlayout = True,
38                                 lastlayout = True,
39                                 ds = ds,
40                                 )
41elif psm == 'valid':
42    jamb_id = ds.get('jamb_reg_no')
43    catalog = context.portal_catalog
44    search = catalog({'meta_type': 'StudentApplication',
45                     'jamb_reg_no': jamb_id
46                     })
47
48    if len(search) < 1:
49        psm = "No JAMB record %s" % (jamb_id)
50        return context.application_pin_form(rendered = res,
51                                 psm = psm,
52                                 ds = ds,
53                                 )
54application = search[0].getObject()
55student = application.aq_parent
56if context.portal_workflow.getInfoFor(student,'review_state',None) == "created":
57    #student.invokeFactory('StudentClearance','clearance')
58    student.invokeFactory('StudentPersonal','personal')
59    student.content_status_modify(workflow_action="enter_application_pin")
60
61
62apdoc = application.getContent()
63names = apdoc.jamb_lastname.split()
64dp = {}
65if len(names) == 3:
66    dp['firstname'] = names[0].capitalize()
67    dp['middlename'] = names[1].capitalize()
68    dp['lastname'] = names[2].capitalize()
69elif len(names) == 2:
70    dp['firstname'] = names[0].capitalize()
71    dp['lastname'] = names[1].capitalize()
72else:
73    dp['lastname'] = apdoc.jamb_lastname
74dp['sex'] = apdoc.jamb_sex == 'M'
75dp['lga'] = "%s/%s" % (apdoc.jamb_state,apdoc.jamb_lga )
76student.personal.getContent().edit(mapping = dp)
77da = {}
78da['app_ac_prefix'] = prefix
79da['app_ac_batch_no'] = ds.get('app_ac_batch_no')
80da['app_ac_pin'] = ds.get('app_ac_pin')
81apdoc.edit(mapping = da)
82# now display the passport form with jamb-data readonly
83return context.REQUEST.RESPONSE.redirect("%s/application_form" % (student.application.absolute_url()))
84return student.application_form()
85
86
Note: See TracBrowser for help on using the repository browser.