source: WAeUP_SRP/trunk/skins/waeup_student/apply_pume.py @ 2108

Last change on this file since 2108 was 2108, checked in by Henrik Bettermann, 17 years ago

form shows now the correct data and correct mode

select widget for course3 added

  • Property svn:keywords set to Id
File size: 4.5 KB
Line 
1## Script (Python) "apply_pume"
2##bind container=container
3##bind context=context
4##bind namespace=
5##bind script=script
6##bind subpath=traverse_subpath
7##parameters=REQUEST
8##title=
9##
10# $Id: apply_pume.py 2108 2007-08-16 18:43:20Z henrik $
11"""
12process the Pume Application Form
13"""
14try:
15    from Products.zdb import set_trace
16except:
17    def set_trace():
18        pass
19
20import DateTime
21current = DateTime.DateTime()
22pr = context.portal_registration
23request = REQUEST
24
25#type_name = 'StudentApplication'
26#ti = context.portal_types[type_name]
27#REQUEST.set('type_name',type_name)
28create = "create" in request.keys()
29apply_pume = "apply" in request.keys()
30edit = "edit" in request.keys()
31slip = "slip" in request.keys()
32submitted = False
33mode = request.get('mode','')
34if not mode:
35    if apply_pume or edit:
36        mode = "edit"
37    else:
38        mode = "create"
39validate = create or edit or apply_pume
40
41lt = context.portal_layouts
42reg_no = request.get('widget__reg_no','').upper()
43if not reg_no:
44    reg_no = request.form.get('reg_no','').upper()
45pin = request.form.get('pin','')
46object = {}
47if reg_no:
48    brains = context.applicants_catalog(reg_no = reg_no)
49    if len(brains) == 1:
50        for field in context.applicants_catalog.schema():
51            object[field] = getattr(brains[0],field,None)
52        if object['status'] == "submitted":
53            submitted = True
54        #set_trace()
55        if not create and pin != object['pin']:
56            return request.RESPONSE.redirect("%s/srp_anonymous_view" % context.portal_url())
57if slip:
58    mode = "view_slip"
59   
60res,psm,ds = lt.renderLayout(layout_id= 'application',
61                             schema_id= 'application',
62                             layout_mode = mode,
63                             context=context,
64                             mapping=validate and REQUEST,
65                             ob=object,
66                             commit = False,
67                            )
68
69if slip:
70    return context.apply_pume_slip(rendered = res,
71                                   psm = "",
72                                   #psm = "%s, %s" % (psm,ds),
73                                   mode = mode,
74                                   ds = ds,
75                                  )
76
77if psm == 'invalid':
78    return context.apply_pume_form(rendered = res,
79                                   psm = "Please correct your input!",
80                                   #psm = "%s, %s" % (psm,ds),
81                                   mode = mode,
82                                   ds = ds,
83                                  )
84elif psm == '':
85    return context.apply_pume_form(rendered = res,
86                                   psm = None,
87                                   ds = ds,
88                                   mode = mode,
89                                  )
90elif psm == 'valid':
91    pass
92data = {}
93for field in context.applicants_catalog.schema():
94    if ds.has_key(field) and request.has_key("widget__%s" % field):
95        data[field] = ds.get(field)
96data['reg_no'] = reg_no
97
98if apply_pume:
99    if not request.has_key('confirm'):
100        mode = "edit"
101        psm = "Please confirm Passport Photograph"
102    else:
103        mode = "view"
104        psm = "You successfully applied for PUME"
105        data['application_date'] = current
106        data['status'] = "submitted"
107        context.applicants_catalog.modifyRecord(**data)
108        res,psm_dummy,ds = lt.renderLayout(layout_id= 'application',
109                                schema_id= 'application',
110                                layout_mode = mode,
111                                context=context,
112                                mapping=validate and REQUEST,
113                                ob=object,
114                                commit = False,
115                                )                     
116elif create:
117    if submitted:
118        mode = "view"
119    else:
120        mode = "edit"
121    psm = ""
122    #set_trace()
123    object['pin'] = str(ds.get('pin'))
124    res,psm,dummy = lt.renderLayout(layout_id= 'application',
125                                schema_id= 'application',
126                                layout_mode = mode,
127                                context=context,
128                                mapping={},
129                                ob=object,
130                                commit = False,
131                                )
132elif edit:
133    mode = "edit"
134    psm = "Content changed"
135
136
137   
138return context.apply_pume_form(rendered = res,
139                            psm = psm,
140                            #psm = "%s, %s" % (psm,ds),
141                            mode = mode,
142                            ds = ds,
143                            )
144
145
Note: See TracBrowser for help on using the repository browser.