I should be able to easily create a Survey

(User Story, Investigate , Priority: High, Test Status: No automated tests yet , Reported By Justin du Coeur, )
Summary: This is the high-level Epic for creating a new "Survey" UI, which is a more usable interface for building complex User Values.
Here's a rough design sketch:
  • Introduce a new Model named "Survey". This is actually very simple. It has a Property which is a pointer to a Property, and an _apply that _edits that Property.
  • Introduce a new "Create Survey" menu pick. This pops a dialog box that asks you for the name. It creates a Survey with that name, a User Value Property with a variant of that name, and a Model that the User Value Property is based on, also based on that name.
  • It then kicks you into the Survey Editor. This should be a prettier abstraction for creating Properties of various sorts. Initially, we should be able to create text; choices; large text; integers. For each question, we should ask for the Prompt, the type, maybe whether it's Required, and maybe other details. The name of the resulting Property should probably be based on the Prompt, but the Prompt should allow full text.
  • The Survey Editor should also be able to edit an existing Survey.
  • The Survey Editor should have a "Make Page" button, which boots you into a page that simply has [[Survey Name]] filled in.
Some notes from my Diary:
  • In cases of Moderated Things, you probably lose the full access to the Instance you created once it is through Moderation. But for now, it’s a good start to just say that you can Edit what you Create.
  • In order to keep this locked down, Who Can Read on both the Space and Instances must be locked down to a tighter level than all Members: at least set it to Commenters.
  • The custom Role (let’s call it My Survey Role) must be able to Read the Model and all Properties involved in the Model. (We might just make Properties default to readable?) It must have Who Can Create on the Model.
  • We really want to enhance shareable links so that they can take you to a specific page when you click on them. That way, we can have a Survey with a Link that takes you directly to that Survey.
  • In practice, a Survey probably needs a front page, as well as the Model. The front page will typically contain an Editor for the Model -- probably a customized one that is a bit less dense and easier to use.