##parameters=type_name, datamodel
# $Id: scratch_card_batch_create_do.py 502 2006-09-11 10:39:59Z joachim $
"""
Create an empty object in the context according to the datamodel.

Datamodel may be examined to create a suitable id.
"""
from Products.CMFCore.utils import getToolByName

prefix = datamodel.get('prefix').upper()
datamodel.set('prefix',prefix)
bl = context.portal_catalog({'meta_type': "ScratchCardBatch",})
b_ids = []
for b in bl:
    b_ids.append(b.getId)
next = 1
while b_ids and "%s_%d" % (prefix,next) in b_ids:
    next += 1
id = "%s_%d" % (prefix,next)
datamodel.set('batch_no',next)
##language = datamodel.get('Language')
##if not language:
##    ts = getToolByName(context, 'translation_service')
##    language = ts.getSelectedLanguage()

# Datamodel is passed so that flexti can initialize the object.
new_id = context.invokeFactory(type_name, id, datamodel=datamodel,
                               )
if new_id is not None:
    id = new_id

ob = getattr(context, id)
ob.getContent().edit(mapping=datamodel)

#context.notifyCPSDocumentCreation(ob=ob) # BBB obsolete in CPS 3.5.0

return ob
