From 7098bafefdc1ded7de1ea1d9c48413cccfab5cac Mon Sep 17 00:00:00 2001 From: bbimber Date: Fri, 19 Sep 2025 14:06:06 -0700 Subject: [PATCH 1/4] Clean up trigger/customizer layer code --- .../ldk/query/DefaultTableCustomizer.java | 28 +++++++++++++------ 1 file changed, 20 insertions(+), 8 deletions(-) diff --git a/LDK/src/org/labkey/ldk/query/DefaultTableCustomizer.java b/LDK/src/org/labkey/ldk/query/DefaultTableCustomizer.java index c49ec53d..37b517a8 100644 --- a/LDK/src/org/labkey/ldk/query/DefaultTableCustomizer.java +++ b/LDK/src/org/labkey/ldk/query/DefaultTableCustomizer.java @@ -118,13 +118,19 @@ private void setDetailsUrl(AbstractTableInfo ti) } String schemaName = ti.getUserSchema().getSchemaName(); - assert schemaName != null; - String queryName = ti.getPublicName(); - assert queryName != null; + if (queryName == null) + { + _log.error("TableInfo.getPublicName() was null", new Exception()); + return; + } List keyFields = ti.getPkColumnNames(); - assert !keyFields.isEmpty() : "No key fields found for the table: " + ti.getPublicSchemaName() + "." + ti.getPublicName(); + if (keyFields.isEmpty()) + { + _log.error("No key fields found for the table: " + ti.getPublicSchemaName() + "." + ti.getPublicName()); + return; + } if (_settings.getPrimaryKeyField() != null) { @@ -169,13 +175,19 @@ else if (_settings.isSetEditLinkOverrides()) { //otherwise apply custom urls String schemaName = ti.getUserSchema().getSchemaName(); - assert schemaName != null; - String queryName = ti.getPublicName(); - assert queryName != null; + if (queryName == null) + { + _log.error("TableInfo.getPublicName() was null", new Exception()); + return; + } List keyFields = ti.getPkColumnNames(); - assert !keyFields.isEmpty() : "No key fields found for the table: " + ti.getPublicSchemaName() + "." + ti.getPublicName(); + if (keyFields.isEmpty()) + { + _log.error("No key fields found for the table: " + ti.getPublicSchemaName() + "." + ti.getPublicName()); + return; + } if (_settings.getPrimaryKeyField() != null) { From e0c5f377b887046bf87551552356b351878efdc9 Mon Sep 17 00:00:00 2001 From: bbimber Date: Fri, 19 Sep 2025 15:08:14 -0700 Subject: [PATCH 2/4] Reduce logging --- .../org/labkey/ldk/query/DefaultTableCustomizer.java | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/LDK/src/org/labkey/ldk/query/DefaultTableCustomizer.java b/LDK/src/org/labkey/ldk/query/DefaultTableCustomizer.java index 37b517a8..2b16fa5b 100644 --- a/LDK/src/org/labkey/ldk/query/DefaultTableCustomizer.java +++ b/LDK/src/org/labkey/ldk/query/DefaultTableCustomizer.java @@ -128,7 +128,7 @@ private void setDetailsUrl(AbstractTableInfo ti) List keyFields = ti.getPkColumnNames(); if (keyFields.isEmpty()) { - _log.error("No key fields found for the table: " + ti.getPublicSchemaName() + "." + ti.getPublicName()); + _log.debug("No key fields found for the table, cannot set details URL: " + ti.getPublicSchemaName() + "." + ti.getPublicName()); return; } @@ -185,7 +185,13 @@ else if (_settings.isSetEditLinkOverrides()) List keyFields = ti.getPkColumnNames(); if (keyFields.isEmpty()) { - _log.error("No key fields found for the table: " + ti.getPublicSchemaName() + "." + ti.getPublicName()); + // There does not seem to be a more direct test for 'is editable' + if (ti.getUpdateService() == null) + { + return; + } + + _log.debug("No key fields found for the table, cannot customize edit UI: " + ti.getPublicSchemaName() + "." + ti.getPublicName()); return; } From 73a36f0913bbeeb7eb237643c0c26b23156fb706 Mon Sep 17 00:00:00 2001 From: bbimber Date: Sat, 4 Oct 2025 07:44:18 -0700 Subject: [PATCH 3/4] Build short delay into github triggers to aid cross-repo commits --- .github/workflows/build.yml | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 5816605b..26976a1e 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -10,6 +10,11 @@ jobs: if: github.repository == 'BimberLabInternal/LabDevKitModules' runs-on: ubuntu-latest steps: + # Note: use slight delay in case there are associated commits across repos + - name: "Sleep for 30 seconds" + run: sleep 30s + shell: bash + - name: "Build DISCVR" uses: bimberlabinternal/DevOps/githubActions/discvr-build@master with: From 798808bf5e142cdaae8da8c88561f854d8272e04 Mon Sep 17 00:00:00 2001 From: bbimber Date: Fri, 14 Nov 2025 12:30:14 -0800 Subject: [PATCH 4/4] Add manage freezer button and expand TagPcrSummaryStep --- laboratory/src/org/labkey/laboratory/LaboratoryModule.java | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/laboratory/src/org/labkey/laboratory/LaboratoryModule.java b/laboratory/src/org/labkey/laboratory/LaboratoryModule.java index 6cb8a7d8..d4e111b1 100644 --- a/laboratory/src/org/labkey/laboratory/LaboratoryModule.java +++ b/laboratory/src/org/labkey/laboratory/LaboratoryModule.java @@ -197,6 +197,10 @@ protected void doStartupAfterSpringConfig(ModuleContext moduleContext) LDKService.get().registerQueryButton(btn4, LaboratoryModule.SCHEMA_NAME, LaboratorySchema.TABLE_SAMPLES); LDKService.get().registerQueryButton(new ShowBulkEditButton(this, LaboratoryModule.SCHEMA_NAME, LaboratorySchema.TABLE_SAMPLES), LaboratoryModule.SCHEMA_NAME, LaboratorySchema.TABLE_SAMPLES); + + SimpleButtonConfigFactory btn5 = new SimpleButtonConfigFactory(this, "Manage Freezers", DetailsURL.fromString("/query/executeQuery.view?schemaName=laboratory&query.queryName=freezers")); + btn5.setPermission(LaboratoryAdminPermission.class); + LDKService.get().registerQueryButton(btn5, LaboratoryModule.SCHEMA_NAME, LaboratorySchema.TABLE_SAMPLES); } @Override