EM Enhancements
From LimeSurvey Manual
Notes about adding additional enhancements to the expression manager.
- Will changes break compatibility and thus bump major version?
- What's the priority?
- Who has time to implement it?
Write to token attributes from survey
See EM_Enhancements#Existing_plugins_way
Use-cases
- Update or correct address saved in token attribute (see Write-at-submission)
- When using more than one survey, write e.g. disease in token attribute, then use it in following surveys. "How do you feel now about <disease>?"
Usage
{TOKEN.ATTRIBUTE_1 = Q123.shown}
Another version, using :=
for assignment:
{TOKEN.ATTRIBUTE_1 := Q123.shown}
Yet another version, using a function:
{writeTokenAttribute(<token attribute name>, <value>)}
Would also work with readTokenAttribute
.
(Or maybe "write_token_attr" and "read_token_attr".)
Implementation
TODO
Make EM access earlier runs of same survey (waves)
TODO
Make default value better (expressions)
See : yesNo_defaultvalue_widget
Write-at-submission
- Existing plugin : Simple usage of afterSurveySubmitted updateTokenByResponse
Expand EM using plugin
- Add a way for pugin to update/extend Expression manager knowVars (currenlty private)
- Only at start ? Allow to add new var for each question, example
- QCODE.help
- QCODE.statMedium , QCODE.statCount ... see getStatInSurvey
- Maybe better with QCODE.pluginname.varfromplugin (by default) . Decison must be done about : allowing update existing part.
- PluginName:Something (like we have TOKEN:SOMETHING)
- At whole page ? Allowing to update with a specific params in beforeSurveyPage ? Or create a new updateKnowVar static function ?
- Allow to update TOKEN:SOMETHING too
- Allow same than before
- Only at start ? Allow to add new var for each question, example
Existing plugins way
- updateTokenAttribute
- Update {TOKEN:ATTRIBUTE_X} during survey
- Show the only known current solution to udpate existing knowVars (found by this dev)
- Recnstruct WHOLE session just to update some var : server broker ;)
Read quota from expression
- If have a GUI for equation question type : we have an nothing to update more. And we have a way.
- This can be tested with hacking database ;) (already done)