Added Javascript to template.
Adjusted CSS so the max width can be a bit wider.
This won't affect Javascript.
Still need to refactor so code is tidier - right now same code included
multiple times on pages.
dependency_checker.py: Now filters out integers in sublists, so that
choice-multiple-values only returns a list of the checked items, not the
values in their boxes.
views.py: Documented the reason for the across-page dependency bug.
Still needs to be fixed in the code.
Note: removed class from span containing value box and put it around span
containing choice's text
Choice text will wrap if necessary.
Currently, width of choice text is 35% - see questionnaire.css
choice.py:
1) Performs validations - requires integers adding up to 100.
2) When key found in POST data, now extracts value and puts it
in box. Checks POST data first, before checking database, so most recently
entered data shows up in box. Also refactored code that was getting
lengthy. NOTICED BUG WHERE DATA FROM BOTH DATABASE AND MOST RECENT POST
REQUEST SHOW UP AT THE SAME TIME.
views.py: Now allow value boxes to trigger other events in the
system. Right now there's no check syntax for this kind of dependency,
though.
choice-multiple-freeform.html: Text box and % sign wrapped up in the same
SPAN that now has a dependency check instead of the dependency check being
on the text box inside.
questionnaire.css: No need for styling disabled input boxes anymore for
this question type. Span disappears, not box.
questionset.js: Added ability to show/hide spans (with triggers).
choice.py: Had to change jstriggers to set off containing SPAN, not
input box.
Works both on page load and when user interacts. Remembers to
enable/disable checkbox on returning.
choice.py: Added jstriggers for text fields (so they'd be triggered when
checkboxes are checked/unchecked), and return a new dict item qvalues
which contains string qnum_value for each choice selected.
choice-multiple-freeform.html: Now has a dependency check for each
input box - dependent on associated checkbox being checked.
views.py: show_questionnaire() now processes qdict['qvalues'] to send
to questionset.html to trigger initial valchanged() calls - to make sure
inputs are properly enabled/disabled when page loads.
*** This may also allow display of other questions to be conditional on
values of choice-multiple questions.