source: WAeUP_SRP/trunk/skins/waeup_accommodation/reserve_acco.py @ 639

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

added

File size: 2.6 KB
Line 
1##parameters=REQUEST
2# $Id: apply_admission.py 543 2006-09-24 07:44:32Z henrik $
3"""
4process the Application Form
5return html renderer + psm
6"""
7import DateTime
8current = DateTime.DateTime()
9pr = context.portal_registration
10
11info = context.getStudentInfo()
12validate = REQUEST.has_key("cpsdocument_create_button")
13
14lt = context.portal_layouts
15pr = context.portal_registration
16session = current.year()
17acco_id = 'Acco_%s' % session
18info = context.getStudentInfo()
19student = info['student']
20if info['acco']:
21    return student.hostal_reservation_slip()
22res,psm,ds = lt.renderLayout(layout_id= 'student_acco_reserve',
23                      schema_id= 'student_acco_reserve',
24                      context=context,
25                      mapping=validate and REQUEST,
26                      ob={},
27                      layout_mode='create',
28                      formaction = "reserve_acco",
29                      button = "book Bed",
30                      )
31if psm == 'invalid':
32    return context.reserve_acco_form(rendered = res,
33                                 #psm = "Please correct your input.",
34                                 psm = "%s, %s" % (psm,ds),
35                                 firstlayout = True,
36                                 lastlayout = True,
37                                 ds = ds,
38                                 )
39elif psm == '':
40    return context.reserve_acco_form(rendered = res,
41                                 psm = None,
42                                 firstlayout = True,
43                                 lastlayout = True,
44                                 ds = ds,
45                                 )
46elif psm == 'valid':
47    s_id = ds.get('s_id')
48    pin = str(ds.get('acco_res_ac_pin'))
49    pa = context.portal_accommodation
50    code,bed = pa.searchAndReserveBed(s_id,"%s_%s" % (info['sex'],ds.get('student_status')))
51    if code < -10:
52        return context.reserve_acco_form(rendered = res,
53                                 psm = bed,
54                                 firstlayout = True,
55                                 lastlayout = True,
56                                 ds = ds,
57                                 )
58student.invokeFactory('StudentAccommodation',acco_id)
59acco = getattr(student,acco_id)
60ds['acco_res_date'] = current
61ds['bed'] = bed
62ds['session'] = session
63acco.getContent().edit(mapping=ds)
64return student.hostal_reservation_slip()
65return context.reserve_acco_form(rendered = res,
66                                 psm = "successfully reserved bed %s" % bed,
67                                 firstlayout = True,
68                                 lastlayout = True,
69                                 ds = ds,
70                                 )
71
Note: See TracBrowser for help on using the repository browser.