package com.constellio.app.modules.rm.migrations;
import com.constellio.app.entities.modules.MigrationResourcesProvider;
import com.constellio.app.entities.modules.MigrationScript;
import com.constellio.app.entities.schemasDisplay.enums.MetadataInputType;
import com.constellio.app.modules.rm.wrappers.ContainerRecord;
import com.constellio.app.modules.rm.wrappers.Document;
import com.constellio.app.modules.rm.wrappers.type.DocumentType;
import com.constellio.app.services.factories.AppLayerFactory;
import com.constellio.app.services.schemasDisplay.SchemaDisplayManagerTransaction;
import com.constellio.app.services.schemasDisplay.SchemaTypesDisplayTransactionBuilder;
import com.constellio.app.services.schemasDisplay.SchemasDisplayManager;
public class RMMigrationTo5_1_3 implements MigrationScript {
@Override
public String getVersion() {
return "5.1.3";
}
@Override
public void migrate(String collection, MigrationResourcesProvider migrationResourcesProvider,
AppLayerFactory appLayerFactory)
throws Exception {
setupDisplayConfig(collection, appLayerFactory);
}
private void setupDisplayConfig(String collection, AppLayerFactory appLayerFactory) {
SchemasDisplayManager manager = appLayerFactory.getMetadataSchemasDisplayManager();
SchemaTypesDisplayTransactionBuilder builder = manager.newTransactionBuilderFor(collection);
SchemaDisplayManagerTransaction transaction = builder
.in(ContainerRecord.SCHEMA_TYPE)
.addToForm(ContainerRecord.DECOMMISSIONING_TYPE, ContainerRecord.ADMINISTRATIVE_UNIT)
.beforeMetadata(ContainerRecord.STORAGE_SPACE)
.in(Document.SCHEMA_TYPE)
.addToForm(Document.FOLDER).atFirstPosition()
.in(DocumentType.SCHEMA_TYPE)
.addToDisplay(DocumentType.TEMPLATES).atTheEnd()
.build()
.add(manager.getMetadata(collection, ContainerRecord.DEFAULT_SCHEMA, ContainerRecord.ADMINISTRATIVE_UNIT)
.withInputType(MetadataInputType.LOOKUP))
.add(manager.getMetadata(collection, ContainerRecord.DEFAULT_SCHEMA, ContainerRecord.DECOMMISSIONING_TYPE)
.withInputType(MetadataInputType.DROPDOWN));
manager.execute(transaction);
}
}