Skip to content

Commit f290fd8

Browse files
Allow unapproved submissions when registering export repeats (#2764)
* allow unapproved submissions when building export columns unapproved submissions are allowed during exports * fix wrong task call
1 parent fb66379 commit f290fd8

File tree

3 files changed

+1
-56
lines changed

3 files changed

+1
-56
lines changed

onadata/apps/logger/models/instance.py

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -884,9 +884,7 @@ def register_export_repeats(sender, instance, created=False, **kwargs):
884884
logger_tasks = importlib.import_module("onadata.apps.logger.tasks")
885885

886886
transaction.on_commit(
887-
lambda: logger_tasks.register_xform_export_repeats_async.delay(
888-
instance.xform.pk
889-
)
887+
lambda: logger_tasks.register_instance_export_repeats_async.delay(instance.pk)
890888
)
891889

892890

onadata/libs/tests/utils/test_logger_tools.py

Lines changed: 0 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,6 @@
2727
EntityList,
2828
Instance,
2929
RegistrationForm,
30-
SubmissionReview,
3130
SurveyType,
3231
XForm,
3332
)
@@ -1307,30 +1306,6 @@ def test_no_repeats(self):
13071306

13081307
self.assertEqual(register.extra_data, {})
13091308

1310-
def test_submission_review_enabled(self):
1311-
"""When submission review is enabled, only approved Instance is registered"""
1312-
self.instance.delete()
1313-
MetaData.submission_review(self.xform, "true") # Enable submission review
1314-
self.instance = Instance.objects.create(
1315-
xml=self.xml, user=self.user, xform=self.xform
1316-
)
1317-
register_instance_export_repeats(self.instance)
1318-
1319-
self.register.refresh_from_db()
1320-
1321-
self.assertEqual(self.register.extra_data, {})
1322-
1323-
# Approve submission
1324-
SubmissionReview.objects.create(
1325-
instance=self.instance, status=SubmissionReview.APPROVED
1326-
)
1327-
1328-
register_instance_export_repeats(self.instance)
1329-
1330-
self.register.refresh_from_db()
1331-
1332-
self.assertEqual(self.register.extra_data.get("hospital_repeat"), 2)
1333-
13341309

13351310
class RegisterXFormExportRepeatsTestCase(TestBase):
13361311
"""Tests for method `register_xform_export_repeats`"""

onadata/libs/utils/logger_tools.py

Lines changed: 0 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -59,7 +59,6 @@
5959
Attachment,
6060
Instance,
6161
RegistrationForm,
62-
SubmissionReview,
6362
XForm,
6463
XFormVersion,
6564
)
@@ -1557,9 +1556,6 @@ def _update_export_repeat_register(instance: Instance, metadata: MetaData) -> No
15571556
:param instance: Instance object
15581557
:param metadata: MetaData object that stores the export repeat register
15591558
"""
1560-
if not _is_submission_approved(instance):
1561-
return
1562-
15631559
repeat_max = _get_instance_repeat_max(instance)
15641560

15651561
for repeat, incoming_max in repeat_max.items():
@@ -1592,30 +1588,6 @@ def _update_export_repeat_register(instance: Instance, metadata: MetaData) -> No
15921588
)
15931589

15941590

1595-
def _is_submission_approved(instance: Instance) -> bool:
1596-
"""Check if a submission has been approved
1597-
1598-
:param instance: Instance object
1599-
:return: True if submission is approved, False otherwise
1600-
"""
1601-
content_type = ContentType.objects.get_for_model(instance.xform)
1602-
is_review_enabled = MetaData.objects.filter(
1603-
content_type=content_type,
1604-
object_id=instance.xform.id,
1605-
data_type="submission_review",
1606-
data_value="true",
1607-
).exists()
1608-
1609-
if not is_review_enabled:
1610-
return True
1611-
1612-
is_submission_approved = SubmissionReview.objects.filter(
1613-
instance_id=instance.id, status=SubmissionReview.APPROVED
1614-
).exists()
1615-
1616-
return is_submission_approved
1617-
1618-
16191591
@transaction.atomic()
16201592
def register_instance_export_repeats(instance: Instance) -> None:
16211593
"""Register an Instance's repeats for export

0 commit comments

Comments
 (0)