From 20c0ef92e77ead897afbc5410a72e3b448b1249c Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Thu, 10 Sep 2026 18:54:47 +0000 Subject: [PATCH] fix(android): root field inventory at inspection Yacimiento --- .../f6-1-android-yacimiento-root.yml | 68 ------------------- .../korexlabs/dhinspeccion/MainViewModel.kt | 10 +-- .../korexlabs/dhinspeccion/data/DhMobile.kt | 1 + 3 files changed, 6 insertions(+), 73 deletions(-) delete mode 100644 .github/workflows/f6-1-android-yacimiento-root.yml diff --git a/.github/workflows/f6-1-android-yacimiento-root.yml b/.github/workflows/f6-1-android-yacimiento-root.yml deleted file mode 100644 index 54fa6da..0000000 --- a/.github/workflows/f6-1-android-yacimiento-root.yml +++ /dev/null @@ -1,68 +0,0 @@ -name: F6.1 Android Yacimiento root - -on: - push: - branches: - - 'hotfix/f6-1-inspection-planning-hierarchy' - paths: - - '.github/workflows/f6-1-android-yacimiento-root.yml' - -permissions: - contents: write - -jobs: - apply: - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v4 - with: - ref: hotfix/f6-1-inspection-planning-hierarchy - fetch-depth: 0 - - - name: Align Android field root with frozen Yacimiento scope - run: | - python - <<'PY' - from pathlib import Path - - dh = Path('android-app/app/src/main/java/com/korexlabs/dhinspeccion/data/DhMobile.kt') - text = dh.read_text() - before = '''data class VisitDetail(\n val id: String,\n val code: String,\n val objective: String? = null,\n val status: String,\n val operationalArea: AssetSummary? = null,''' - after = '''data class VisitDetail(\n val id: String,\n val code: String,\n val objective: String? = null,\n val status: String,\n val scopeAsset: AssetSummary? = null,\n val operationalArea: AssetSummary? = null,''' - if text.count(before) != 1: - raise SystemExit(f'VisitDetail insertion: {text.count(before)}') - dh.write_text(text.replace(before, after)) - - vm = Path('android-app/app/src/main/java/com/korexlabs/dhinspeccion/MainViewModel.kt') - text = vm.read_text() - replacements = { - 'inventoryParentId = visit?.operationalArea?.id': 'inventoryParentId = visit?.scopeAsset?.id ?: visit?.operationalArea?.id', - 'val effectiveParentId = parentId ?: inventoryParentId ?: currentVisit.operationalArea?.id': 'val effectiveParentId = parentId ?: inventoryParentId ?: currentVisit.scopeAsset?.id ?: currentVisit.operationalArea?.id', - 'val effectiveParentId = parentId ?: currentVisit.operationalArea?.id': 'val effectiveParentId = parentId ?: currentVisit.scopeAsset?.id ?: currentVisit.operationalArea?.id', - 'val effectiveParentId = inventoryParentId ?: visit?.operationalArea?.id': 'val effectiveParentId = inventoryParentId ?: visit?.scopeAsset?.id ?: visit?.operationalArea?.id', - } - for before, after in replacements.items(): - count = text.count(before) - if count < 1: - raise SystemExit(f'MainViewModel root missing: {before}') - text = text.replace(before, after) - vm.write_text(text) - - Path('.github/workflows/f6-1-android-yacimiento-root.yml').unlink() - PY - - - name: Verify Android root contract - run: | - set -Eeuo pipefail - grep -Fq 'val scopeAsset: AssetSummary? = null' android-app/app/src/main/java/com/korexlabs/dhinspeccion/data/DhMobile.kt - grep -Fq 'currentVisit.scopeAsset?.id ?: currentVisit.operationalArea?.id' android-app/app/src/main/java/com/korexlabs/dhinspeccion/MainViewModel.kt - grep -Fq 'visit?.scopeAsset?.id ?: visit?.operationalArea?.id' android-app/app/src/main/java/com/korexlabs/dhinspeccion/MainViewModel.kt - - - name: Commit Android scope fix - run: | - set -Eeuo pipefail - git config user.name 'github-actions[bot]' - git config user.email '41898282+github-actions[bot]@users.noreply.github.com' - git add android-app .github/workflows/f6-1-android-yacimiento-root.yml - git diff --cached --check - git commit -m 'fix(android): root field inventory at inspection Yacimiento' - git push origin HEAD:hotfix/f6-1-inspection-planning-hierarchy diff --git a/android-app/app/src/main/java/com/korexlabs/dhinspeccion/MainViewModel.kt b/android-app/app/src/main/java/com/korexlabs/dhinspeccion/MainViewModel.kt index 788f56a..6dc020d 100644 --- a/android-app/app/src/main/java/com/korexlabs/dhinspeccion/MainViewModel.kt +++ b/android-app/app/src/main/java/com/korexlabs/dhinspeccion/MainViewModel.kt @@ -115,7 +115,7 @@ class MainViewModel(application: Application) : AndroidViewModel(application) { fun openVisit(id: String) = launchBusy { visit = repository.visit(id) inventory = emptyList() - inventoryParentId = visit?.operationalArea?.id + inventoryParentId = visit?.scopeAsset?.id ?: visit?.operationalArea?.id fieldTypes = emptyList() selectedFieldAsset = null clearFindingState() @@ -137,7 +137,7 @@ class MainViewModel(application: Application) : AndroidViewModel(application) { val id = visit?.id ?: return launchBusy { visit = repository.startVisit(id) - inventoryParentId = visit?.operationalArea?.id + inventoryParentId = visit?.scopeAsset?.id ?: visit?.operationalArea?.id notice = "Inspección iniciada." loadActsInternal(id, selectDraft = true) loadVisitsInternal() @@ -197,7 +197,7 @@ class MainViewModel(application: Application) : AndroidViewModel(application) { fun searchInventory(search: String, parentId: String? = null) { val currentVisit = visit ?: return launchBusy { - val effectiveParentId = parentId ?: inventoryParentId ?: currentVisit.operationalArea?.id + val effectiveParentId = parentId ?: inventoryParentId ?: currentVisit.scopeAsset?.id ?: currentVisit.operationalArea?.id inventory = repository.fieldInventory(currentVisit.id, search, effectiveParentId).data } } @@ -205,7 +205,7 @@ class MainViewModel(application: Application) : AndroidViewModel(application) { fun loadFieldTypes(parentId: String? = null) { val currentVisit = visit ?: return launchBusy { - val effectiveParentId = parentId ?: currentVisit.operationalArea?.id + val effectiveParentId = parentId ?: currentVisit.scopeAsset?.id ?: currentVisit.operationalArea?.id inventoryParentId = effectiveParentId fieldTypes = repository.fieldTypes(currentVisit.id, parentId).data inventory = repository.fieldInventory(currentVisit.id, null, effectiveParentId).data @@ -213,7 +213,7 @@ class MainViewModel(application: Application) : AndroidViewModel(application) { } private suspend fun reloadCurrentInventory(visitId: String) { - val effectiveParentId = inventoryParentId ?: visit?.operationalArea?.id + val effectiveParentId = inventoryParentId ?: visit?.scopeAsset?.id ?: visit?.operationalArea?.id inventory = repository.fieldInventory(visitId, null, effectiveParentId).data } diff --git a/android-app/app/src/main/java/com/korexlabs/dhinspeccion/data/DhMobile.kt b/android-app/app/src/main/java/com/korexlabs/dhinspeccion/data/DhMobile.kt index b7e5eec..72fe9cd 100644 --- a/android-app/app/src/main/java/com/korexlabs/dhinspeccion/data/DhMobile.kt +++ b/android-app/app/src/main/java/com/korexlabs/dhinspeccion/data/DhMobile.kt @@ -154,6 +154,7 @@ data class VisitDetail( val code: String, val objective: String? = null, val status: String, + val scopeAsset: AssetSummary? = null, val operationalArea: AssetSummary? = null, val operatorCompany: AssetSummary? = null, val leadInspector: PersonSummary? = null,