summaryrefslogtreecommitdiff
path: root/addons/web/static/src/js/views/basic/basic_renderer.js
diff options
context:
space:
mode:
authorRobot Odoo <xmo+roboto@odoo.com>2019-02-06 18:44:00 +0100
committerGitHub <noreply@github.com>2019-02-06 18:44:00 +0100
commitb6839a969d7fd6924c5f373977a961f65dd42ac1 (patch)
treeaffefe4c007d4b686b761ab99812384110baa57f /addons/web/static/src/js/views/basic/basic_renderer.js
parenteacaf02544fe3b2c51e48234bffcf86aff6841f1 (diff)
parent120ff4a1db2269431ebaa33deb4428504daf6be6 (diff)
[IMP] survey: scoring & certification
Task #1902306 Purpose ======= Preliminary cleanup --------------------------- survey.question is now also the model used for the survey's pages (with the "is_page" field set to True). This allows to put all the pages and questions together in a o2m field on the view side and easily reorganize your survey by dragging the items around. It also removes one level of encoding by directly having 'Add a page' and 'Add a question' links on the tree view of questions, enabling a faster encoding. However, this has the downside of making the code reading a little bit more complicated. Efforts were made at the model level to create computed fields so that the use of these models still seems somewhat logical. That means: - A survey still has "page_ids" (question_and_page_ids filtered on is_page = True) - These "page_ids" still have question_ids (questions located between this page and the next) - These "question_ids" still have a "page_id" That makes the use and display of these information at view and controller levels easier to understand. Certification ---------------- This commit adds certification capabilities to the survey module. A certification is a survey with the "certification" flag set to true than can be linked to a certification email template that contains a certification document (PDF). This template can be edited by the user in the technical settings to customize the certification email/document. To be able to implement this certification concept, we also have to add scoring mechanisms to surveys. survey.questions of type 'simple_choice' and 'multiple_choice' now have scores for the suggested answers. These question scores allow to compute a global score that is used to determine whether the user has successfully passed the certification or not. As additional features, we also have: - A time limit with an interface timer that limits the test to X minutes When reached, the survey is automatically submitted and unregistered (= unsubmitted) answers are not taken into account. - A limited number of attempts for the survey/certification If reached, the user can't take the survey/certification anymore The 'survey result' layout was adapted accordingly to show the success rate of participants and the correct answers to the survey questions. Randomization and survey layout selection --------------------------------------------------------- The "page" concept is now only present in the user interface. Surveys are split in "sections" that have two purposes: - Organizing a (long) survey/certification - Allow to pick a random questions count for that section (more information here after) On the user interface, based on the questions_layout field, surveys are displayed: - On a single page, where sections still appear but are only used as visual separations - On multiple pages, having one page per section (this matches the previous behavior) - On multiple pages, having one page per *question* On top of that page concept, this commit added randomization for the survey questions. The randomization mechanism will take X questions per section of the survey. The survey.user_input is initialized with the selected questions to be sure to keep that set of questions and avoid showing a new set of questions every time the user refreshes the page. This also allows to easilly go back and know which question we have to show. Specs ======= - Create a new survey : - Add a description field for the survey - Options on a survey : - Passing score : (sum of all good answers) in % - If No scoring => No passing score, no certificate - If Scoring with answers => Passing score and can see the answers (can create certificate) - If Scoring without answers => Passing score but can't review the answers at the end (can create certificate) - for the questions, if "no scoring" selected, can 't see the option "good answer" and "score" on the questions - If the 2 others options, can see the options "good answer" and "score" on the questions - all the types of questions are available for each option. - Questions - Add the option correct answer on the multiples questions (one or more good answers) - Certifications - If scoring, force "mandatory" for "mutliple choices (1or multiple answers)" - On the dashboard => visual information that this specific survey is a certification - Time Limit : The student is informed on the home screen of the survey of the time limit. The clock start when he clicks on "start survey" - Template of the certificate : send email with attachment PDF - Front-end : - Add some margin - Replace "Back to survey" with the blue-bar from the portal - Add a timer (start when the survey starts) - Add a progress bar (number of section and number of question inside the section) - Analyse of the results : - First a global graph with the number of people who''ve participated and passed the test - Stages of a survey : - Remove the stage "Permanent" - 3 stages : - draft : not on-line but can be tested (with phantom token) - In progress : on-line - closed : not on-line - Who can test a survey : the manager and the user. Add this condition to the phantom token. closes odoo/odoo#29577
Diffstat (limited to 'addons/web/static/src/js/views/basic/basic_renderer.js')
0 files changed, 0 insertions, 0 deletions