def save_profile(tserver, match, fact): name = match['Person2'] data = localdata.data or [] schema = get_schema('person', form=True) form = Form(schema) try: data = [(o['name'], o['value']) for o in data] data = form.validate(data) except ValidationFailure as e: return form.render() if data: set_data(name, data) return 'OK'
def edit_profile(tserver, match, fact): assertion = '(save-profile %(Person1)s, of %(Person2)s)' % match name = match['Person2'] btn = Button(name='assertion', title='Save', value=assertion) data = get_data(name) schema = get_schema('person', form=True) if data.password: schema.get('password').widget = HiddenWidget() appstruct = schema.dictify(data) form = Form(schema, buttons=(btn,)) template = get_template('templates/edit.html') return template.render(form=form.render(appstruct))