views:

23

answers:

2

I have an application which has a Projects table and a Users table. In my Create New Project form I have a required field for Project Manager. However, the User record for Project Manager may not exist yet. Project Manager is a required field.

Up to now I have been developing the application on a "one screen, one record" basis, but this scenario would require that the user create the user record first (since Project Manager is a required field), then create the project record and assign the new user as a project manager.

Intuitively, a user would expect the project to be created first, but this would require three steps (Project Creation, User Creation, Assign User as Project Manager), and they would have to be locked together, since Project Manager is a required field, and the application would still have to be smart enough to use an existing User record, if available.

What is the strategy you would use? Would you put everything on one form Including the optional new user) and push a complicated ViewModel to the controller method, or would you employ a multi-step form strategy, or would you do something else? I have considered things like a New User popup form on the New Project form, but that feels a little too clever, and not RESTful enough.

A: 

In this case, I think it's reasonable to include a "Create New User" selection in the Project Manager dropdown on the New Project form. If this is selected, the user is presented with the New User form and can add the Project Manager record at the same time as the Project.

If your Views and ViewModels are well isolated, you could load the New User Form as a partial into the New Project form using AJAX. This way you can keep your Views, Models and ViewModels self-contained while still offering a good user experience.

Dave Swersky
A: 

A wizard like behaviour may be the most user-friendly. You can skip through useless steps if needed.

Seb