from pathlib import Path base = Path(r"d:/Projects/Ai-DOP/SourceCode/references/Admin.NET/Web/src/views/aidop/kanban") # S1 p = base/'s1.vue'; t = p.read_text(encoding='utf-8') t = t.replace("import { homeS1 } from './data/homeModulesSync'", "import { homeS1, loadHomeModuleMetrics } from './data/homeModulesSync'") t = t.replace("onMounted(() => {", "onMounted(async () => {\n await loadHomeModuleMetrics()") p.write_text(t, encoding='utf-8') # S2 p = base/'s2.vue'; t = p.read_text(encoding='utf-8') t = t.replace("import { s2DetailTopCards, s2TrendSeries } from './data/s2Kpis'", "import { s2DetailTopCards, s2TrendSeries, loadS2Kpis } from './data/s2Kpis'") t = t.replace("onMounted(() => {", "onMounted(async () => {\n await loadS2Kpis()") p.write_text(t, encoding='utf-8') # S3..S7 for name in ['s3.vue','s4.vue','s5.vue','s6.vue','s7.vue']: p = base/name; t = p.read_text(encoding='utf-8') t = t.replace("from './data/homeModulesSync'", "from './data/homeModulesSync'") if "loadHomeModuleMetrics" not in t: t = t.replace("from './data/homeModulesSync'", "from './data/homeModulesSync'\nimport { loadHomeModuleMetrics } from './data/homeModulesSync'") t = t.replace("onMounted(() => {", "onMounted(async () => {\n await loadHomeModuleMetrics()") p.write_text(t, encoding='utf-8') # Home dashboard uses same source p = Path(r"d:/Projects/Ai-DOP/SourceCode/references/Admin.NET/Web/src/views/dashboard/home.vue") t = p.read_text(encoding='utf-8') if "loadHomeModuleMetrics" not in t: t = t.replace("} from './data/homeModulesSync'", " ,loadHomeModuleMetrics\n} from './data/homeModulesSync'") if "loadS2Kpis" not in t: t = t.replace("import { s2HomeKpiList } from './data/s2Kpis'", "import { s2HomeKpiList, loadS2Kpis } from './data/s2Kpis'") t = t.replace(" loadKanbanData()", " await loadHomeModuleMetrics()\n await loadS2Kpis()\n loadKanbanData()") t = t.replace("onMounted(() => {", "onMounted(async () => {") p.write_text(t, encoding='utf-8') print('patched kanban pages for db loading')