def traverse(self, name, ignored):
     template = component.queryAdapter(self.context, ITemplate, name=name)
     if template:
         if not template.form:
             executor = ITemplateExecutor(self.context)
             return executor.create(template, {})
         return component.getMultiAdapter((self.context, self.request), name=template.form)
     else:
         raise TraversalError(self.context, name)
 def handleCreate(self, action):
     executor = ITemplateExecutor(self.context)
     return executor.create(self.adapter(), self.extractData()[0])