source: WAeUP_SRP/trunk/skins/waeup_custom/cpsdocument_create.py @ 314

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

=more changes

File size: 1.7 KB
Line 
1## Script (Python) "cpsdocument_create"
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, type_name=None
8##title=
9##
10# $Id: cpsdocument_create.py 32984 2006-02-17 19:30:42Z janguenot $
11"""
12Called when a document form is posted.
13
14Validates data, then:
15
16 - if there's no error, updates the object and redirects to it,
17
18 - if there's an error, puts data in session and redirects to creation form.
19
20A form uid is propagated during the redirect to uniquely identify the
21form in the session.
22"""
23from urllib import urlencode
24from Products.CMFCore.utils import getToolByName
25from Products.CPSDocument.utils import getFormUidUrlArg
26
27ti = getToolByName(context, 'portal_types').getTypeInfo(type_name)
28
29is_valid, ds = ti.validateObject(None, layout_mode='create',
30                                 request=REQUEST, context=context,
31                                 cluster=cluster, use_session=True)
32
33if is_valid:
34    meth_id = ti.queryMethodID('create_do', 'cpsdocument_create_do')
35    ob = getattr(context, meth_id)(type_name, ds.getDataModel())
36    url = ob.absolute_url()
37    meth_id = ti.queryMethodID('created', None)
38##    if meth_id is not None:
39##        getattr(context, meth_id)(object=ob)
40    action = ob.getTypeInfo().immediate_view
41    psm = 'psm_content_created'
42    args = {}
43else:
44    url = context.absolute_url()
45    action = 'cpsdocument_create_form'
46    psm = 'psm_content_error'
47    args = {'type_name': type_name}
48    args.update(getFormUidUrlArg(REQUEST))
49
50args['portal_status_message'] = psm
51url = url + '/' + action + '?' + urlencode(args)
52REQUEST.RESPONSE.redirect(url)
Note: See TracBrowser for help on using the repository browser.