source: WAeUP_SRP/base/skins/cps_custom/cpsdocument_create.py @ 2332

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

move content from waeup_custom to cps_custom

File size: 1.6 KB
RevLine 
[2217]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 486 2006-09-06 10:09:39Z joachim $
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.