Age | Commit message (Collapse) | Author |
|
|
|
|
|
|
|
Also made the Outline links more noticeable.
|
|
Playlists are now generated from a default playlist and regularly
merged with the default playlist to get updates.
Also adding the Question tests that got left out of a previous commit.
|
|
Question and Answer can now be serialized and deserialized to/from JSON.
As such, I no longer have to pass awkward maps around. As part of this
change I have introduced a Provider interface to abstract out loading
and persisting these beans.
The scoring logic has been completed factored out of
SurveyResultsResource and into the various ScoringEngines. Tests have
been added for Question, Answer, and the ScoringEngines. A bug has been
fixed in computing the value for slider questions.
The label identifiers in the circle questions have changed from all
lower case to camel case. That is, topleft is now topLeft. Several
issues have been corrected in the circle answers where the point values
did not match the labels.
Testing and code coverage support and reports have been added.
|
|
|
|
|
|
Finally fixing config overrides. Found a bug? in restlet where the
Servlet context parameters aren't passed to the final application. I'm
working around the issue by creating my own component which builds the
config and shares it with the frontend and backend. Overall I think it's
a much more elegant solution.
Now we have the ability to specify an external config file for the F1
credentials and the ability configure different domains in different
tomcat containers.
|
|
|
|
For this fix I am moving Question and Answer from the backend into a new
model package. Question is now used in SurveyPageResource instead of the
Map. Eventually I should encode/decode the model from the json directly.
I am adding support to the Question model to find the next question
based on the answer to the current question. If the answer has a
specific nextQuestion field, that is used. Otherwise the question's
nextQuestion field is used. This is to facilitate skipping irrelevant
questions.
|
|
|
|
Introduction chapter is always required and thus after the assessment
the user is taken directly to the introduction. After the introduction
training continues with whichever section the user assessed in to.
|
|
|
|
/account redirects to either the assessment or the training page, as
appropriate.
This change adds the /accounts/UID backend resource, which simply stores
an arbitrary json document for now.
|
|
Also adding a header to the Assessment Results page.
|
|
|
|
|
|
The TrainingRecordResource now builds a playlist of videos for each
user. The playlist is a map of video id to meta-data (completion date,
completed, required). Some videos are required, others are not.
TrainingPageResource now redirects to the earliest uncompleted chapter,
based on information in the playlist.
SurveyResultsResource now caches computed scores.
|
|
|
|
|
|
answered question
|
|
|
|
|
|
|
|
|
|
|
|
|
|
This change introduced the f1oauth and jesterpm oauth packages for
interacting with Fellowship One's developer API. I have also reworked
the login authentication to verify credentials through F1 and added
session management to track logged in users.
The Authenticator chain works as follows: on every page load we check
for a session cookie, if the cookie exists, the Request is marked as
authenticated and the OAuthUser object is restored in ClientInfo. If
this request is going to an account page, we require authentication. The
LoginFormAuthenticator checks if the user is already authenticated (via
cookie) and if not redirects the user to the login page. When the login
form is submitted, LoginFormAuthenticator catches the POST request and
authenticates the user through F1.
I'm also adding a new account page, but it is currently a work in
progress.
This commit also adds Allen's content to the site.
|
|
|
|
|
|
|
|
Fixing a bug in the config class and updating all templates and pages to
use the dynamicRoot and staticRoot config values to prefix URLs.
|
|
|
|
|
|
Adding a LoginAuthenticator to parse session cookies and a
LoginPageResource to handle submissions to the login page.
Also updating the navigation header to show Take Assessment when the
user is authenticated.
|
|
|