use of org.openforis.collect.datacleansing.DataQueryGroup in project collect by openforis.
the class DataCleansingManagerImpl method loadMetadata.
@Override
public DataCleansingMetadata loadMetadata(CollectSurvey survey) {
List<DataQuery> dataQueries = dataQueryManager.loadBySurvey(survey);
List<DataQueryType> dataQueryTypes = dataTypeManager.loadBySurvey(survey);
for (DataQuery dataQuery : dataQueries) {
Integer typeId = dataQuery.getTypeId();
dataQuery.setType(typeId == null ? null : CollectionUtils.findItem(dataQueryTypes, typeId));
}
List<DataQueryGroup> dataQueryGroups = dataQueryGroupManager.loadBySurvey(survey);
for (DataQueryGroup group : dataQueryGroups) {
List<DataQuery> queries = group.getQueries();
List<DataQuery> correctQueries = new ArrayList<DataQuery>(queries.size());
for (DataQuery dataQuery : queries) {
correctQueries.add(CollectionUtils.findItem(dataQueries, dataQuery.getId()));
}
group.removeAllQueries();
group.allAllQueries(correctQueries);
}
List<DataCleansingStep> cleansingSteps = dataCleansingStepManager.loadBySurvey(survey);
for (DataCleansingStep step : cleansingSteps) {
step.setQuery(CollectionUtils.findItem(dataQueries, step.getQueryId()));
}
List<DataCleansingChain> cleansingChains = dataCleansingChainManager.loadBySurvey(survey);
for (DataCleansingChain chain : cleansingChains) {
List<DataCleansingStep> steps = chain.getSteps();
List<DataCleansingStep> correctSteps = new ArrayList<DataCleansingStep>(steps.size());
for (DataCleansingStep step : steps) {
correctSteps.add(CollectionUtils.findItem(cleansingSteps, step.getId()));
}
chain.removeAllSteps();
chain.addAllSteps(correctSteps);
}
DataCleansingMetadata metadata = new DataCleansingMetadata(survey, dataQueryTypes, dataQueries, dataQueryGroups, cleansingSteps, cleansingChains);
return metadata;
}
use of org.openforis.collect.datacleansing.DataQueryGroup in project collect by openforis.
the class DataQueryGroupValidator method validateTitleUniqueness.
private boolean validateTitleUniqueness(DataQueryGroupForm target, Errors errors) {
String title = target.getTitle();
CollectSurvey survey = getActiveSurvey();
List<DataQueryGroup> items = dataQueryGroupManager.loadBySurvey(survey);
for (DataQueryGroup item : items) {
if (!item.getId().equals(target.getId()) && item.getTitle().equalsIgnoreCase(title)) {
rejectDuplicateValue(errors, TITLE_FIELD);
return false;
}
}
return true;
}
use of org.openforis.collect.datacleansing.DataQueryGroup in project collect by openforis.
the class DataReportManager method initQueryGroup.
private void initQueryGroup(DataReport report) {
DataQueryGroup queryGroup = queryGroupManager.loadById((CollectSurvey) report.getSurvey(), report.getQueryGroupId());
report.setQueryGroup(queryGroup);
}
use of org.openforis.collect.datacleansing.DataQueryGroup in project collect by openforis.
the class DataReportController method generate.
@RequestMapping(value = "generate.json", method = POST)
@ResponseBody
public Response generate(@RequestParam int queryGroupId, @RequestParam Step recordStep) {
CollectSurvey survey = sessionManager.getActiveSurvey();
DataQueryGroup queryGroup = dataQueryGroupManager.loadById(survey, queryGroupId);
generationJob = collectJobManager.createJob(DataReportGeneratorJob.class);
generationJob.setQueryGroup(queryGroup);
generationJob.setRecordStep(recordStep);
generationJob.setActiveUser(getLoggedUser());
collectJobManager.start(generationJob);
return new Response();
}
use of org.openforis.collect.datacleansing.DataQueryGroup in project collect by openforis.
the class DataQueryGroupValidator method validateQueryUniqueness.
private boolean validateQueryUniqueness(DataQueryGroupForm target, Errors errors) {
CollectSurvey survey = getActiveSurvey();
List<DataQueryGroup> items = dataQueryGroupManager.loadBySurvey(survey);
for (DataQueryGroup item : items) {
if (!item.getId().equals(target.getId())) {
List<DataQuery> queries = item.getQueries();
List<Integer> queryIds = CollectionUtils.project(queries, "id");
if (queryIds.equals(target.getQueryIds())) {
rejectDuplicateValue(errors, QUERY_IDS_FIELD);
return false;
}
}
}
return true;
}
Aggregations