source: WAeUP_SRP/trunk/skins/waeup_student/student_edit.py @ 719

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

fixed several bugs in the Apply for PUME Process:
jamb_reg_no had wrong widget
applying with a different PIN a second time led to an error.

the new fields:
appl_email, appl_mobile are set to hidden in laymode create
could not set the fields to required, cause that broke the applyForm.
layout: student_application.xml still has them set to required.

  • Property svn:keywords set to Id
File size: 3.7 KB
RevLine 
[478]1## Script (Python) "cpsdocument_edit"
2##bind container=container
3##bind context=context
4##bind namespace=
5##bind script=script
6##bind subpath=traverse_subpath
7##parameters=REQUEST, cluster=None, cpsdocument_edit_and_view_button=None, action=None
8##title=
[486]9# $Id: student_edit.py 710 2006-10-16 22:30:16Z joachim $
[478]10"""
11Called when a document form is posted.
12
13Validates data, then:
14
15 - if there's no error, updates the object and redirects to it,
16
17 - if there's an error, puts data in session and redirects to edit form.
18
19A form uid is propagated during the redirect to uniquely identify the
20form in the session.
21"""
[539]22wftool = context.portal_workflow
[478]23from urllib import urlencode
24from Products.CPSDocument.utils import getFormUidUrlArg
25
26# Until ajax posts directly to its own script...
27if 'ajax_edit' in REQUEST.form:
28    return context.cpsdocument_edit_ajax(REQUEST, cluster=cluster)
29
30# Check flexible controls
[486]31#context.editLayouts(REQUEST=REQUEST)
[478]32
33# Validate the document and write it if it's valid
34# (We don't call getEditableContent here, validate does it when needed.)
[535]35info = context.getStudentInfo()
[478]36
[535]37student = info['student']
38app = info['app']
39app_doc = info['app_doc']
40state = context.getStudentInfo()['review_state']
41
42if context.portal_type == "Student":
43    if app_doc.passport is None:
44        is_valid, ds = app_doc.validate(request=REQUEST,
45                                    proxy=app_doc,
[479]46                                    layout_id = "student_application_fe",
47                                    layout_mode = 'edit',
48                                    use_session=True)
[539]49        action = "/passport_entry_view"
[710]50        if is_valid:
51            if app_doc.passport is not None:
52                psm = 'You successfully uploaded your passport image.'
53                args = {'apply_button': 'Apply',}
54            else:
55                psm = "You didn't upload a passport image."
56                args = {}
[539]57        else:
[710]58            psm = 'psm_content_error'
59            args = getFormUidUrlArg(REQUEST)
[535]60    elif 'apply_admission' not in REQUEST.form:
61        is_valid, ds = app_doc.validate(request=REQUEST,
62                                    proxy=app_doc,
63                                    layout_id = "student_application_fe",
64                                    layout_mode = 'edit',
65                                    use_session=True)
66        action = "/passport_entry_view"
67        if is_valid:
68            args = {}
69            if 'apply_admission' not in REQUEST.form:
[541]70                args = {'apply_button': 'Apply',}
[535]71                psm = 'You successfully uploaded your passport image.'
72            else:
73                psm = 'You applied for admission.'
74        else:
75            args = getFormUidUrlArg(REQUEST)
[539]76            psm = 'psm_content_error'
[479]77    else:
[482]78        args = {}
[540]79        student.content_status_modify(workflow_action="apply_for_admission")
[607]80        wftool.doActionFor(app,'close',dest_container= app)
[535]81        psm = 'You applied for admission.'
82        action = "/application_view"
[478]83else:
[535]84    is_valid, ds = app_doc.validate(request=REQUEST, proxy=context, cluster=cluster,
[479]85                                use_session=True)
[483]86
[479]87    if action is None:
[535]88        ti = app.getTypeInfo()
[479]89        action = ti.queryMethodID('edit', 'cpsdocument_edit_form')
90        action = '/' + action
[483]91
[479]92    if is_valid:
93        comments = REQUEST.get('comments')
94        context.cpsdocument_notify_modification(comments=comments)
95        if cpsdocument_edit_and_view_button is not None:
96            action = ''
97        psm = 'psm_content_changed'
98        args = {}
99    else:
100        psm = 'psm_content_error'
101        args = getFormUidUrlArg(REQUEST)
[483]102
[478]103args['portal_status_message'] = psm
104url = context.absolute_url() + action + '?' + urlencode(args)
105REQUEST.RESPONSE.redirect(url)
Note: See TracBrowser for help on using the repository browser.