source: WAeUP_SRP/branches/regebro-noskins/skins/waeup_custom/cpsdocument_create.py @ 17367

Last change on this file since 17367 was 486, checked in by joachim, 18 years ago

svn -R propset svn:keywords "Id" .
added layout_application_/edit/create/view
and cleaned that up.

  • Property svn:keywords set to Id
File size: 1.6 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 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.