diff --git a/qqq-backend-core/src/main/java/com/kingsrook/qqq/backend/core/actions/values/QValueFormatter.java b/qqq-backend-core/src/main/java/com/kingsrook/qqq/backend/core/actions/values/QValueFormatter.java index fab61595..d5704252 100644 --- a/qqq-backend-core/src/main/java/com/kingsrook/qqq/backend/core/actions/values/QValueFormatter.java +++ b/qqq-backend-core/src/main/java/com/kingsrook/qqq/backend/core/actions/values/QValueFormatter.java @@ -68,7 +68,7 @@ public class QValueFormatter *******************************************************************************/ public static String formatValue(QFieldMetaData field, Serializable value) { - return (formatValue(field.getDisplayFormat(), field.getName(), value)); + return (formatValue(field.getDisplayFormat(), field.getType(), field.getName(), value)); } @@ -78,7 +78,7 @@ public class QValueFormatter *******************************************************************************/ public static String formatValue(String displayFormat, Serializable value) { - return (formatValue(displayFormat, "", value)); + return (formatValue(displayFormat, null, "", value)); } @@ -87,7 +87,7 @@ public class QValueFormatter ** For a display format string, an optional fieldName (only used for logging), ** and a value, apply the format. *******************************************************************************/ - private static String formatValue(String displayFormat, String fieldName, Serializable value) + private static String formatValue(String displayFormat, QFieldType fieldType, String fieldName, Serializable value) { ////////////////////////////////// // null values get null results // @@ -107,6 +107,11 @@ public class QValueFormatter return formatBoolean(b); } + if(QFieldType.BOOLEAN.equals(fieldType)) + { + return formatBoolean(ValueUtils.getValueAsBoolean(value)); + } + if(value instanceof LocalTime lt) { return formatLocalTime(lt); @@ -404,6 +409,7 @@ public class QValueFormatter } + /******************************************************************************* ** For a single record, set its display values - where caller (meant to stay private) ** can specify if they've already done fieldBehaviors (to avoid re-doing). diff --git a/qqq-backend-core/src/test/java/com/kingsrook/qqq/backend/core/actions/values/QValueFormatterTest.java b/qqq-backend-core/src/test/java/com/kingsrook/qqq/backend/core/actions/values/QValueFormatterTest.java index 8760b0fb..cd678974 100644 --- a/qqq-backend-core/src/test/java/com/kingsrook/qqq/backend/core/actions/values/QValueFormatterTest.java +++ b/qqq-backend-core/src/test/java/com/kingsrook/qqq/backend/core/actions/values/QValueFormatterTest.java @@ -36,10 +36,10 @@ import com.kingsrook.qqq.backend.core.BaseTest; import com.kingsrook.qqq.backend.core.context.QContext; import com.kingsrook.qqq.backend.core.model.data.QRecord; import com.kingsrook.qqq.backend.core.model.metadata.QInstance; +import com.kingsrook.qqq.backend.core.model.metadata.fields.DateTimeDisplayValueBehavior; import com.kingsrook.qqq.backend.core.model.metadata.fields.DisplayFormat; import com.kingsrook.qqq.backend.core.model.metadata.fields.QFieldMetaData; import com.kingsrook.qqq.backend.core.model.metadata.fields.QFieldType; -import com.kingsrook.qqq.backend.core.model.metadata.fields.DateTimeDisplayValueBehavior; import com.kingsrook.qqq.backend.core.model.metadata.tables.QTableMetaData; import com.kingsrook.qqq.backend.core.utils.TestUtils; import org.junit.jupiter.api.Test; @@ -89,6 +89,10 @@ class QValueFormatterTest extends BaseTest assertNull(QValueFormatter.formatValue(new QFieldMetaData().withType(QFieldType.BOOLEAN), null)); assertEquals("Yes", QValueFormatter.formatValue(new QFieldMetaData().withType(QFieldType.BOOLEAN), true)); assertEquals("No", QValueFormatter.formatValue(new QFieldMetaData().withType(QFieldType.BOOLEAN), false)); + assertEquals("Yes", QValueFormatter.formatValue(new QFieldMetaData().withType(QFieldType.BOOLEAN), "true")); + assertEquals("No", QValueFormatter.formatValue(new QFieldMetaData().withType(QFieldType.BOOLEAN), "false")); + assertEquals("true", QValueFormatter.formatValue(new QFieldMetaData().withType(QFieldType.STRING), "true")); + assertEquals("false", QValueFormatter.formatValue(new QFieldMetaData().withType(QFieldType.STRING), "false")); assertNull(QValueFormatter.formatValue(new QFieldMetaData().withType(QFieldType.TIME), null)); assertEquals("5:00:00 AM", QValueFormatter.formatValue(new QFieldMetaData().withType(QFieldType.TIME), LocalTime.of(5, 0)));