def _migrate_case_actions(couch_case, sql_case): from casexml.apps.case import const transactions = {} for action in couch_case.actions: if action.xform_id and action.xform_id in transactions: transaction = transactions[action.xform_id] else: transaction = CaseTransaction( case=sql_case, form_id=action.xform_id, sync_log_id=action.sync_log_id, type=CaseTransaction.TYPE_FORM if action.xform_id else 0, server_date=action.server_date, ) if action.xform_id: transactions[action.xform_id] = transaction else: sql_case.track_create(transaction) if action.action_type == const.CASE_ACTION_CREATE: transaction.type |= CaseTransaction.TYPE_CASE_CREATE if action.action_type == const.CASE_ACTION_CLOSE: transaction.type |= CaseTransaction.TYPE_CASE_CLOSE if action.action_type == const.CASE_ACTION_INDEX: transaction.type |= CaseTransaction.TYPE_CASE_INDEX if action.action_type == const.CASE_ACTION_ATTACHMENT: transaction.type |= CaseTransaction.TYPE_CASE_ATTACHMENT if action.action_type == const.CASE_ACTION_REBUILD: transaction.type = CaseTransaction.TYPE_REBUILD_WITH_REASON transaction.details = RebuildWithReason(reason="Unknown") for transaction in transactions.values(): sql_case.track_create(transaction)