source: WAeUP_SRP/trunk/skins/waeup_default/waeup_document_create_do.py @ 449

Last change on this file since 449 was 440, checked in by joachim, 18 years ago

levels can be created
keyerror elective fixed
check for blanks in Id's checked

File size: 1.2 KB
Line 
1##parameters=type_name, datamodel
2# $Id: cpsdocument_create_do.py 34091 2006-03-06 18:37:08Z atchertchian $
3"""
4Create an empty object in the context according to the datamodel.
5
6Datamodel may be examined to create a suitable id.
7
8Returns the created object (usually a proxy).
9"""
10from Products.CMFCore.utils import getToolByName
11
12if type_name == "StudyLevel":
13    id = datamodel.get('code')
14else:
15    id = datamodel.get('code').upper()
16    datamodel.set('code',id)
17##if not id:
18##    id = 'my ' + type_name
19##id = context.computeId(compute_from=id) # XXX shouldn't use a skin
20##
21language = datamodel.get('Language')
22if not language:
23    ts = getToolByName(context, 'translation_service')
24    language = ts.getSelectedLanguage()
25
26ttool = getToolByName(context, 'portal_types')
27ti = ttool[type_name]
28allow_discussion = ti.allowDiscussion()
29
30# Datamodel is passed so that flexti can initialize the object.
31new_id = context.invokeFactory(type_name, id, datamodel=datamodel,
32                               language=language,
33                               allow_discussion=allow_discussion)
34if new_id is not None:
35    id = new_id
36
37ob = getattr(context, id)
38ob.getContent().edit(mapping=datamodel)
39
40context.notifyCPSDocumentCreation(ob=ob) # BBB obsolete in CPS 3.5.0
41
42return ob
Note: See TracBrowser for help on using the repository browser.