def cancel(event): if not IDrafting.providedBy(event.action.request): return if event.action.name != 'form.buttons.cancel': return discardDraftsOnCancel(event.action.form.context, event)
def save(event): if not IDrafting.providedBy(event.action.request): return if event.action.name != 'form.buttons.save': return data, errors = event.action.form.extractData() if errors: return if IAddForm.providedBy(event.action.form): draft = getCurrentDraft(event.action.form.request) target = getattr(draft, '_draftAddFormTarget', None) if target: syncDraftOnSave(target, event) else: discardDraftsOnCancel(event.action.form.context, event) else: syncDraftOnSave(event.action.form.context, event)