Allow single step change host when one registration type

Created on 24 January 2025, 3 days ago

Problem/Motivation

When a site has a single registration type, it should be possible to enable a single step workflow for changing the host. This should be a simple form with no fields except a select with possible hosts in it. The existing host should be displayed above the select field with an "Existing host" label.

Steps to reproduce

Proposed resolution

Add the form, and adjust the change host routing dynamically to use it, when the system detects a single registration type is present. When registration types are added, it will be important to clear the route cache so that a site with multiple registration types uses the current 2-step workflow.

Site builders may prefer to enforce the 2-step workflow even when there is a single registration type, so enabling the 1-step workflow should be done through a global setting for the module. This setting should not be displayed for sites with > 1 registration type.

Remaining tasks

Implement the proposed solution, with tests.

User interface changes

Change host will be an easier path for site admins when a single registration type is present.

API changes

None

Data model changes

None

✨ Feature request
Status

Active

Version

3.3

Component

Registration Change Host

Created by

πŸ‡ΊπŸ‡ΈUnited States john.oltman

Live updates comments and jobs are added and updated live.
Sign in to follow issues

Merge Requests

Comments & Activities

  • Issue created by @john.oltman
  • πŸ‡ΊπŸ‡ΈUnited States john.oltman
  • πŸ‡ΊπŸ‡ΈUnited States john.oltman
  • πŸ‡¬πŸ‡§United Kingdom jonathanshaw Stroud, UK

    I agree it's a reasonable feature.

    One of the reasons I didn't invest more in this approach was that I came to the conclusion that as a default or best practice it was probably good to get a registrant to re-confirm all of their submitted registration field values when they changed host.

    One way of thinking about this is as a 3 way division:

    (1) Changing host is a big deal, needs to be a separate action, have a fancy UX to explain the choices, and they have to reconfirm all their fields.

    (2) Changing host is not such a big deal that they need to reconfirm all their fields, but it should still be a separate action and have a fancy UX for the list of choices.

    (3) Changing host is no big deal, it can just be a widget on the regular form for editing a registration.

    I'm a bit doubtful that (2) is a big group. I wonder if (3) is a use case worth investing in first.

    Regarding the implementation proposal you give for (2) I wonder if there's a way to reuse the existing controller. If you could live with a second 'confirm' step then it'd be trivial to hide the edit form on the current ChangeHostForm.

  • πŸ‡ΊπŸ‡ΈUnited States john.oltman

    Updated proposed resolution.

  • Merge request !104#3502040: Allow single step change host β†’ (Merged) created by john.oltman
  • πŸ‡ΊπŸ‡ΈUnited States john.oltman

    @jonathanshaw, if you pull this update, you should uninstall and reinstall the module so you get the new settings. To see or adjust these, go to the global settings page at /admin/structure/registration-settings.

    I ended up implementing a hybrid of (2): Changing host is not such a big deal that they need to reconfirm all their fields, but it should still be a separate action. Because fields do not need to be reconfirmed, there is a simple UX for the list of choices.

    I am leaving the choice of which interface, simple or complex, to the site builder. I am defaulting to the complex, since it is safer, and in this way it is benign to all the pre-existing tests and previous implementation.

    Having this simple UX opens up the possibility of having "change host" permission do what it says, and allow access to change host without access to update all fields. It should be a simple matter to check the new workflow setting and adjust that access code not to enforce the update permission for the single step workflow. I'll see if I can work that in soon. It seems reasonable to continue checking update access for the multistep workflow.

  • πŸ‡ΊπŸ‡ΈUnited States john.oltman

    This commit also fixes a bug in the data loss checker, and adds the registration type to the possible hosts cacheability, since it checks the third party setting there.

  • πŸ‡ΊπŸ‡ΈUnited States john.oltman

    Added fixes for correct cachability

Production build 0.71.5 2024