def ajax_submit_and_validate(self): status, errors = self.form.view.handle_form( self.form, self.request.params) self.context._changed = datetime.now() self.form.submission.submit(self.form, self.context, self.request) results = pyramidformview.ajax_validate(self, "xml", True) self.request.registry.notify(ContentChanged(self.context)) return results
def ajax_submit_and_validate(self): redirect = None if "cancel" in self.request.params: redirect = self.cancel_add_redirect else: status, errors = self.form.view.handle_form( self.form, self.request.params) self.form.submission.submit(self.form, self.context, self.request) if status == "completed": # finalize the temporary object parent = self.context.__parent__ content_id = parent.generate_content_id(self.context.base_id) noLongerProvides(self.context, ITemporaryObject) self.request.registry.notify( TemporaryObjectFinalized(self.context, self.request)) parent.rename_content(self.context.id, content_id) self.request.registry.notify( ContentAdded(self.context, parent, self.request)) redirect = self.after_add_redirect if redirect: doc = Document() root = doc.createElement("validation") doc.appendChild(root) command = doc.createElement("command") command.setAttribute("selector", "") command.setAttribute("name", 'redirect') command.setAttribute("value", "%s" % redirect) root.appendChild(command) results = doc.toprettyxml(indent=" ").encode('utf-8') else: results = pyramidformview.ajax_validate(self, "xml", True) return results