def start_workflow(obj, sender, start_message_params=None): if start_message_params is None: start_message_params = {} workflow = get_workflow_by_instance(obj) if isinstance(workflow.start_workflow, basestring): start_message_id = workflow.start_workflow elif callable(workflow.start_workflow): start_message_id = workflow.start_workflow(obj, sender) else: start_message_id = DEFAULT_START_MESSAGE return dispatch.dispatch(obj, sender, start_message_id, start_message_params)
def post(self, request, *args, **kwargs): view_obj = self.get_object() self.object = view_obj obj = self.get_yawf_object() if hasattr(obj, "get_clarified_instance"): obj = obj.get_clarified_instance() self.yawf_object = obj msg_id = self.get_message_id() sender = self.get_sender() try: obj, handler_result, effect_result = dispatch.dispatch(obj, sender, msg_id, self.request.POST) except BaseException as e: return self.process_exception(obj, sender, msg_id, e) else: return self.wrap_yawf_result(obj, handler_result, effect_result)