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

Last change on this file since 504 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.2 KB
Line 
1##parameters=type_name, datamodel
2# $Id: waeup_document_create_do.py 486 2006-09-06 10:09:39Z joachim $
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.