def add(self): schema = ContentTemplateSchema() schema = schema.bind(context = self.context, request = self.request) form = Form(schema, buttons=('save',)) post = self.request.POST response = {} response['form_resources'] = form.get_widget_resources(None) if 'save' in post: controls = post.items() try: appstruct = form.validate(controls) except ValidationFailure, e: response['form'] = e.render() return response obj = ContentTemplate() obj.title = appstruct['title'] obj.description = appstruct['description'] obj.fields = appstruct['fields'] #FIXME: Make adaptable to same titles self.context[slugify(obj.title)] = obj url = resource_url(obj, self.request) return HTTPFound(location=url)
def edit(self): schema = ContentTemplateSchema() schema = schema.bind(context = self.context, request = self.request, field_types = self.get_field_types()) form = Form(schema, buttons=('save',)) post = self.request.POST response = {} response['form_resources'] = form.get_widget_resources(None) if 'save' in post: controls = post.items() try: appstruct = form.validate(controls) except ValidationFailure, e: response['form'] = e.render() return response self.context.title = appstruct['title'] self.context.description = appstruct['description'] self.context.fields = appstruct['fields']