package com.constellio.app.modules.complementary.esRmRobots.migrations; import static com.constellio.app.modules.complementary.esRmRobots.model.ClassifyConnectorFolderInTaxonomyActionParameters.DEFAULT_PARENT_FOLDER; import static com.constellio.app.modules.complementary.esRmRobots.model.ClassifyConnectorFolderInTaxonomyActionParameters.DOCUMENT_MAPPING; import static com.constellio.app.modules.complementary.esRmRobots.model.ClassifyConnectorFolderInTaxonomyActionParameters.FOLDER_MAPPING; import com.constellio.app.entities.modules.MetadataSchemasAlterationHelper; import com.constellio.app.entities.modules.MigrationResourcesProvider; import com.constellio.app.entities.modules.MigrationScript; import com.constellio.app.modules.complementary.esRmRobots.model.ClassifyConnectorDocumentInFolderActionParameters; import com.constellio.app.modules.complementary.esRmRobots.model.ClassifyConnectorFolderDirectlyInThePlanActionParameters; import com.constellio.app.modules.complementary.esRmRobots.model.ClassifyConnectorFolderInParentFolderActionParameters; import com.constellio.app.modules.complementary.esRmRobots.model.ClassifyConnectorFolderInTaxonomyActionParameters; import com.constellio.app.modules.complementary.esRmRobots.model.ClassifySmbFolderInFolderActionParameters; import com.constellio.app.modules.robots.model.wrappers.ActionParameters; import com.constellio.app.services.factories.AppLayerFactory; import com.constellio.app.services.schemasDisplay.SchemaTypesDisplayTransactionBuilder; import com.constellio.app.services.schemasDisplay.SchemasDisplayManager; import com.constellio.model.services.schemas.builders.MetadataSchemaBuilder; import com.constellio.model.services.schemas.builders.MetadataSchemaTypesBuilder; public class ESRMRobotsMigrationTo7_1 implements MigrationScript { @Override public String getVersion() { return "7.1"; } @Override public void migrate(String collection, MigrationResourcesProvider migrationResourcesProvider, AppLayerFactory appLayerFactory) throws Exception { new SchemaAlterationFor7_1(collection, migrationResourcesProvider, appLayerFactory).migrate(); configureClassifyInTaxonomyParametersForm(collection, migrationResourcesProvider, appLayerFactory); } class SchemaAlterationFor7_1 extends MetadataSchemasAlterationHelper { protected SchemaAlterationFor7_1(String collection, MigrationResourcesProvider migrationResourcesProvider, AppLayerFactory appLayerFactory) { super(collection, migrationResourcesProvider, appLayerFactory); } public String getVersion() { return "7.1"; } @Override protected void migrate(MetadataSchemaTypesBuilder typesBuilder) { modifyClassifyConnectorFolderDirectlyInThePlanActionParametersSchema(); modifyClassifyConnectorFolderInTaxonomyActionParametersSchema(); } private void modifyClassifyConnectorFolderInTaxonomyActionParametersSchema() { MetadataSchemaBuilder schema = typesBuilder.getSchemaType(ActionParameters.SCHEMA_TYPE) .getSchema(ClassifyConnectorFolderInTaxonomyActionParameters.SCHEMA_LOCAL_CODE); schema.get(ClassifyConnectorFolderInTaxonomyActionParameters.DELIMITER).setDefaultRequirement(false); } private void modifyClassifyConnectorFolderDirectlyInThePlanActionParametersSchema() { MetadataSchemaBuilder schema = typesBuilder.getSchemaType(ActionParameters.SCHEMA_TYPE) .getSchema(ClassifyConnectorFolderDirectlyInThePlanActionParameters.SCHEMA_LOCAL_CODE); schema.get(ClassifyConnectorFolderDirectlyInThePlanActionParameters.DEFAULT_OPEN_DATE) .setDefaultRequirement(false); } } private void configureClassifyInTaxonomyParametersForm(String collection, MigrationResourcesProvider migrationResourcesProvider, AppLayerFactory appLayerFactory) { String mappingsTab = "tab.to.hide"; SchemasDisplayManager schemasDisplayManager = appLayerFactory.getMetadataSchemasDisplayManager(); SchemaTypesDisplayTransactionBuilder transaction = schemasDisplayManager.newTransactionBuilderFor(collection); String parametersSchema = ClassifyConnectorFolderDirectlyInThePlanActionParameters.SCHEMA; transaction.add(schemasDisplayManager.getMetadata(collection, parametersSchema, DOCUMENT_MAPPING) .withMetadataGroup(mappingsTab)); transaction.add(schemasDisplayManager.getMetadata(collection, parametersSchema, FOLDER_MAPPING) .withMetadataGroup(mappingsTab)); parametersSchema = ClassifyConnectorFolderInParentFolderActionParameters.SCHEMA; transaction.add(schemasDisplayManager.getMetadata(collection, parametersSchema, DOCUMENT_MAPPING) .withMetadataGroup(mappingsTab)); transaction.add(schemasDisplayManager.getMetadata(collection, parametersSchema, FOLDER_MAPPING) .withMetadataGroup(mappingsTab)); parametersSchema = ClassifyConnectorFolderInTaxonomyActionParameters.SCHEMA; transaction.add(schemasDisplayManager.getMetadata(collection, parametersSchema, DOCUMENT_MAPPING) .withMetadataGroup(mappingsTab)); transaction.add(schemasDisplayManager.getMetadata(collection, parametersSchema, FOLDER_MAPPING) .withMetadataGroup(mappingsTab)); //Also hide this option transaction.add(schemasDisplayManager.getMetadata(collection, parametersSchema, DEFAULT_PARENT_FOLDER) .withMetadataGroup(mappingsTab)); schemasDisplayManager.execute(transaction.build()); } }