def get_form_class(editor, request): src = Clipboard.from_session(request).get_object() if src and editor.action == 'paste': if src and src.trait in editor.page.allowed_subtraits: return editor.page.get_form_class(src.trait, request) return editor.page.get_form_class(editor.trait, request)
def handle_page_form(self, request, form): if self.action == 'new': return handle_new_page(self, request, form) elif self.action == 'edit': return handle_edit_page(self, request, form) elif self.action == 'paste': clipboard = Clipboard.from_session(request) src = clipboard.get_object() clipboard.clear() return handle_new_page(self, request, form, src) else: raise NotImplementedError