use of org.openforis.collect.model.CollectRecord.Step in project collect by openforis.
the class DataService method demote.
protected void demote(Step toStep) throws RecordPersistenceException {
sessionManager.checkIsActiveRecordLocked();
SessionState sessionState = sessionManager.getSessionState();
CollectRecord record = sessionState.getActiveRecord();
Step fromStep = record.getStep();
Step exptectedFromStep = toStep.getNext();
if (exptectedFromStep != fromStep) {
throw new IllegalStateException("The active record cannot be demoted: it is not in the exptected phase: " + exptectedFromStep);
}
CollectSurvey survey = sessionState.getActiveSurvey();
String userName = sessionState.getUser().getUsername();
User user = sessionState.getUser();
Integer recordId = record.getId();
publishRecordDeletedEvent(record, fromStep.toRecordStep(), userName);
recordManager.demote(survey, recordId, record.getStep(), user);
recordManager.releaseLock(recordId);
sessionManager.clearActiveRecord();
}
use of org.openforis.collect.model.CollectRecord.Step in project collect by openforis.
the class DataService method moveRecords.
@Secured(CLEANSING)
public SurveyLockingJobProxy moveRecords(String rootEntity, int fromStepNumber, final boolean promote) {
BulkRecordMoveJob job = collectJobManager.createJob(BulkRecordMoveJob.class);
SessionState sessionState = getSessionState();
final String userName = sessionState.getUser().getUsername();
job.setSurvey(sessionState.getActiveSurvey());
job.setRootEntity(rootEntity);
job.setPromote(promote);
final Step fromStep = Step.valueOf(fromStepNumber);
job.setFromStep(fromStep);
job.setUser(sessionState.getUser());
job.setRecordMovedCallback(new BulkRecordMoveJob.Callback() {
@Override
public void recordMoved(CollectRecord record) {
if (promote) {
publishRecordPromotedEvents(record, userName);
} else {
publishRecordDeletedEvent(record, fromStep.toRecordStep(), userName);
}
}
});
collectJobManager.startSurveyJob(job);
return new SurveyLockingJobProxy(job);
}
use of org.openforis.collect.model.CollectRecord.Step in project collect by openforis.
the class RDBReportingRepositories method insertRecords.
private void insertRecords(String surveyName, RecordStep recordStep, RelationalSchema targetSchema, Connection targetConn, ProgressListener progressListener) throws CollectRdbException {
ProcessProgressListener processProgressListener = new ProcessProgressListener(2);
CollectSurvey survey = surveyManager.get(surveyName);
DatabaseExporter databaseUpdater = createRDBUpdater(targetSchema, targetConn);
databaseUpdater.insertReferenceData(new ProcessStepProgressListener(processProgressListener, progressListener));
processProgressListener.stepCompleted();
RecordFilter recordFilter = new RecordFilter(survey);
Step step = Step.fromRecordStep(recordStep);
recordFilter.setStepGreaterOrEqual(step);
List<CollectRecordSummary> summaries = recordManager.loadSummaries(recordFilter);
ProcessStepProgressListener recordInsertProcessListener = new ProcessStepProgressListener(processProgressListener, progressListener);
recordInsertProcessListener.progressMade(new Progress(0, summaries.size()));
long processedRecords = 0;
for (CollectRecordSummary summary : summaries) {
CollectRecord record = recordManager.load(survey, summary.getId(), step, false);
databaseUpdater.insertRecordData(record, ProgressListener.NULL_PROGRESS_LISTENER);
processedRecords++;
recordInsertProcessListener.progressMade(new Progress(processedRecords, summaries.size()));
}
IOUtils.closeQuietly(databaseUpdater);
processProgressListener.stepCompleted();
}
use of org.openforis.collect.model.CollectRecord.Step in project collect by openforis.
the class RecordUpdater method isDefaultValueToBeApplied.
private boolean isDefaultValueToBeApplied(Attribute<?, ?> attr) {
Survey survey = attr.getSurvey();
if (survey instanceof CollectSurvey) {
CollectAnnotations annotations = ((CollectSurvey) survey).getAnnotations();
Step recordStep = ((CollectRecord) attr.getRecord()).getStep();
AttributeDefinition def = attr.getDefinition();
Step stepToApplyDefaultValue = annotations.getPhaseToApplyDefaultValue(def);
return recordStep.compareTo(stepToApplyDefaultValue) >= 0;
} else {
return false;
}
}
use of org.openforis.collect.model.CollectRecord.Step in project collect by openforis.
the class CollectMinCountValidator method isEmpty.
protected boolean isEmpty(Attribute<?, ?> attribute) {
CollectRecord record = (CollectRecord) attribute.getRecord();
Step step = record.getStep();
if (isReasonBlankAlwaysSpecified(attribute)) {
if (step == Step.ENTRY) {
return false;
} else {
return true;
}
} else {
return attribute.isEmpty();
}
}
Aggregations