本文整理汇总了Python中corehq.form_processor.backends.sql.dbaccessors.CaseAccessorSQL.get_transactions_for_case_rebuild方法的典型用法代码示例。如果您正苦于以下问题:Python CaseAccessorSQL.get_transactions_for_case_rebuild方法的具体用法?Python CaseAccessorSQL.get_transactions_for_case_rebuild怎么用?Python CaseAccessorSQL.get_transactions_for_case_rebuild使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类corehq.form_processor.backends.sql.dbaccessors.CaseAccessorSQL
的用法示例。
在下文中一共展示了CaseAccessorSQL.get_transactions_for_case_rebuild方法的4个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: get_case_transactions
# 需要导入模块: from corehq.form_processor.backends.sql.dbaccessors import CaseAccessorSQL [as 别名]
# 或者: from corehq.form_processor.backends.sql.dbaccessors.CaseAccessorSQL import get_transactions_for_case_rebuild [as 别名]
def get_case_transactions(case_id, updated_xforms=None):
transactions = CaseAccessorSQL.get_transactions_for_case_rebuild(case_id)
form_ids = {tx.form_id for tx in transactions}
updated_xforms_map = {
xform.form_id: xform for xform in updated_xforms if not xform.is_deprecated
} if updated_xforms else {}
form_ids_to_fetch = list(form_ids - set(updated_xforms_map.keys()))
xform_map = {form.form_id: form for form in FormAccessorSQL.get_forms_with_attachments_meta(form_ids_to_fetch)}
def get_form(form_id):
if form_id in updated_xforms_map:
return updated_xforms_map[form_id]
try:
return xform_map[form_id]
except KeyError:
raise XFormNotFound
for transaction in transactions:
if transaction.form_id:
try:
transaction.cached_form = get_form(transaction.form_id)
except XFormNotFound:
logging.error('Form not found during rebuild: %s', transaction.form_id)
return transactions
示例2: test_get_transactions_for_case_rebuild
# 需要导入模块: from corehq.form_processor.backends.sql.dbaccessors import CaseAccessorSQL [as 别名]
# 或者: from corehq.form_processor.backends.sql.dbaccessors.CaseAccessorSQL import get_transactions_for_case_rebuild [as 别名]
def test_get_transactions_for_case_rebuild(self):
form_id = uuid.uuid4().hex
case = _create_case(form_id=form_id)
form_ids = _create_case_transactions(case)
transactions = CaseAccessorSQL.get_transactions_for_case_rebuild(case.case_id)
self.assertEqual(2, len(transactions))
self.assertEqual([form_id, form_ids[0]], [t.form_id for t in transactions])
示例3: test_get_transactions_for_case_rebuild
# 需要导入模块: from corehq.form_processor.backends.sql.dbaccessors import CaseAccessorSQL [as 别名]
# 或者: from corehq.form_processor.backends.sql.dbaccessors.CaseAccessorSQL import get_transactions_for_case_rebuild [as 别名]
def test_get_transactions_for_case_rebuild(self):
form_id = uuid.uuid4().hex
case = _create_case(form_id=form_id)
traces = _create_case_transactions(case)
transactions = CaseAccessorSQL.get_transactions_for_case_rebuild(case.case_id)
self.assertEqual(4, len(transactions))
self.assertEqual(
[form_id] + map(lambda t: t.form_id, filter(lambda t: t.include, traces)),
[t.form_id for t in transactions],
)
示例4: get_last_growth_monitoring_form
# 需要导入模块: from corehq.form_processor.backends.sql.dbaccessors import CaseAccessorSQL [as 别名]
# 或者: from corehq.form_processor.backends.sql.dbaccessors.CaseAccessorSQL import get_transactions_for_case_rebuild [as 别名]
def get_last_growth_monitoring_form(domain, case_id):
transactions = CaseAccessorSQL.get_transactions_for_case_rebuild(case_id)
form_ids = [t.form_id for t in transactions if t.form_id]
forms_under_consideration = []
db_names = get_db_aliases_for_partitioned_query()
for db_name in db_names:
result = XFormInstanceSQL.objects.using(db_name).filter(
domain=domain,
form_id__in=form_ids,
xmlns=GROWTH_MONITORING_XMLNS,
state=XFormInstanceSQL.NORMAL,
).order_by('-received_on').first()
if result:
forms_under_consideration.append(result)
if not forms_under_consideration:
return None
forms_under_consideration.sort(key=lambda form: form.received_on, reverse=True)
return forms_under_consideration[0]