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

Last change on this file since 414 was 324, checked in by joachim, 18 years ago

=added workflows for Courses aand CertificatesFolders?, corrected typo in importCertificates, addes schemas and layouts back to types definition

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 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.