From 9b5173fd9ca3dbf46929b2f91272cdbf254b61ee Mon Sep 17 00:00:00 2001 From: Andro Gvivradze Date: Fri, 9 Dec 2022 15:50:39 +0000 Subject: [PATCH] [IMP] survey: show images in result page MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit With this commit we add images to the answers in result page. when clicking on the image, we open a survey_image_zoomer widget. We also add "Responsible" filter on survey.survey view task-3092439 closes odoo/odoo#108430 Signed-off-by: Warnon Aurélien (awa) --- addons/survey/static/src/js/survey_result.js | 17 +++++++++++++++++ .../src/scss/survey_templates_results.scss | 7 +++++++ addons/survey/views/survey_survey_views.xml | 1 + .../views/survey_templates_statistics.xml | 15 +++++++++++---- 4 files changed, 36 insertions(+), 4 deletions(-) diff --git a/addons/survey/static/src/js/survey_result.js b/addons/survey/static/src/js/survey_result.js index 83b41713ba5..2077a684325 100644 --- a/addons/survey/static/src/js/survey_result.js +++ b/addons/survey/static/src/js/survey_result.js @@ -3,6 +3,7 @@ odoo.define('survey.result', function (require) { var _t = require('web.core')._t; const { loadJS } = require('@web/core/assets'); +const { SurveyImageZoomer } = require("@survey/js/survey_image_zoomer"); var publicWidget = require('web.public.widget'); // The given colors are the same as those used by D3 @@ -416,6 +417,7 @@ publicWidget.registry.SurveyResultWidget = publicWidget.Widget.extend({ 'click a.filter-failed': '_onFilterFailedClick', 'click a.filter-passed': '_onFilterPassedClick', 'click a.filter-passed-and-failed': '_onFilterPassedAndFailedClick', + 'click .o_survey_answer_image': '_onAnswerImgClick', }, //-------------------------------------------------------------------------- @@ -556,6 +558,21 @@ publicWidget.registry.SurveyResultWidget = publicWidget.Widget.extend({ window.location.href = window.location.pathname + '?' + params.toString(); }, + /** + * Called when an image on an answer in multi-answers question is clicked. + * Starts a widget opening a dialog to display the now zoomable image. + * this.imgZoomer is the zoomer widget linked to the survey result widget, if any. + * + * @private + * @param {Event} ev + */ + _onAnswerImgClick: function (ev) { + ev.preventDefault(); + new SurveyImageZoomer({ + sourceImage: $(ev.currentTarget).attr('src') + }).appendTo(document.body); + }, + /** * Returns the modified pathname string for filters after adding or removing an * answer filter (from click event). Filters are formatted as `"rowX,ansX", where diff --git a/addons/survey/static/src/scss/survey_templates_results.scss b/addons/survey/static/src/scss/survey_templates_results.scss index d43f05df5ab..d7d5e5e404e 100644 --- a/addons/survey/static/src/scss/survey_templates_results.scss +++ b/addons/survey/static/src/scss/survey_templates_results.scss @@ -73,6 +73,13 @@ border-radius: 2em 0 0 2em; } } + .o_survey_answer_image{ + cursor: zoom-in; + &:hover { + box-sizing: border-box; + box-shadow: 0 0 5px 2px grey; + } + } .o_survey_answer i { padding:3px; cursor:pointer; diff --git a/addons/survey/views/survey_survey_views.xml b/addons/survey/views/survey_survey_views.xml index 5d90287b0fb..8e4aa4dce44 100644 --- a/addons/survey/views/survey_survey_views.xml +++ b/addons/survey/views/survey_survey_views.xml @@ -368,6 +368,7 @@ + diff --git a/addons/survey/views/survey_templates_statistics.xml b/addons/survey/views/survey_templates_statistics.xml index 3c690b16ddc..22bdd7b21b2 100644 --- a/addons/survey/views/survey_templates_statistics.xml +++ b/addons/survey/views/survey_templates_statistics.xml @@ -62,6 +62,7 @@ +
+ t-attf-class="tab-pane #{'active' if not question_answered else ''}"> + @@ -386,6 +388,11 @@

+
AnswerImage User Choice Score
+
+
%