use of org.openforis.collect.model.RecordFilter in project collect by openforis.
the class RecordController method createRecordFilter.
private static RecordFilter createRecordFilter(CollectSurvey survey, User user, UserGroupManager userGroupManager, Integer rootEntityId, boolean onlyOwnedRecords) {
if (rootEntityId == null) {
rootEntityId = survey.getSchema().getFirstRootEntityDefinition().getId();
}
RecordFilter recordFilter = new RecordFilter(survey);
recordFilter.setRootEntityId(rootEntityId);
if (onlyOwnedRecords || user.getRole() == UserRole.ENTRY_LIMITED) {
recordFilter.setOwnerId(user.getId());
}
if (user.getRole() != UserRole.ADMIN) {
Map<String, String> qualifiers = userGroupManager.getQualifiers(survey.getUserGroup(), user);
if (!qualifiers.isEmpty()) {
recordFilter.setQualifiersByName(qualifiers);
}
}
return recordFilter;
}
use of org.openforis.collect.model.RecordFilter in project collect by openforis.
the class RecordController method getCount.
@RequestMapping(value = "survey/{surveyId}/data/records/count.json", method = GET)
@ResponseBody
public int getCount(@PathVariable("surveyId") int surveyId, @RequestParam(value = "rootEntityDefinitionId", required = false) Integer rootEntityDefinitionId, @RequestParam(value = "step", required = false) Integer stepNumber) throws Exception {
CollectSurvey survey = surveyManager.getById(surveyId);
RecordFilter filter = createRecordFilter(survey, sessionManager.getLoggedUser(), userGroupManager, rootEntityDefinitionId, false);
if (stepNumber != null) {
filter.setStepGreaterOrEqual(Step.valueOf(stepNumber));
}
int count = recordManager.countRecords(filter);
return count;
}
use of org.openforis.collect.model.RecordFilter in project collect by openforis.
the class ValidationController method validationReport.
@RequestMapping(value = "/validationReport", method = RequestMethod.GET)
public void validationReport(HttpServletRequest request, HttpServletResponse response, @RequestParam(required = false) String surveyName, @RequestParam(required = false) Integer rootEntityId, @RequestParam(required = false, defaultValue = "en_US") String locale, String[] recordKeys, @RequestParam(required = false) Date modifiedSince) throws IOException {
ServletOutputStream outputStream = response.getOutputStream();
try {
if (surveyName == null || rootEntityId == null || locale == null) {
outputStream.println("Wrong parameters: please specify 'surveyName' (name of the survey), 'rootEntityId' (root entity id) and 'locale' string rappresentation of locale");
return;
}
CollectSurvey survey = surveyManager.get(surveyName);
if (survey == null) {
print(outputStream, "Survey not found");
return;
}
response.setContentType("text/csv");
String outputFileName = String.format("%s_validation_report_%s.csv", surveyName, Dates.formatDateTime(new Date()));
response.setHeader("Content-Disposition", "attachment; fileName=" + outputFileName);
SessionState sessionState = getSessionState(request);
User user = sessionState.getUser();
String sessionId = sessionState.getSessionId();
RecordFilter recordFilter = new RecordFilter(survey, rootEntityId);
recordFilter.setKeyValues(recordKeys);
recordFilter.setModifiedSince(modifiedSince);
if (user.getRole() == UserRole.ENTRY_LIMITED) {
recordFilter.setOwnerId(user.getId());
}
ValidationReportProcess process = new ValidationReportProcess(outputStream, recordManager, messageContextHolder, ReportType.CSV, user, sessionId, recordFilter, true, LocaleUtils.toLocale(locale));
process.init();
process.call();
} catch (Exception e) {
// outputStream.println("ERROR - Validation of records not completed: " + e.getMessage());
LOG.error("ERROR - Validation of records not completed: " + e.getMessage(), e);
throw new RuntimeException(e);
}
}
use of org.openforis.collect.model.RecordFilter in project collect by openforis.
the class RecordManager method loadUniqueRecordSummary.
public CollectRecordSummary loadUniqueRecordSummary(CollectSurvey survey, int recordId) {
RecordFilter filter = new RecordFilter(survey);
filter.setRecordId(recordId);
List<CollectRecordSummary> summaries = loadSummaries(filter);
return summaries.isEmpty() ? null : summaries.get(0);
}
use of org.openforis.collect.model.RecordFilter in project collect by openforis.
the class RecordManager method countRecords.
public int countRecords(CollectSurvey survey, String rootEntity, String... keyValues) {
RecordFilter filter = new RecordFilter(survey, rootEntity);
filter.setKeyValues(keyValues);
return countRecords(filter);
}
Aggregations