diff --git a/android/engine/src/main/java/org/smartregister/fhircore/engine/util/extension/ResourceExtension.kt b/android/engine/src/main/java/org/smartregister/fhircore/engine/util/extension/ResourceExtension.kt index bc913c92c6..268daa90bc 100644 --- a/android/engine/src/main/java/org/smartregister/fhircore/engine/util/extension/ResourceExtension.kt +++ b/android/engine/src/main/java/org/smartregister/fhircore/engine/util/extension/ResourceExtension.kt @@ -204,7 +204,7 @@ fun List.generateMissingItems( */ fun List.prepareQuestionsForReadingOrEditing( path: String = "QuestionnaireResponse.item", - readOnly: Boolean = false, + readOnly: Boolean, readOnlyLinkIds: List? = emptyList(), ) { forEach { item -> diff --git a/android/engine/src/test/java/org/smartregister/fhircore/engine/util/extension/ResourceExtensionTest.kt b/android/engine/src/test/java/org/smartregister/fhircore/engine/util/extension/ResourceExtensionTest.kt index b2526c0af6..75557501b5 100644 --- a/android/engine/src/test/java/org/smartregister/fhircore/engine/util/extension/ResourceExtensionTest.kt +++ b/android/engine/src/test/java/org/smartregister/fhircore/engine/util/extension/ResourceExtensionTest.kt @@ -734,7 +734,7 @@ class ResourceExtensionTest : RobolectricTest() { type = Questionnaire.QuestionnaireItemType.GROUP }, ) - questionnaire.item.prepareQuestionsForReadingOrEditing("", true) + questionnaire.item.prepareQuestionsForReadingOrEditing("", true, readOnlyLinkIds = listOf("1")) Assert.assertTrue(questionnaire.item[0].readOnly) Assert.assertFalse(questionnaire.item[1].readOnly) @@ -751,7 +751,11 @@ class ResourceExtensionTest : RobolectricTest() { }, ) questionnaire.item.add(Questionnaire.QuestionnaireItemComponent().apply { linkId = "3" }) - questionnaire.item.prepareQuestionsForReadingOrEditing("", readOnlyLinkIds = listOf("3")) + questionnaire.item.prepareQuestionsForReadingOrEditing( + "", + readOnly = false, + readOnlyLinkIds = listOf("3"), + ) Assert.assertFalse(questionnaire.item[0].readOnly) Assert.assertTrue(questionnaire.item[1].readOnly) diff --git a/android/quest/src/main/java/org/smartregister/fhircore/quest/ui/questionnaire/QuestionnaireViewModel.kt b/android/quest/src/main/java/org/smartregister/fhircore/quest/ui/questionnaire/QuestionnaireViewModel.kt index 22ea7e0bfd..3c6f6ad420 100644 --- a/android/quest/src/main/java/org/smartregister/fhircore/quest/ui/questionnaire/QuestionnaireViewModel.kt +++ b/android/quest/src/main/java/org/smartregister/fhircore/quest/ui/questionnaire/QuestionnaireViewModel.kt @@ -155,7 +155,7 @@ constructor( defaultRepository.loadResource(questionnaireConfig.id)?.apply { if (questionnaireConfig.isReadOnly() || questionnaireConfig.isEditable()) { item.prepareQuestionsForReadingOrEditing( - readOnly = questionnaireConfig.isReadOnly(), + readOnly = questionnaireConfig.isReadOnly() || questionnaireConfig.isEditable(), readOnlyLinkIds = questionnaireConfig.readOnlyLinkIds ?: questionnaireConfig.linkIds