Choices Guide

The choices guide helps a visitor to form an idea or opinion by answering a set of questions and seeing the effect on a set of possible choices.

The basic idea is very simple: each question is answered by a visitor with a value between 0 and 100. Each choice has an answer stored, also between 0 and 100. Both answers are compared and the result shown.

Basic setup and configuration of components is described in Use and configuration. This specific widget can be loaded using

   openstadcomponents['choices-guide'].ChoicesGuide.renderElement(element, config);

or

   OpenStadComponents['choices-guide'].ChoicesGuideResult.renderElement(element, config);

Once loaded and logged in as an admin you will find a button on the page that allows for creating questions and choices from within the component.

Configuration

config = {
  divId: "choices-guide",
  siteId: 1,
  choicesGuideId: 1,

Number of questions per page

  noOfQuestionsToShow: 10,

Should the comparison start assuming that all questions are answered at 50%

  startWithAllQuestionsAnswered: true,

Should a visitor answer each question or is the default answer enough

  startWithAllQuestionsAnsweredAndConfirmed: true,

How are the results shown

The way the results are shown: 'zero-to-100' (='default') or 'minus-to-plus-100' for a one dimensional view, 'plane' for two dimensional

Colors used: 'default' is used by 'zero-to-100', 'min' and 'max' by 'minus-to-plus-100'

Header for the results block

Urls that are used in the previous/next buttons

Results

ChoicesGuideResults have extra configuration options

Show a number next to the result bars

Submit the result to the api

Type describes what to do: 'none' does nothing, 'auto' sends the result to the api as soon as the page is shown, and 'form' waits for a form to be filled in and submitted.

See the forms docs for a description of these options

Optionally (in edit choices guide) you can require a user to be logged in before submitting the form

Technical

Datamodel

In pseude-json:

Notes

Questions belong to a questionGroup. AnswerDimensions is used for a 2d view of the results; see (later)[#plane].

Posible choices are also part of the questiongroup. (The API knows choices on the top level, but this is not (yet) used by the frontend.)

Choices contain an answer to each question, to compare the visitors answers:

Results are stored per user, identified by a login or by a generated userFingerprint. The fingerprint system is not 100% fool proof. Data from an optional form with extra questions is stored as extraData.

Plane

The two dimensional view on the results was created for a specific project.

The current implementation has limitations and should be reviewed/rebuild.

Documentation for this is not yet written.

Last updated