## Script (Python) "createNewContent"
##bind container=container
##bind context=context
##bind namespace=
##bind script=script
##bind subpath=traverse_subpath
##parameters=REQUEST, RESPONSE
##title=
##
member = context.portal_membership.getAuthenticatedMember()
workarea = member.getProperty('workarea', '/'.join(context.portal_url.getPortalObject().getPhysicalPath()))
if workarea:
  id = context.portal_topicmanagement.generateRandomId()
  folder = context.restrictedTraverse(workarea)

  #XXX: This needs to be configurable
  try:
    if hasattr(folder, 'Saker'):
      folder = folder['Saker']
  except:
    pass

  if REQUEST.has_key('type'):
    type_name = REQUEST.type
  elif REQUEST.has_key('type_name'):
    type_name = REQUEST.type_name
  else:
    raise AttributeError, "No type specified in request"

  # Workaround for some tests in the constructor
  #XXX: Why aren't we allowing invokeFactory to do it's thing here?
  REQUEST.set('type_name', type_name)
  folder.invokeFactory(type_name=type_name, id=id)
  obj=getattr(folder, id)
  RESPONSE.redirect("%s/%s"%(obj.absolute_url(), obj.getTypeInfo().getActionById('edit')))
