From 500d5b7108b4a8deceed61666a58b5e841d1ac98 Mon Sep 17 00:00:00 2001 From: XingY Date: Fri, 6 Feb 2026 11:37:18 -0800 Subject: [PATCH 1/2] Fixed related to converter util refactoring --- api/src/org/labkey/api/util/SubstitutionFormat.java | 13 +++++++++++-- .../query/sql/CalculatedExpressionColumn.java | 6 ++++++ 2 files changed, 17 insertions(+), 2 deletions(-) diff --git a/api/src/org/labkey/api/util/SubstitutionFormat.java b/api/src/org/labkey/api/util/SubstitutionFormat.java index 2cfec0581e0..1dc46cf36f9 100644 --- a/api/src/org/labkey/api/util/SubstitutionFormat.java +++ b/api/src/org/labkey/api/util/SubstitutionFormat.java @@ -82,8 +82,17 @@ public Object format(Object value) return defaultTimeFormat.format(value); else if (value instanceof java.sql.Date) return date.format(value); - else if (value instanceof Date) - return defaultDateTimeFormat.format(value).replace('T', ' '); // replace T with whitespace for human readability + else if (value instanceof Date dateVal) + { + // both date and datetime column type are of type Date, format based on time portion of the date value + LocalDateTime ldt = LocalDateTime.ofInstant(dateVal.toInstant(), ZoneId.systemDefault()); + boolean isDateOnly = ldt.toLocalTime().equals(java.time.LocalTime.MIDNIGHT); + + if (isDateOnly) + return date.format(value); + else + return defaultDateTimeFormat.format(value).replace('T', ' '); // replace T with whitespace for human readability + } return value; } diff --git a/query/src/org/labkey/query/sql/CalculatedExpressionColumn.java b/query/src/org/labkey/query/sql/CalculatedExpressionColumn.java index 0d0664a5db4..14d839177c7 100644 --- a/query/src/org/labkey/query/sql/CalculatedExpressionColumn.java +++ b/query/src/org/labkey/query/sql/CalculatedExpressionColumn.java @@ -1,5 +1,6 @@ package org.labkey.query.sql; +import org.apache.commons.beanutils.ConversionException; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; import org.labkey.api.data.AbstractTableInfo; @@ -371,6 +372,11 @@ private QExpr getBoundExpression(Map columnMap) return _boundExpr; } + @Override + public Object convert(Object o) throws ConversionException + { + return o; + } /* * TESTS From 4ef58080022e7ad56c920402fca6c51b1f3f0234 Mon Sep 17 00:00:00 2001 From: XingY Date: Fri, 6 Feb 2026 16:59:57 -0800 Subject: [PATCH 2/2] Fix mvfk input --- api/src/org/labkey/api/data/DataColumn.java | 2 ++ 1 file changed, 2 insertions(+) diff --git a/api/src/org/labkey/api/data/DataColumn.java b/api/src/org/labkey/api/data/DataColumn.java index 1f00b198a08..cdba9ac1d87 100644 --- a/api/src/org/labkey/api/data/DataColumn.java +++ b/api/src/org/labkey/api/data/DataColumn.java @@ -742,6 +742,8 @@ else if (_inputType.equalsIgnoreCase("checkbox")) private void renderSelectFormInput(HtmlWriter out, String formFieldName, Object value, List strValues, boolean disabledInput, NamedObjectList entryList) { boolean isMultiple = "select.multiple".equalsIgnoreCase(_inputType); + if (isMultiple && !formFieldName.startsWith(MultiChoice.ARRAY_MARKER)) + formFieldName = MultiChoice.ARRAY_MARKER + formFieldName; SelectBuilder select = new SelectBuilder() .disabled(disabledInput) .multiple(isMultiple)