Search in sources :

Example 41 with Step

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();
}
Also used : SessionState(org.openforis.collect.web.session.SessionState) CollectRecord(org.openforis.collect.model.CollectRecord) User(org.openforis.collect.model.User) RecordStep(org.openforis.collect.event.RecordStep) Step(org.openforis.collect.model.CollectRecord.Step) CollectSurvey(org.openforis.collect.model.CollectSurvey)

Example 42 with Step

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);
}
Also used : SessionState(org.openforis.collect.web.session.SessionState) CollectRecord(org.openforis.collect.model.CollectRecord) RecordStep(org.openforis.collect.event.RecordStep) Step(org.openforis.collect.model.CollectRecord.Step) SurveyLockingJobProxy(org.openforis.collect.remoting.service.concurrency.proxy.SurveyLockingJobProxy) BulkRecordMoveJob(org.openforis.collect.io.data.BulkRecordMoveJob) Secured(org.springframework.security.access.annotation.Secured)

Example 43 with Step

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();
}
Also used : CollectRecord(org.openforis.collect.model.CollectRecord) Progress(org.openforis.concurrency.Progress) JooqDatabaseExporter(org.openforis.collect.relational.jooq.JooqDatabaseExporter) CollectRecordSummary(org.openforis.collect.model.CollectRecordSummary) ProcessStepProgressListener(org.openforis.concurrency.ProcessStepProgressListener) ProcessProgressListener(org.openforis.concurrency.ProcessProgressListener) RecordStep(org.openforis.collect.event.RecordStep) Step(org.openforis.collect.model.CollectRecord.Step) CollectSurvey(org.openforis.collect.model.CollectSurvey) RecordFilter(org.openforis.collect.model.RecordFilter)

Example 44 with Step

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;
    }
}
Also used : Survey(org.openforis.idm.metamodel.Survey) BooleanAttributeDefinition(org.openforis.idm.metamodel.BooleanAttributeDefinition) AttributeDefinition(org.openforis.idm.metamodel.AttributeDefinition) CodeAttributeDefinition(org.openforis.idm.metamodel.CodeAttributeDefinition) CollectAnnotations(org.openforis.collect.metamodel.CollectAnnotations) Step(org.openforis.collect.model.CollectRecord.Step)

Example 45 with Step

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();
    }
}
Also used : CollectRecord(org.openforis.collect.model.CollectRecord) Step(org.openforis.collect.model.CollectRecord.Step)

Aggregations

Step (org.openforis.collect.model.CollectRecord.Step)49 CollectRecord (org.openforis.collect.model.CollectRecord)24 CollectRecordSummary (org.openforis.collect.model.CollectRecordSummary)21 CollectSurvey (org.openforis.collect.model.CollectSurvey)11 ArrayList (java.util.ArrayList)9 RecordStep (org.openforis.collect.event.RecordStep)8 SessionState (org.openforis.collect.web.session.SessionState)8 StepSummary (org.openforis.collect.model.CollectRecordSummary.StepSummary)7 IOException (java.io.IOException)5 RecordFilter (org.openforis.collect.model.RecordFilter)5 NodeUnmarshallingError (org.openforis.collect.persistence.xml.NodeUnmarshallingError)5 MainStep (org.openforis.collect.io.data.DataImportState.MainStep)4 SubStep (org.openforis.collect.io.data.DataImportState.SubStep)4 User (org.openforis.collect.model.User)4 EntityDefinition (org.openforis.idm.metamodel.EntityDefinition)4 Schema (org.openforis.idm.metamodel.Schema)4 Date (java.util.Date)3 HashMap (java.util.HashMap)3 List (java.util.List)3 Secured (org.springframework.security.access.annotation.Secured)3