Skip to content

Commit

Permalink
allow unapproved submissions when building export columns
Browse files Browse the repository at this point in the history
unapproved submissions are allowed during exports
  • Loading branch information
kelvin-muchiri committed Jan 21, 2025
1 parent fdcd541 commit 5c0278b
Show file tree
Hide file tree
Showing 2 changed files with 0 additions and 91 deletions.
63 changes: 0 additions & 63 deletions onadata/libs/tests/utils/test_logger_tools.py
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,6 @@
EntityList,
Instance,
RegistrationForm,
SubmissionReview,
SurveyType,
XForm,
)
Expand Down Expand Up @@ -1281,68 +1280,6 @@ def test_register_not_found(self):
exists = MetaData.objects.filter(data_type="export_columns_register").exists()
self.assertFalse(exists)

def test_submission_review_enabled(self):
"""When submission review is enabled, only approved Instance is registered"""
self.instance.delete()
MetaData.submission_review(self.xform, "true") # Enable submission review
self.instance = Instance.objects.create(
xml=self.xml, user=self.user, xform=self.xform
)
register_instance_export_columns(self.instance)

self.register.refresh_from_db()

ordered_columns = json.loads(
self.register.extra_data, object_pairs_hook=OrderedDict
)
expected_columns = OrderedDict(
[
(
"hospital_repeat",
[],
),
(
"hospital_repeat/child_repeat",
[],
),
("meta/instanceID", None),
]
)
self.assertEqual(ordered_columns, expected_columns)

# Approve submission
SubmissionReview.objects.create(
instance=self.instance, status=SubmissionReview.APPROVED
)

register_instance_export_columns(self.instance)

self.register.refresh_from_db()

ordered_columns = json.loads(
self.register.extra_data, object_pairs_hook=OrderedDict
)
expected_columns = OrderedDict(
[
(
"hospital_repeat",
["hospital_repeat[1]/hospital", "hospital_repeat[2]/hospital"],
),
(
"hospital_repeat/child_repeat",
[
"hospital_repeat[1]/child_repeat[1]/name",
"hospital_repeat[1]/child_repeat[1]/birthweight",
"hospital_repeat[1]/child_repeat[2]/name",
"hospital_repeat[1]/child_repeat[2]/birthweight",
"hospital_repeat[2]/child_repeat[1]/name",
"hospital_repeat[2]/child_repeat[1]/birthweight",
],
),
("meta/instanceID", None),
]
)


class RegisterXFormExportColumnsTestCase(TestBase):
"""Tests for method `register_xform_export_columns`"""
Expand Down
28 changes: 0 additions & 28 deletions onadata/libs/utils/logger_tools.py
Original file line number Diff line number Diff line change
Expand Up @@ -61,7 +61,6 @@
Attachment,
Instance,
RegistrationForm,
SubmissionReview,
XForm,
XFormVersion,
)
Expand Down Expand Up @@ -1533,9 +1532,6 @@ def _update_export_columns_register(instance: Instance, metadata: MetaData) -> N
:param instance: Instance object
:param metadata: MetaData object that stores the export repeat register
"""
if not _is_submission_approved(instance):
return

# Avoid cyclic import by using importlib
csv_builder = importlib.import_module("onadata.libs.utils.csv_builder")

Expand Down Expand Up @@ -1566,30 +1562,6 @@ def _update_export_columns_register(instance: Instance, metadata: MetaData) -> N
metadata.save()


def _is_submission_approved(instance: Instance) -> bool:
"""Check if a submission has been approved
:param instance: Instance object
:return: True if submission is approved, False otherwise
"""
content_type = ContentType.objects.get_for_model(instance.xform)
is_review_enabled = MetaData.objects.filter(
content_type=content_type,
object_id=instance.xform.id,
data_type="submission_review",
data_value="true",
).exists()

if not is_review_enabled:
return True

is_submission_approved = SubmissionReview.objects.filter(
instance_id=instance.id, status=SubmissionReview.APPROVED
).exists()

return is_submission_approved


@transaction.atomic()
def register_instance_export_columns(instance: Instance) -> None:
"""Register an Instance's export columns
Expand Down

0 comments on commit 5c0278b

Please sign in to comment.