CE-1068 - Add recordOfValues, with display values for PVSes

This commit is contained in:
2024-04-30 14:43:17 -05:00
parent d417c2c93a
commit 5c0b1ea2c3
2 changed files with 60 additions and 1 deletions

View File

@ -23,6 +23,7 @@ package com.kingsrook.qqq.backend.core.model.dashboard.widgets;
import java.util.List;
import com.kingsrook.qqq.backend.core.model.data.QRecord;
import com.kingsrook.qqq.backend.core.model.metadata.fields.QFieldMetaData;
@ -33,6 +34,12 @@ public class DynamicFormWidgetData extends QWidgetData
{
private List<QFieldMetaData> fieldList;
/////////////////////////////////////////////////////////////////////
// values for the fields - //
// use a QRecord, so we can do "richer" things, like DisplayValues //
/////////////////////////////////////////////////////////////////////
private QRecord recordOfFieldValues;
/////////////////////////////////////////////////////
// if there are no fields, what message to display //
/////////////////////////////////////////////////////
@ -147,4 +154,35 @@ public class DynamicFormWidgetData extends QWidgetData
return (this);
}
/*******************************************************************************
** Getter for recordOfFieldValues
*******************************************************************************/
public QRecord getRecordOfFieldValues()
{
return (this.recordOfFieldValues);
}
/*******************************************************************************
** Setter for recordOfFieldValues
*******************************************************************************/
public void setRecordOfFieldValues(QRecord recordOfFieldValues)
{
this.recordOfFieldValues = recordOfFieldValues;
}
/*******************************************************************************
** Fluent setter for recordOfFieldValues
*******************************************************************************/
public DynamicFormWidgetData withRecordOfFieldValues(QRecord recordOfFieldValues)
{
this.recordOfFieldValues = recordOfFieldValues;
return (this);
}
}

View File

@ -28,6 +28,7 @@ import java.util.List;
import java.util.Map;
import com.kingsrook.qqq.backend.core.actions.dashboard.widgets.AbstractWidgetRenderer;
import com.kingsrook.qqq.backend.core.actions.tables.GetAction;
import com.kingsrook.qqq.backend.core.actions.values.QPossibleValueTranslator;
import com.kingsrook.qqq.backend.core.context.QContext;
import com.kingsrook.qqq.backend.core.exceptions.QException;
import com.kingsrook.qqq.backend.core.logging.QLogger;
@ -57,6 +58,7 @@ public class ReportValuesDynamicFormWidgetRenderer extends AbstractWidgetRendere
{
private static final QLogger LOG = QLogger.getLogger(ReportValuesDynamicFormWidgetRenderer.class);
private QPossibleValueTranslator qPossibleValueTranslator;
/*******************************************************************************
@ -104,6 +106,8 @@ public class ReportValuesDynamicFormWidgetRenderer extends AbstractWidgetRendere
return new RenderWidgetOutput(widgetData);
}
QRecord recordOfFieldValues = new QRecord();
if(StringUtils.hasContent(savedReport.getQueryFilterJson()))
{
QQueryFilter queryFilter = SavedReportToReportMetaDataAdapter.getQQueryFilter(savedReport.getQueryFilterJson());
@ -144,7 +148,23 @@ public class ReportValuesDynamicFormWidgetRenderer extends AbstractWidgetRendere
if(defaultValues.containsKey(fieldName))
{
fieldMetaData.setDefaultValue(defaultValues.get(fieldName));
String value = defaultValues.get(fieldName);
fieldMetaData.setDefaultValue(value);
recordOfFieldValues.setValue(fieldName, value);
//////////////////////////////////////////////////////
// look up display values for possible value fields //
//////////////////////////////////////////////////////
if(StringUtils.hasContent(fieldMetaData.getPossibleValueSourceName()))
{
if(qPossibleValueTranslator == null)
{
qPossibleValueTranslator = new QPossibleValueTranslator();
}
String displayValue = qPossibleValueTranslator.translatePossibleValue(fieldMetaData, value);
recordOfFieldValues.setDisplayValue(fieldName, displayValue);
}
}
fieldList.add(fieldMetaData);
@ -156,6 +176,7 @@ public class ReportValuesDynamicFormWidgetRenderer extends AbstractWidgetRendere
///////////////////////////////////
DynamicFormWidgetData widgetData = new DynamicFormWidgetData();
widgetData.setFieldList(fieldList);
widgetData.setRecordOfFieldValues(recordOfFieldValues);
widgetData.setMergedDynamicFormValuesIntoFieldName("inputValues");
if(CollectionUtils.nullSafeIsEmpty(fieldList))