source: WAeUP_SRP/trunk/skins/waeup_student/reserve_accommodation.py @ 889

Last change on this file since 889 was 856, checked in by Henrik Bettermann, 18 years ago

accommodation_pin_edit_form is shown after creation
accommodation_pin_edit_form shows link to slip

  • Property svn:keywords set to Id
File size: 3.6 KB
Line 
1##parameters=REQUEST
2# $Id: reserve_accommodation.py 856 2006-11-13 11:02:24Z henrik $
3"""
4process the Application Form
5return html renderer + psm
6"""
7import DateTime
8current = DateTime.DateTime()
9pr = context.portal_registration
10wftool = context.portal_workflow
11
12info = context.getStudentInfo()
13validate = REQUEST.has_key("cpsdocument_create_button")
14#           REQUEST.has_key("cpsdocument_edit_button")
15
16lt = context.portal_layouts
17pr = context.portal_registration
18session = current.year()
19acco_id = 'accommodation_%s' % session
20info = context.getStudentInfo()
21student = info['student']
22mode = 'create'
23if info.has_key('acco') and info['acco']:
24    validate = REQUEST.has_key("cpsdocument_edit_button")
25    if info['acco_review_state'] == "maintenance_fee_paid":
26        return context.REQUEST.RESPONSE.redirect("%s/accommodation_view" % info['acco'].absolute_url())
27    else:
28        mode = 'edit'
29d = {}
30button = "Book"
31if mode == 'edit':
32    info = context.getStudentInfo()
33    d['acco_res_date'] = info['acco_doc'].acco_res_date
34    d['acco_res_sc_pin'] = info['acco_doc'].acco_res_sc_pin
35    d['student_status'] = info['acco_doc'].student_status
36    d['bed'] = info['acco_doc'].bed
37    d['session'] = info['acco_doc'].session
38    button = "Pay Maintainance Fee"
39res,psm,ds = lt.renderLayout(layout_id= 'student_accommodation_fe',
40                      schema_id= 'student_accommodation',
41                      context=context,
42                      mapping=validate and REQUEST,
43                      ob=d,
44                      layout_mode=mode,
45                      formaction = "reserve_accommodation",
46                      button = button
47                      )
48if psm == 'invalid':
49    return context.accommodation_pin_edit_form(rendered = res,
50                                 psm = "Please correct your input.",
51                                 #psm = "%s, %s" % (psm,ds),
52                                 mode = mode,
53                                 ds = ds,
54                                 )
55elif psm == '':
56    return context.accommodation_pin_edit_form(rendered = res,
57                                 psm = None,
58                                 mode = mode,
59                                 ds = ds,
60                                 )
61elif psm == 'valid':
62    s_id = ds.get('s_id')
63    if mode == 'create':
64        pin = str(ds.get('acco_res_sc_pin'))
65        pa = context.portal_accommodation
66        code,bed = pa.searchAndReserveBed(s_id,"%s_%s" % (info['sex'],ds.get('student_status')))
67        if code < 0:
68            return context.accommodation_pin_edit_form(rendered = res,
69                                 psm = bed,
70                                 mode = mode,
71                                 ds = ds,
72                                 )
73        student.invokeFactory('StudentAccommodation',acco_id)
74        acco = getattr(student,acco_id)
75        acco_info = context.waeup_tool.getAccommodationInfo(bed)
76        ds.set('acco_maint_code', acco_info.get('maintenance_code'))
77        ds.set('acco_maint_fee', acco_info.get('maintenance_fee'))
78        ds.set('acco_res_date', current)
79        ds.set('bed', bed)
80        ds.set('session', session)
81        acco.getContent().edit(mapping=ds)
82        #wftool.doActionFor(acco,'pay_maintenance_fee',dest_container=acco)
83        return context.REQUEST.RESPONSE.redirect("%s/reserve_accommodation" % student.absolute_url())
84pin = str(ds.get('acco_main_sc_pin'))
85pp = context.portal_pins
86acco = getattr(student,acco_id)
87ds.set('acco_maint_date', current)
88acco.getContent().edit(mapping=ds)
89wftool.doActionFor(acco,'pay_maintenance_fee',dest_container=acco)
90return context.REQUEST.RESPONSE.redirect("%s/accommodation_view" % student.absolute_url())
Note: See TracBrowser for help on using the repository browser.