Actions

Question attributes redesign

From LimeSurvey Manual

The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.

Question attribute code saw a rise in complexity between LS3 and LS4. This page will take a step back and analyze if it can be simplified.

Domain diagram

Domain diagram

Class diagram

TODO

Database design

TODO.

Will not change.

Scenarios

  • Get potential question attribute from core
  • Import question attribute from XML/question theme
  • Add (replace ?) question attribute from plugins
  • Save question attribute value (for all language or not)
  • Load question attributes for question type/question id
  • Load question attributes for question type/question id for a single language (for qanda/QuestionTheme and SurveyTheme)

---

> Load question attributes for question type/question id for a single language (for qanda/QuestionTheme and SurveyTheme)

If you already can load for all languages, you don't have to load for one language, IMO. Unless the number of languages are > 20, which I don't think happens very often...? Also, this is done via lazy loading through the ORM. I think. (Unless explicitly loading it eagerly.)

Olle (talk) 17:31, 3 February 2020 (CET)

For twig : is better to have a single language … {{ Question.i18attribute }} and not {{ Question.i18attribute[????] }}

DenisChenu (talk) 17:38, 3 February 2020 (CET)

OK, good point. That's not how it works now?

Olle (talk) 17:41, 3 February 2020 (CET)


In QuestionTemplate.php https://github.com/LimeSurvey/LimeSurvey/commit/b34f839d202ba0061412b5bd313d08e1d34d3309 yes, but not in QuestionAttribute https://github.com/LimeSurvey/LimeSurvey/blob/1891591465f646c51eac8ff4523e91c6343b1d68/application/models/QuestionAttribute.php#L253-L260, then need to remind this point.

DenisChenu (talk) 18:16, 3 February 2020 (CET)

Notes

TODO

Future evolution and remark