def record_from_model(workflow_object): """Build data from workflow object.""" # NOTE: This entire function may in principle be in invenio_workflows # WorkflowObject model as a to_dict() kind of function of the model. workflow_definition = workflows.get(workflow_object.workflow.name) record = {} record["id"] = workflow_object.id if not workflow_object.data_type: if workflow_definition and hasattr(workflow_definition, 'data_type'): data_type = workflow_definition.data_type else: data_type = "workflow" else: data_type = workflow_object.data_type record["_workflow"] = {} record["_workflow"]["data_type"] = data_type record["_workflow"]["status"] = ObjectStatus.labels[workflow_object.status.value] record["_workflow"]["created"] = workflow_object.created.isoformat() record["_workflow"]["modified"] = workflow_object.modified.isoformat() record["_workflow"]["id_workflow"] = six.text_type(workflow_object.id_workflow) record["_workflow"]["id_user"] = workflow_object.id_user record["_workflow"]["id_parent"] = workflow_object.id_parent record["_workflow"]["workflow"] = workflow_object.workflow.name if isinstance(workflow_object.data, dict): record.update(workflow_object.data) return record
def get_model_from_obj(obj): """Return an instance of the model from the workflow.""" from invenio_workflows.proxies import workflows workflow = workflows.get(obj.workflow.name) if workflow is not None: return workflow.model(obj) else: return None
def record_from_object(workflow_object): """Build data from workflow object. NOTE: This entire function may in principle be in workflow_object_class model as a to_dict() kind of function of the model. """ record = {} record["id"] = workflow_object.id _workflow = {} _workflow["data_type"] = workflow_object.data_type _workflow["status"] = workflow_object.status.name _workflow["id_user"] = workflow_object.id_user _workflow["id_parent"] = workflow_object.id_parent _workflow["id_workflow"] = None _workflow["workflow_class"] = None _workflow["workflow_position"] = workflow_object.callback_pos _workflow["workflow_name"] = None if ( workflow_object.workflow and workflow_object.workflow.name in workflows ): workflow_definition = workflows.get(workflow_object.workflow.name) if ( not _workflow["data_type"] and workflow_definition and hasattr(workflow_definition, 'data_type') ): _workflow["data_type"] = workflow_definition.data_type if workflow_definition and hasattr(workflow_definition, 'name'): _workflow["workflow_name"] = workflow_definition.name if workflow_object.id_workflow: _workflow["id_workflow"] = six.text_type( workflow_object.id_workflow ) _workflow["workflow_class"] = workflow_object.workflow.name if isinstance(workflow_object.data, dict): record.update({"metadata": workflow_object.data}) if isinstance(workflow_object.extra_data, dict): record.update({"_extra_data": workflow_object.extra_data}) record["_workflow"] = _workflow return record
def record_from_model(workflow_object): """Build data from workflow object. NOTE: This entire function may in principle be in invenio_workflows WorkflowObject model as a to_dict() kind of function of the model. """ record = {} record["id"] = workflow_object.id record["_workflow"] = {} record["_workflow"]["data_type"] = workflow_object.data_type record["_workflow"]["status"] = ObjectStatus.labels[ workflow_object.status.value] record["_workflow"]["created"] = workflow_object.created.isoformat() record["_workflow"]["modified"] = workflow_object.modified.isoformat() record["_workflow"]["id_user"] = workflow_object.id_user record["_workflow"]["id_parent"] = workflow_object.id_parent record["_workflow"]["id_workflow"] = None record["_workflow"]["workflow_class"] = None record["_workflow"]["workflow_position"] = None record["_workflow"]["workflow_name"] = None if workflow_object.workflow and workflow_object.workflow.name in workflows: workflow_definition = workflows.get(workflow_object.workflow.name) if not record["_workflow"][ "data_type"] and workflow_definition and hasattr( workflow_definition, 'data_type'): record["_workflow"][ "data_type"] = workflow_definition.data_type if workflow_definition and hasattr(workflow_definition, 'name'): record["_workflow"]["workflow_name"] = workflow_definition.name if workflow_object.id_workflow: record["_workflow"]["id_workflow"] = six.text_type( workflow_object.id_workflow) record["_workflow"][ "workflow_class"] = workflow_object.workflow.name record["_workflow"]["workflow_position"] = six.text_type( workflow_object.callback_pos) if isinstance(workflow_object.data, dict): record.update(workflow_object.data) return record
def record_from_model(workflow_object): """Build data from workflow object. NOTE: This entire function may in principle be in invenio_workflows WorkflowObject model as a to_dict() kind of function of the model. """ record = {} record["id"] = workflow_object.id record["_workflow"] = {} record["_workflow"]["data_type"] = workflow_object.data_type record["_workflow"]["status"] = ObjectStatus.labels[workflow_object.status.value] record["_workflow"]["created"] = workflow_object.created.isoformat() record["_workflow"]["modified"] = workflow_object.modified.isoformat() record["_workflow"]["id_user"] = workflow_object.id_user record["_workflow"]["id_parent"] = workflow_object.id_parent record["_workflow"]["id_workflow"] = None record["_workflow"]["workflow_class"] = None record["_workflow"]["workflow_position"] = None record["_workflow"]["workflow_name"] = None if workflow_object.workflow and workflow_object.workflow.name in workflows: workflow_definition = workflows.get(workflow_object.workflow.name) if not record["_workflow"]["data_type"] and workflow_definition and hasattr( workflow_definition, 'data_type'): record["_workflow"]["data_type"] = workflow_definition.data_type if workflow_definition and hasattr(workflow_definition, 'name'): record["_workflow"]["workflow_name"] = workflow_definition.name if workflow_object.id_workflow: record["_workflow"]["id_workflow"] = six.text_type(workflow_object.id_workflow) record["_workflow"]["workflow_class"] = workflow_object.workflow.name record["_workflow"]["workflow_position"] = six.text_type(workflow_object.callback_pos) if isinstance(workflow_object.data, dict): record.update(workflow_object.data) return record