Commit graph

99 commits

Author SHA1 Message Date
Patrick Donelan
146373937d Fixed two new Survey bugs
* Survey response startDate stored twice
startDate was being stored both in a column in Survey_response and also inside the
serialised responseJSON. Consolidated to column and moved startDate methods to
Survey.pm where they are actually used. Was not causing errors because both copies
were initialised to "now" at response creation time, and then never changed (this is also
why we don't need any repair code to fix existing survey repsonses in the wild).

* Survey ExpireIncompleteSurveyResponses Workflow Activity not enabled
The only time you'd actually want to modify startDate is when you're trying to simulate
response expiry in test code, which is why I found the above bug when I was writing the
missing test suite for ExpireIncompleteSurveyResponses. Along with test suite, added
upgrade code to enable workflow activity and add it  to the Daily Maintenance Tasks
workflow. Also made minor fixes to the workflow activity, such as making sure it uses
the correct isComplete code.
2009-08-07 01:08:39 +00:00
Patrick Donelan
0265e1dfbd Fixed Survey::Test diagnostics when comparing complex data structures 2009-07-03 01:39:16 +00:00
Patrick Donelan
b5186bfbab fixed #10565: Survey: add question doing double-create 2009-06-22 07:08:08 +00:00
Patrick Donelan
cbc308c55a SurveyJSON size reduction/optimization
SurveyJSON was storing a lot of redundant information (every setting on
every single section/question/answer, which, in most cases, will simply
take on the default values). This was bloating the surveyJSON property in
the db, and equally as importantly, slowing down Survey because it had to
do a lot of JSON parsing on the serialised surveyJSON object.

We now factor out and store the current section/question/answer defaults
along with the surveyJSON data itself, which means that we only needs to
store properties that differ from the defaults. This results is a massive
reduction in the size of the serialized surveyJSON stored in the database,
as well as a speed-up in json parsing time.

The compression/uncompression happens transparently to the rest of Survey.
2009-06-19 08:07:18 +00:00
Patrick Donelan
3e5d5804f6 Made Survey tests a little less dependent on multiple choice bundle defaults 2009-06-16 06:25:09 +00:00
Colin Kuskie
f5851c96ff Graceful dying without TAP::Harness v3 2009-06-11 17:03:32 +00:00
Patrick Donelan
9004e5d711 Survey cleanup and minor bug fixes
Cleaned up edit page tabs
Improved API docs
Added noCreate option to responseId so that it doesn't create unnecessary responses
Added groupToTakeSurvey priv check to takeSurvey
2009-06-09 03:27:06 +00:00
Patrick Donelan
5acade845a Fixed Survey test suite 'tagged' check to work with nested data 2009-06-03 07:15:52 +00:00
Patrick Donelan
9702ffcaac Fixed Survey section-level branch precedence bug
For Sections with questions spread out over multiple pages, branch
expressions should only happen on the last page of the Section.
Added explicit test.
2009-06-03 02:12:00 +00:00
Patrick Donelan
da595da89e Remove bloat from Survey response record to reduce json serialisation time 2009-06-03 02:11:31 +00:00
Patrick Donelan
216a48580a Fixed #9927 Survey - verbatim
Fixed inconsistencies between answer 'comment' and 'verbatim'.
Updated tests.
Made minor changes to reporting methods but they still need some love.
2009-06-03 00:29:29 +00:00
Patrick Donelan
1a4b673843 Made Survey Test Suite feature was dependent on TAP::Parser and TAP::Parser::Aggregator 2009-05-29 01:04:45 +00:00
Colin Kuskie
67cce548ff Add enableSurveyExpressionEngine to default WebGUI conf file.
Rerun the upgrade subroutine to handle newer surveys.
Handle the config option being off in Survey/Test.t
2009-05-28 23:28:52 +00:00
Patrick Donelan
beff1d2166 Survey NYTProf performance improvements
initSurveyOrder now builds a lookup cache to speed up branching
Test suite caches surveyOrder and response itself
Unnecessary sub calls reduced
Updated tests
My largest survey instance test suite, which contains > 1000 tests,
now runs nearly 8 times faster.
2009-05-28 07:24:11 +00:00
Patrick Donelan
d14cf19e9d Added Survey tests for more question types 2009-05-28 07:23:43 +00:00
Patrick Donelan
3a25e806c6 Survey bug fixes
Fixed bugs in the handling of logical sections,
creating of responses and counting of responses.
Added in a bunch of new tests.
Jslinting of all survye js files
2009-05-23 09:54:03 +00:00
Patrick Donelan
302e217e7a Survey test suite added support for checking answer properties 2009-05-21 08:22:11 +00:00
Patrick Donelan
f55559e124 Survey: fixed subtle bug in testing of answers with recordedAnswer set to q{} 2009-05-21 08:21:54 +00:00
Patrick Donelan
d246454b2f Survey: fixed bugs in handling of test setup & Slider question type 2009-05-21 08:21:35 +00:00
Patrick Donelan
8baf09948e Fixed bug where ResponseJSON was not properly resetting between
tests. Refactored out reset() sub to make it easy for people to
achieve reliable resetting of rJSON objects.
2009-05-21 08:21:17 +00:00
Patrick Donelan
59329e9718 Survey tweaks
Added Survey 'Tagged' question type, which builds its answers dynamically from tagged data
Made Survey test suite more forgiving about JSON parsing
2009-05-19 02:45:45 +00:00
Patrick Donelan
a9638ae691 Survey: Let them eat sort 2009-05-19 02:45:26 +00:00
Patrick Donelan
9cbd30c3d8 Refactored Survey test suite diagnostics etc.. 2009-05-17 08:15:59 +00:00
Patrick Donelan
3105b27034 Improved Survey test setup 2009-05-16 09:06:00 +00:00
Patrick Donelan
4d181da7f9 SurveyJSON bug fixes
Fixed bug in SurveyJSON::update to stop it updating questionType when not asked
Fixed unsafe reference bug in SurveyJSON::getMultipleChoiceBundle
Added more Survey Test Suite tests
2009-05-16 07:24:55 +00:00
Patrick Donelan
7e0796cc78 Some minor Survey bug fixes
Removed evil "use JSON -support_by_pp"
test() and test_mc() now intelligently start at the right place and give better TAP descriptions
2009-05-16 01:13:20 +00:00
Patrick Donelan
2bde3dc02c Moved Survey test upgrade to 7.7.6-7.7.7 upgrade script 2009-05-15 23:42:10 +00:00
Patrick Donelan
7829d708ea Survey test suite now functional.
Tests are defined via a JSON-encoded spec, through Web Crud interface
Test results are TAP encoded, and TAP parsed and prettified into HTML
Added i18n, help and tests
2009-05-15 10:33:47 +00:00
Patrick Donelan
fdf7e68827 Added Survey feedback template
Added survey feedback template and method for returning the templated feedback for a given response
Used this to clean up the default survey template, and updated the i18n and help
2009-05-13 08:59:50 +00:00
Patrick Donelan
6815cd76aa Improved handling of Survey restart 2009-05-13 02:10:34 +00:00
Patrick Donelan
79db642219 Refactored Survey for more happy endings
Refactored www_submitQuestions to use utility submitQuestions sub (for ease of testing)
Replaced numeric flags, completedCode etc..
Added restart() and exitUrl() to the Expression Engine
Added more Survey instance tests
2009-05-12 12:36:26 +00:00
Patrick Donelan
7a3ecea4bb Survey Expressions can now access verbatim values 2009-05-11 06:55:13 +00:00
Patrick Donelan
cf98c81461 Fixed Survey's handling of multi-answer questions (e.g. maxAnswers != 1)
Now stores all supplied answers to multi-answer question as arrayref
Variable [[var]] text replacement converts to comma-separated list
Expression Engine's value() returns appropriate value depending on context
Expression Engine's score() does sum of multi-answers, as you would expect
Updated related i18n & hover-help, and tests
Cleaned up survey js somewhat
2009-05-08 08:00:04 +00:00
Patrick Donelan
f3ed30d939 Refactored Survey ExpressionEngine tag() util into tag() setter and tagged() accessor.
Updated i18n to reflect the fact that min/max/step are used for all numeric types, not just slider.

Also updated textCols/Rows i18n.
2009-05-06 05:53:10 +00:00
Patrick Donelan
3dda2b49d4 Survey Branch Expressions now allow you to "tag" data along the way and store
it in the response data structure along with the actual user input. Tag data
can be used in subsequent expressions, in [[tag]] templated text replacement,
and to classify responses in an arbitrary way.

Refactored Survey expression utility subs that lookup values/scores/tags in
external assets.

Fixed bug whereby only highest precedence Survey expression was being evaluated
rather than letting them all run and do their own short-circuiting.
2009-05-04 06:28:05 +00:00
Patrick Donelan
ac1a00b252 Survey Branch Expressions can now test whether a question
has been reached/answered, rather than just testing for the value
of a response
2009-05-04 04:06:40 +00:00
Colin Kuskie
d83f1fd5fc Last batch of User and Group cleanups. 2009-05-01 03:29:32 +00:00
Graham Knop
1937ef3ab6 fix survey test 2009-04-30 21:30:15 +00:00
Patrick Donelan
5e9db959ad Added another Survey ResponseJSON test 2009-04-24 03:43:40 +00:00
Patrick Donelan
6c58e1de81 Added Survey meta-targets NEXT_SECTION and END_SURVEY to allow for more
convenient jumping
Improved processGotoExpression tests
2009-04-22 07:19:23 +00:00
Patrick Donelan
99855719d0 Survey bug fixes: Verbatim responses now properly recorded
Added useText option to responseValuesByVariableName so that it can be
used for both branch expressions and [[var]] text substitution correctly
Added extra verbatim handling to [[var]] text substitution
All survey test now pass, except for one involving True/False
multi-chocie bundle, soon to be fixed by updating bundle
2009-04-22 05:16:29 +00:00
Patrick Donelan
c3ea6d4683 Added Survey back button, with option to turn it on/off, tests, and i18n
Noticed that some Survey tests are broken, will fix tomorrow
2009-04-21 07:12:07 +00:00
Graham Knop
edca468d50 prevent test from leaking users and surveys 2009-04-10 00:51:44 +00:00
Patrick Donelan
546d48f68b Updated Survey tests to not leave behind versionTag 2009-04-09 04:17:23 +00:00
Patrick Donelan
aa8379188a Survey branch expressions can now resolve score()s and value()s from
other survey instances.
2009-04-09 04:04:39 +00:00
Patrick Donelan
a7cb9b031d Made Survey ExpressionEngine disabled by default, controlled via config
file enableSurveyExpressionEngine flag
Added branching based on question score and section score total
Added more tests
2009-04-08 08:12:44 +00:00
Patrick Donelan
9ea4f1cd20 Replaced Survey parseGotoExpression with dedicated ExpressionEngine.
Improved gotoExpression validation error reporting
Added lots more tests
2009-04-08 08:12:14 +00:00
Patrick Donelan
c1b18ea9bb Some fixes to the way Survey handles recordedAnswer, value, etc.. 2009-04-07 07:15:33 +00:00
Patrick Donelan
c1ac5b9761 Fixed SurveyJSON->questions which was short-changing getGotoTargets 2009-04-02 05:55:23 +00:00
Patrick Donelan
be4133d72c Improved Survey validation messages 2009-04-02 05:04:23 +00:00