public Optional<String> getFilter() { return getModel().getFilter(); }
private QueryModel buildQuery(List<EffectiveTableColumn> columns) { QueryModel queryModel = new QueryModel(formTree.getRootFormId()); if(tableModel.getFilter().isPresent()) { queryModel.setFilter(tableModel.getFilter().get()); } for (SortModel sortModel : tableModel.getSorting()) { queryModel.addSortModel(sortModel); } queryModel.selectRecordId().as(ID_COLUMN_ID); for (EffectiveTableColumn column : columns) { queryModel.addColumns(column.getQueryModel()); } return queryModel; }
@Value.Lazy @Override public JsonValue toJson() { JsonValue object = Json.createObject(); object.put("formId", getFormId().asString()); if(getColumns().size() != 0) { JsonValue columnArray = Json.createArray(); for (TableColumn tableColumn : getColumns()) { columnArray.add(tableColumn.toJson()); } object.put("columns", columnArray); } if (getFilter().isPresent()) { object.put("filter", getFilter().get()); } if (getSorting().size() != 0) { JsonValue columnArray = Json.createArray(); for (SortModel sortModel : getSorting()) { columnArray.add(sortModel.toJson()); } object.put("columns", columnArray); } return object; }
@Test public void testSubFormExportWithFilter() { IncidentForm incidentForm = setup.getCatalog().getIncidentForm(); TableModel tableModel = ImmutableTableModel.builder().formId(incidentForm.getFormId()) .addColumns(ImmutableTableColumn.builder() .label("My PCODE") .formula(IncidentForm.PROTECTION_CODE_FIELD_ID.asString()) .build()) .filter(constructFilter()) .build(); TableViewModel viewModel = new TableViewModel(setup.getFormStore(), tableModel); Connection<TableModel> exportModel = setup.connect( viewModel.computeExportModel( Observable.just(ReferralSubForm.FORM_ID), Observable.just(ExportScope.SELECTED), Observable.just(ExportScope.SELECTED), Observable.just(ExportFormat.XLS)) .transform(ExportViewModel::getTableModel)); System.out.println(Json.stringify(exportModel.assertLoaded().toJson(), 2)); assertThat(exportModel.assertLoaded().getFormId(), equalTo(ReferralSubForm.FORM_ID)); assertThat(exportModel.assertLoaded().getColumns(), hasSize(3)); assertThat(exportModel.assertLoaded().getFilter(), equalTo(Optional.of(constructFilter()))); }