mirror of
https://github.com/Kingsrook/qqq.git
synced 2025-07-18 05:01:07 +00:00
CE-1068 - Add recordOfValues, with display values for PVSes
This commit is contained in:
@ -23,6 +23,7 @@ package com.kingsrook.qqq.backend.core.model.dashboard.widgets;
|
|||||||
|
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
import com.kingsrook.qqq.backend.core.model.data.QRecord;
|
||||||
import com.kingsrook.qqq.backend.core.model.metadata.fields.QFieldMetaData;
|
import com.kingsrook.qqq.backend.core.model.metadata.fields.QFieldMetaData;
|
||||||
|
|
||||||
|
|
||||||
@ -33,6 +34,12 @@ public class DynamicFormWidgetData extends QWidgetData
|
|||||||
{
|
{
|
||||||
private List<QFieldMetaData> fieldList;
|
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 //
|
// if there are no fields, what message to display //
|
||||||
/////////////////////////////////////////////////////
|
/////////////////////////////////////////////////////
|
||||||
@ -147,4 +154,35 @@ public class DynamicFormWidgetData extends QWidgetData
|
|||||||
return (this);
|
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);
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -28,6 +28,7 @@ import java.util.List;
|
|||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
import com.kingsrook.qqq.backend.core.actions.dashboard.widgets.AbstractWidgetRenderer;
|
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.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.context.QContext;
|
||||||
import com.kingsrook.qqq.backend.core.exceptions.QException;
|
import com.kingsrook.qqq.backend.core.exceptions.QException;
|
||||||
import com.kingsrook.qqq.backend.core.logging.QLogger;
|
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 static final QLogger LOG = QLogger.getLogger(ReportValuesDynamicFormWidgetRenderer.class);
|
||||||
|
|
||||||
|
private QPossibleValueTranslator qPossibleValueTranslator;
|
||||||
|
|
||||||
|
|
||||||
/*******************************************************************************
|
/*******************************************************************************
|
||||||
@ -104,6 +106,8 @@ public class ReportValuesDynamicFormWidgetRenderer extends AbstractWidgetRendere
|
|||||||
return new RenderWidgetOutput(widgetData);
|
return new RenderWidgetOutput(widgetData);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
QRecord recordOfFieldValues = new QRecord();
|
||||||
|
|
||||||
if(StringUtils.hasContent(savedReport.getQueryFilterJson()))
|
if(StringUtils.hasContent(savedReport.getQueryFilterJson()))
|
||||||
{
|
{
|
||||||
QQueryFilter queryFilter = SavedReportToReportMetaDataAdapter.getQQueryFilter(savedReport.getQueryFilterJson());
|
QQueryFilter queryFilter = SavedReportToReportMetaDataAdapter.getQQueryFilter(savedReport.getQueryFilterJson());
|
||||||
@ -144,7 +148,23 @@ public class ReportValuesDynamicFormWidgetRenderer extends AbstractWidgetRendere
|
|||||||
|
|
||||||
if(defaultValues.containsKey(fieldName))
|
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);
|
fieldList.add(fieldMetaData);
|
||||||
@ -156,6 +176,7 @@ public class ReportValuesDynamicFormWidgetRenderer extends AbstractWidgetRendere
|
|||||||
///////////////////////////////////
|
///////////////////////////////////
|
||||||
DynamicFormWidgetData widgetData = new DynamicFormWidgetData();
|
DynamicFormWidgetData widgetData = new DynamicFormWidgetData();
|
||||||
widgetData.setFieldList(fieldList);
|
widgetData.setFieldList(fieldList);
|
||||||
|
widgetData.setRecordOfFieldValues(recordOfFieldValues);
|
||||||
widgetData.setMergedDynamicFormValuesIntoFieldName("inputValues");
|
widgetData.setMergedDynamicFormValuesIntoFieldName("inputValues");
|
||||||
|
|
||||||
if(CollectionUtils.nullSafeIsEmpty(fieldList))
|
if(CollectionUtils.nullSafeIsEmpty(fieldList))
|
||||||
|
Reference in New Issue
Block a user