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

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

using home_student as defaultview

  • Property svn:keywords set to Id
File size: 2.9 KB
Line 
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=
9# $Id: student_edit.py 523 2006-09-15 13:06:52Z joachim $
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"""
22
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
31#context.editLayouts(REQUEST=REQUEST)
32
33# Validate the document and write it if it's valid
34# (We don't call getEditableContent here, validate does it when needed.)
35doc = context.getContent()
36
37if context.portal_type == "StudentApplication":
38    student = context.aq_parent
39    state = context.portal_workflow.getInfoFor(student,'review_state',None)
40    if state == "application_pin_entered":
41        student.content_status_modify(workflow_action="apply_for_admission")
42    if doc.passport is None:
43        is_valid, ds = doc.validate(request=REQUEST,
44                                    proxy=context,
45                                    layout_id = "student_application_fe",
46                                    layout_mode = 'edit',
47                                    use_session=True)
48   
49        action = '/application_form'
50        if is_valid:
51            comments = REQUEST.get('comments')
52            context.cpsdocument_notify_modification(comments=comments)
53            if cpsdocument_edit_and_view_button is not None:
54                action = ''
55            psm = 'You successfully uploaded your passport image.'
56            args = {}
57            action = "/view"
58        else:
59            psm = 'psm_content_error'
60            args = getFormUidUrlArg(REQUEST)
61    else:
62        args = {}
63        psm = "You successfully applied for admission."
64        action = "/view"
65else:
66    is_valid, ds = doc.validate(request=REQUEST, proxy=context, cluster=cluster,
67                                use_session=True)
68
69    if action is None:
70        ti = doc.getTypeInfo()
71        action = ti.queryMethodID('edit', 'cpsdocument_edit_form')
72        action = '/' + action
73
74    if is_valid:
75        comments = REQUEST.get('comments')
76        context.cpsdocument_notify_modification(comments=comments)
77        if cpsdocument_edit_and_view_button is not None:
78            action = ''
79        psm = 'psm_content_changed'
80        args = {}
81    else:
82        psm = 'psm_content_error'
83        args = getFormUidUrlArg(REQUEST)
84
85args['portal_status_message'] = psm
86url = context.absolute_url() + action + '?' + urlencode(args)
87REQUEST.RESPONSE.redirect(url)
Note: See TracBrowser for help on using the repository browser.