Problem/Motivation

As a site administrator, I want a configurable migration wizard under /admin/config/acquia-dam/migration that guides me through choosing which core media types to migrate and how (profile, sync method, target DAM media type), so that I can prepare the migration through a guided UI before the bulk migration runs.

Acceptance Criteria:

2-step wizard (step 1 AcquiaDamMigrationMapForm):

  • Per core media type row (from MigrationTrait::getCoreMediaTypes()): include checkbox, label, media count, upload profile select (from DAM getUploadProfileList()), target DAM media type select (from getAcquiaDamMediaTypesAsOptions())
  • Empty media types auto-skipped and disabled; #states used to conditionally expose type options
  • Step 2 (AcquiaDamMigrationSummaryForm): review table of the chosen mapping + key point summary

Main form (AcquiaDamMigration, ConfigFormBase):

  • Wizard page state via current_page in stored_values; Previous / Next (goPrevious/goNext), Save Configuration (doSave), Migrate button
  • Migrate button invokes the batch API via the QueueProcessBatch delegate
  • Config persisted to acquia_dam_migration_tools.migration_preferencesstored_values

Completion (AcquiaDamMigrationComplete):

  • Completion page showing per-type summary from populateMigratedDataState()

Scaffold (data/UI layer):

  • acquia_dam_migration_tools.install ← new — hook_schema() creates acquia_dam_migration_queue_map (media_id PK, queued_date) for O(1) dedup; hook_uninstall() deletes state keys + migration_preferences
  • config/schema/acquia_dam_migration_tools.schema.yml ← new — migration_preferences config_object with stored_values mapping (current_page; core_media_types / migrated_media_types as sequence of mappings incl. media_type_label/sync_method/profile/target_source_type/target_media_type/include/media_source_type/media_source_field) — keyed lists use sequence, never a '*' wildcard key; metadata_mapping

Tests:

  • AcquiaDamMigrationToolsKernelTestBase (kernel) — shared kernel base for the form tests
  • ModuleInstallationTest (kernel) — module installation; config schema valid; typed config; services registered; queue worker plugin exists; uninstall cleanup
  • AcquiaDamMigrationCompleteTest (kernel) — completion-page state summary
  • AcquiaDamUploadEndToEndTest (FunctionalJavascript) — end-to-end UI migration with node + media reference preserved and asset-id fixture
  • MigrationWizardNavigationTest (FunctionalJavascript) — wizard step navigation

Issue fork acquia_dam-3617773

Command icon Show commands

Start within a Git clone of the project using the version control instructions.

Or, if you do not have SSH keys set up on git.drupalcode.org:

Comments

rajeshreeputra created an issue. See original summary.

rajeshreeputra’s picture

Assigned: rajeshreeputra » Unassigned
Status: Active » Needs review

Requesting review.

  • rajeshreeputra committed abf60cd7 on migration-tools
    Resolve #3617773 "Config form for migration mapping and summary"
    
rajeshreeputra’s picture

Status: Needs review » Fixed

MR merged!

Now that this issue is closed, review the contribution record.

As a contributor, attribute any organization that helped you, or if you volunteered your own time.

Maintainers, credit people who helped resolve this issue.