From 995b7bbbc62952941f4fd8a51b920ef167de9795 Mon Sep 17 00:00:00 2001
From: Carlos Roca <carlos.roca@tecnativa.com>
Date: Wed, 7 Jun 2023 10:21:05 +0200
Subject: [PATCH] [FIX] web_pivot_computed_measure: Error when computed measure
 takes Infinity value

---
 web_pivot_computed_measure/README.rst         | 15 ++++---
 web_pivot_computed_measure/__manifest__.py    |  2 +-
 web_pivot_computed_measure/i18n/ca.po         | 45 +++++++++++--------
 web_pivot_computed_measure/i18n/es.po         |  2 +-
 .../static/description/index.html             | 42 ++++++++---------
 .../static/src/pivot/pivot_renderer.esm.js    | 15 +++++++
 6 files changed, 74 insertions(+), 47 deletions(-)
 create mode 100644 web_pivot_computed_measure/static/src/pivot/pivot_renderer.esm.js

diff --git a/web_pivot_computed_measure/README.rst b/web_pivot_computed_measure/README.rst
index 4e7a16a8c..7b53c329a 100644
--- a/web_pivot_computed_measure/README.rst
+++ b/web_pivot_computed_measure/README.rst
@@ -2,10 +2,13 @@
 Web Pivot Computed Measure
 ==========================
 
-.. !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+.. 
+   !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
    !! This file is generated by oca-gen-addon-readme !!
    !! changes will be overwritten.                   !!
    !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+   !! source digest: sha256:ece4336d91177883eff784573de23cd6a67b1044e080eb758f7de5e6374d57f0
+   !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
 
 .. |badge1| image:: https://img.shields.io/badge/maturity-Beta-yellow.png
     :target: https://odoo-community.org/page/development-status
@@ -19,11 +22,11 @@ Web Pivot Computed Measure
 .. |badge4| image:: https://img.shields.io/badge/weblate-Translate%20me-F47D42.png
     :target: https://translation.odoo-community.org/projects/web-15-0/web-15-0-web_pivot_computed_measure
     :alt: Translate me on Weblate
-.. |badge5| image:: https://img.shields.io/badge/runbot-Try%20me-875A7B.png
-    :target: https://runbot.odoo-community.org/runbot/162/15.0
-    :alt: Try me on Runbot
+.. |badge5| image:: https://img.shields.io/badge/runboat-Try%20me-875A7B.png
+    :target: https://runboat.odoo-community.org/builds?repo=OCA/web&target_branch=15.0
+    :alt: Try me on Runboat
 
-|badge1| |badge2| |badge3| |badge4| |badge5| 
+|badge1| |badge2| |badge3| |badge4| |badge5|
 
 Adds support for computed measures on the pivot view.
 
@@ -72,7 +75,7 @@ Bug Tracker
 
 Bugs are tracked on `GitHub Issues <https://github.com/OCA/web/issues>`_.
 In case of trouble, please check there if your issue has already been reported.
-If you spotted it first, help us smashing it by providing a detailed and welcomed
+If you spotted it first, help us to smash it by providing a detailed and welcomed
 `feedback <https://github.com/OCA/web/issues/new?body=module:%20web_pivot_computed_measure%0Aversion:%2015.0%0A%0A**Steps%20to%20reproduce**%0A-%20...%0A%0A**Current%20behavior**%0A%0A**Expected%20behavior**>`_.
 
 Do not contact contributors directly about support or help with technical issues.
diff --git a/web_pivot_computed_measure/__manifest__.py b/web_pivot_computed_measure/__manifest__.py
index d18096526..7f172c2ed 100644
--- a/web_pivot_computed_measure/__manifest__.py
+++ b/web_pivot_computed_measure/__manifest__.py
@@ -3,7 +3,7 @@
 {
     "name": "Web Pivot Computed Measure",
     "category": "web",
-    "version": "15.0.1.0.1",
+    "version": "15.0.1.0.2",
     "author": "Tecnativa, Odoo Community Association (OCA)",
     "license": "AGPL-3",
     "website": "https://github.com/OCA/web",
diff --git a/web_pivot_computed_measure/i18n/ca.po b/web_pivot_computed_measure/i18n/ca.po
index 92348fdc4..2286bb66e 100644
--- a/web_pivot_computed_measure/i18n/ca.po
+++ b/web_pivot_computed_measure/i18n/ca.po
@@ -18,133 +18,140 @@ msgstr ""
 
 #. module: web_pivot_computed_measure
 #. openerp-web
-#: code:addons/web_pivot_computed_measure/static/src/xml/web_pivot_computed_measure.xml:0
+#: code:addons/web_pivot_computed_measure/static/src/view.xml:0
+#, python-format
+msgid "!measure.startsWith('__computed_')"
+msgstr ""
+
+#. module: web_pivot_computed_measure
+#. openerp-web
+#: code:addons/web_pivot_computed_measure/static/src/dropdown_item_custom_measure/dropdown_item_custom_measure.xml:0
 #, python-format
 msgid "Add"
 msgstr "Afegir"
 
 #. module: web_pivot_computed_measure
 #. openerp-web
-#: code:addons/web_pivot_computed_measure/static/src/xml/web_pivot_computed_measure.xml:0
+#: code:addons/web_pivot_computed_measure/static/src/dropdown_item_custom_measure/dropdown_item_custom_measure.xml:0
 #, python-format
 msgid "Can be empty"
 msgstr "Pot estar buit"
 
 #. module: web_pivot_computed_measure
 #. openerp-web
-#: code:addons/web_pivot_computed_measure/static/src/xml/web_pivot_computed_measure.xml:0
+#: code:addons/web_pivot_computed_measure/static/src/dropdown_item_custom_measure/dropdown_item_custom_measure.xml:0
 #, python-format
 msgid "Computed Measure"
 msgstr "Mesura calculada"
 
 #. module: web_pivot_computed_measure
 #. openerp-web
-#: code:addons/web_pivot_computed_measure/static/src/xml/web_pivot_computed_measure.xml:0
+#: code:addons/web_pivot_computed_measure/static/src/dropdown_item_custom_measure/dropdown_item_custom_measure.xml:0
 #, python-format
 msgid "Custom"
 msgstr "Personalitat"
 
 #. module: web_pivot_computed_measure
 #. openerp-web
-#: code:addons/web_pivot_computed_measure/static/src/xml/web_pivot_computed_measure.xml:0
+#: code:addons/web_pivot_computed_measure/static/src/dropdown_item_custom_measure/dropdown_item_custom_measure.xml:0
 #, python-format
 msgid "Div (m1 / m2)"
 msgstr "Div (m1 / m2)"
 
 #. module: web_pivot_computed_measure
 #. openerp-web
-#: code:addons/web_pivot_computed_measure/static/src/xml/web_pivot_computed_measure.xml:0
+#: code:addons/web_pivot_computed_measure/static/src/dropdown_item_custom_measure/dropdown_item_custom_measure.xml:0
 #, python-format
 msgid "Float"
 msgstr "Comma flotant"
 
 #. module: web_pivot_computed_measure
 #. openerp-web
-#: code:addons/web_pivot_computed_measure/static/src/xml/web_pivot_computed_measure.xml:0
+#: code:addons/web_pivot_computed_measure/static/src/dropdown_item_custom_measure/dropdown_item_custom_measure.xml:0
 #, python-format
 msgid "Format"
 msgstr "Format"
 
 #. module: web_pivot_computed_measure
 #. openerp-web
-#: code:addons/web_pivot_computed_measure/static/src/xml/web_pivot_computed_measure.xml:0
+#: code:addons/web_pivot_computed_measure/static/src/dropdown_item_custom_measure/dropdown_item_custom_measure.xml:0
 #, python-format
 msgid "Formula"
 msgstr "Fórmula"
 
 #. module: web_pivot_computed_measure
 #. openerp-web
-#: code:addons/web_pivot_computed_measure/static/src/xml/web_pivot_computed_measure.xml:0
+#: code:addons/web_pivot_computed_measure/static/src/dropdown_item_custom_measure/dropdown_item_custom_measure.xml:0
 #, python-format
 msgid "Integer"
 msgstr "Enter"
 
 #. module: web_pivot_computed_measure
 #. openerp-web
-#: code:addons/web_pivot_computed_measure/static/src/xml/web_pivot_computed_measure.xml:0
+#: code:addons/web_pivot_computed_measure/static/src/dropdown_item_custom_measure/dropdown_item_custom_measure.xml:0
 #, python-format
 msgid "Measure 1"
 msgstr "Mesura 1"
 
 #. module: web_pivot_computed_measure
 #. openerp-web
-#: code:addons/web_pivot_computed_measure/static/src/xml/web_pivot_computed_measure.xml:0
+#: code:addons/web_pivot_computed_measure/static/src/dropdown_item_custom_measure/dropdown_item_custom_measure.xml:0
 #, python-format
 msgid "Measure 2"
 msgstr "Mesura 2"
 
 #. module: web_pivot_computed_measure
 #. openerp-web
-#: code:addons/web_pivot_computed_measure/static/src/xml/web_pivot_computed_measure.xml:0
+#: code:addons/web_pivot_computed_measure/static/src/dropdown_item_custom_measure/dropdown_item_custom_measure.xml:0
 #, python-format
 msgid "Mult (m1 * m2)"
 msgstr "Mult (m1 * m2)"
 
 #. module: web_pivot_computed_measure
 #. openerp-web
-#: code:addons/web_pivot_computed_measure/static/src/xml/web_pivot_computed_measure.xml:0
+#: code:addons/web_pivot_computed_measure/static/src/dropdown_item_custom_measure/dropdown_item_custom_measure.xml:0
 #, python-format
 msgid "Name"
 msgstr "Nom"
 
 #. module: web_pivot_computed_measure
 #. openerp-web
-#: code:addons/web_pivot_computed_measure/static/src/xml/web_pivot_computed_measure.xml:0
+#: code:addons/web_pivot_computed_measure/static/src/dropdown_item_custom_measure/dropdown_item_custom_measure.xml:0
 #, python-format
 msgid "Operation"
 msgstr "Operació"
 
 #. module: web_pivot_computed_measure
 #. openerp-web
-#: code:addons/web_pivot_computed_measure/static/src/xml/web_pivot_computed_measure.xml:0
+#: code:addons/web_pivot_computed_measure/static/src/dropdown_item_custom_measure/dropdown_item_custom_measure.xml:0
 #, python-format
 msgid "Perc (m1 * 100 / m2)"
 msgstr "Perc (m1 * 100 / m2)"
 
 #. module: web_pivot_computed_measure
 #. openerp-web
-#: code:addons/web_pivot_computed_measure/static/src/xml/web_pivot_computed_measure.xml:0
+#: code:addons/web_pivot_computed_measure/static/src/dropdown_item_custom_measure/dropdown_item_custom_measure.xml:0
 #, python-format
 msgid "Percentage"
 msgstr "Percentatge"
 
 #. module: web_pivot_computed_measure
 #. openerp-web
-#: code:addons/web_pivot_computed_measure/static/src/xml/web_pivot_computed_measure.xml:0
+#: code:addons/web_pivot_computed_measure/static/src/dropdown_item_custom_measure/dropdown_item_custom_measure.xml:0
 #, python-format
 msgid "Sub (m1 - m2)"
 msgstr "Resta (m1 - m2)"
 
 #. module: web_pivot_computed_measure
 #. openerp-web
-#: code:addons/web_pivot_computed_measure/static/src/xml/web_pivot_computed_measure.xml:0
+#: code:addons/web_pivot_computed_measure/static/src/dropdown_item_custom_measure/dropdown_item_custom_measure.xml:0
 #, python-format
 msgid "Sum (m1 + m2)"
 msgstr "Suma (m1 + m2)"
 
 #. module: web_pivot_computed_measure
 #. openerp-web
-#: code:addons/web_pivot_computed_measure/static/src/js/pivot_model.js:0
+#: code:addons/web_pivot_computed_measure/static/src/pivot/pivot_model.esm.js:0
 #, python-format
 msgid ""
 "This measure is currently used by a 'computed measure'. Please, disable the "
diff --git a/web_pivot_computed_measure/i18n/es.po b/web_pivot_computed_measure/i18n/es.po
index 4b375526c..7fa62c897 100644
--- a/web_pivot_computed_measure/i18n/es.po
+++ b/web_pivot_computed_measure/i18n/es.po
@@ -152,7 +152,7 @@ msgstr "Sum (m1 + m2)"
 
 #. module: web_pivot_computed_measure
 #. openerp-web
-#: code:addons/web_pivot_computed_measure/static/src/pivot/pivot_model.js:0
+#: code:addons/web_pivot_computed_measure/static/src/pivot/pivot_model.esm.js:0
 #, python-format
 msgid ""
 "This measure is currently used by a 'computed measure'. Please, disable the "
diff --git a/web_pivot_computed_measure/static/description/index.html b/web_pivot_computed_measure/static/description/index.html
index cf9c32d4a..b124f1866 100644
--- a/web_pivot_computed_measure/static/description/index.html
+++ b/web_pivot_computed_measure/static/description/index.html
@@ -1,20 +1,20 @@
-<?xml version="1.0" encoding="utf-8" ?>
+<?xml version="1.0" encoding="utf-8"?>
 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
-<meta name="generator" content="Docutils 0.15.1: http://docutils.sourceforge.net/" />
+<meta name="generator" content="Docutils: https://docutils.sourceforge.io/" />
 <title>Web Pivot Computed Measure</title>
 <style type="text/css">
 
 /*
 :Author: David Goodger (goodger@python.org)
-:Id: $Id: html4css1.css 7952 2016-07-26 18:15:59Z milde $
+:Id: $Id: html4css1.css 8954 2022-01-20 10:10:25Z milde $
 :Copyright: This stylesheet has been placed in the public domain.
 
 Default cascading style sheet for the HTML output of Docutils.
 
-See http://docutils.sf.net/docs/howto/html-stylesheets.html for how to
+See https://docutils.sourceforge.io/docs/howto/html-stylesheets.html for how to
 customize this style sheet.
 */
 
@@ -366,25 +366,27 @@ ul.auto-toc {
 <!-- !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
 !! This file is generated by oca-gen-addon-readme !!
 !! changes will be overwritten.                   !!
+!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+!! source digest: sha256:ece4336d91177883eff784573de23cd6a67b1044e080eb758f7de5e6374d57f0
 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! -->
-<p><a class="reference external" href="https://odoo-community.org/page/development-status"><img alt="Beta" src="https://img.shields.io/badge/maturity-Beta-yellow.png" /></a> <a class="reference external" href="http://www.gnu.org/licenses/agpl-3.0-standalone.html"><img alt="License: AGPL-3" src="https://img.shields.io/badge/licence-AGPL--3-blue.png" /></a> <a class="reference external" href="https://github.com/OCA/web/tree/15.0/web_pivot_computed_measure"><img alt="OCA/web" src="https://img.shields.io/badge/github-OCA%2Fweb-lightgray.png?logo=github" /></a> <a class="reference external" href="https://translation.odoo-community.org/projects/web-15-0/web-15-0-web_pivot_computed_measure"><img alt="Translate me on Weblate" src="https://img.shields.io/badge/weblate-Translate%20me-F47D42.png" /></a> <a class="reference external" href="https://runbot.odoo-community.org/runbot/162/15.0"><img alt="Try me on Runbot" src="https://img.shields.io/badge/runbot-Try%20me-875A7B.png" /></a></p>
+<p><a class="reference external image-reference" href="https://odoo-community.org/page/development-status"><img alt="Beta" src="https://img.shields.io/badge/maturity-Beta-yellow.png" /></a> <a class="reference external image-reference" href="http://www.gnu.org/licenses/agpl-3.0-standalone.html"><img alt="License: AGPL-3" src="https://img.shields.io/badge/licence-AGPL--3-blue.png" /></a> <a class="reference external image-reference" href="https://github.com/OCA/web/tree/15.0/web_pivot_computed_measure"><img alt="OCA/web" src="https://img.shields.io/badge/github-OCA%2Fweb-lightgray.png?logo=github" /></a> <a class="reference external image-reference" href="https://translation.odoo-community.org/projects/web-15-0/web-15-0-web_pivot_computed_measure"><img alt="Translate me on Weblate" src="https://img.shields.io/badge/weblate-Translate%20me-F47D42.png" /></a> <a class="reference external image-reference" href="https://runboat.odoo-community.org/builds?repo=OCA/web&amp;target_branch=15.0"><img alt="Try me on Runboat" src="https://img.shields.io/badge/runboat-Try%20me-875A7B.png" /></a></p>
 <p>Adds support for computed measures on the pivot view.</p>
 <p><strong>Table of contents</strong></p>
 <div class="contents local topic" id="contents">
 <ul class="simple">
-<li><a class="reference internal" href="#usage" id="id1">Usage</a></li>
-<li><a class="reference internal" href="#known-issues-roadmap" id="id2">Known issues / Roadmap</a></li>
-<li><a class="reference internal" href="#bug-tracker" id="id3">Bug Tracker</a></li>
-<li><a class="reference internal" href="#credits" id="id4">Credits</a><ul>
-<li><a class="reference internal" href="#authors" id="id5">Authors</a></li>
-<li><a class="reference internal" href="#contributors" id="id6">Contributors</a></li>
-<li><a class="reference internal" href="#maintainers" id="id7">Maintainers</a></li>
+<li><a class="reference internal" href="#usage" id="toc-entry-1">Usage</a></li>
+<li><a class="reference internal" href="#known-issues-roadmap" id="toc-entry-2">Known issues / Roadmap</a></li>
+<li><a class="reference internal" href="#bug-tracker" id="toc-entry-3">Bug Tracker</a></li>
+<li><a class="reference internal" href="#credits" id="toc-entry-4">Credits</a><ul>
+<li><a class="reference internal" href="#authors" id="toc-entry-5">Authors</a></li>
+<li><a class="reference internal" href="#contributors" id="toc-entry-6">Contributors</a></li>
+<li><a class="reference internal" href="#maintainers" id="toc-entry-7">Maintainers</a></li>
 </ul>
 </li>
 </ul>
 </div>
 <div class="section" id="usage">
-<h1><a class="toc-backref" href="#id1">Usage</a></h1>
+<h1><a class="toc-backref" href="#toc-entry-1">Usage</a></h1>
 <p>Go to pivot view and click on the “Measures” menu, you will see
 a new option called ‘Computed Measure’.</p>
 <dl class="docutils">
@@ -429,30 +431,30 @@ a new option called ‘Computed Measure’.</p>
 can’t be deactivated until you have deactivate the ‘computed measure’.</p>
 </div>
 <div class="section" id="known-issues-roadmap">
-<h1><a class="toc-backref" href="#id2">Known issues / Roadmap</a></h1>
+<h1><a class="toc-backref" href="#toc-entry-2">Known issues / Roadmap</a></h1>
 <ol class="arabic simple">
 <li>Add support to define a style for a computed measure (ex. colored)</li>
 <li>Use t-model to data-binding instad of jquery selectors</li>
 </ol>
 </div>
 <div class="section" id="bug-tracker">
-<h1><a class="toc-backref" href="#id3">Bug Tracker</a></h1>
+<h1><a class="toc-backref" href="#toc-entry-3">Bug Tracker</a></h1>
 <p>Bugs are tracked on <a class="reference external" href="https://github.com/OCA/web/issues">GitHub Issues</a>.
 In case of trouble, please check there if your issue has already been reported.
-If you spotted it first, help us smashing it by providing a detailed and welcomed
+If you spotted it first, help us to smash it by providing a detailed and welcomed
 <a class="reference external" href="https://github.com/OCA/web/issues/new?body=module:%20web_pivot_computed_measure%0Aversion:%2015.0%0A%0A**Steps%20to%20reproduce**%0A-%20...%0A%0A**Current%20behavior**%0A%0A**Expected%20behavior**">feedback</a>.</p>
 <p>Do not contact contributors directly about support or help with technical issues.</p>
 </div>
 <div class="section" id="credits">
-<h1><a class="toc-backref" href="#id4">Credits</a></h1>
+<h1><a class="toc-backref" href="#toc-entry-4">Credits</a></h1>
 <div class="section" id="authors">
-<h2><a class="toc-backref" href="#id5">Authors</a></h2>
+<h2><a class="toc-backref" href="#toc-entry-5">Authors</a></h2>
 <ul class="simple">
 <li>Tecnativa</li>
 </ul>
 </div>
 <div class="section" id="contributors">
-<h2><a class="toc-backref" href="#id6">Contributors</a></h2>
+<h2><a class="toc-backref" href="#toc-entry-6">Contributors</a></h2>
 <ul class="simple">
 <li><a class="reference external" href="https://www.tecnativa.com/">Tecnativa</a>:<ul>
 <li>Alexandre D. Díaz</li>
@@ -464,7 +466,7 @@ If you spotted it first, help us smashing it by providing a detailed and welcome
 </ul>
 </div>
 <div class="section" id="maintainers">
-<h2><a class="toc-backref" href="#id7">Maintainers</a></h2>
+<h2><a class="toc-backref" href="#toc-entry-7">Maintainers</a></h2>
 <p>This module is maintained by the OCA.</p>
 <a class="reference external image-reference" href="https://odoo-community.org"><img alt="Odoo Community Association" src="https://odoo-community.org/logo.png" /></a>
 <p>OCA, or the Odoo Community Association, is a nonprofit organization whose
diff --git a/web_pivot_computed_measure/static/src/pivot/pivot_renderer.esm.js b/web_pivot_computed_measure/static/src/pivot/pivot_renderer.esm.js
new file mode 100644
index 000000000..d3a0e9c7b
--- /dev/null
+++ b/web_pivot_computed_measure/static/src/pivot/pivot_renderer.esm.js
@@ -0,0 +1,15 @@
+/** @odoo-module **/
+/* Copyright 2022 Tecnativa - Carlos Roca
+ * License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html) */
+
+import {PivotRenderer} from "@web/views/pivot/pivot_renderer";
+import {patch} from "web.utils";
+
+patch(PivotRenderer.prototype, "web_pivot_computed_measure.PivotRenderer", {
+    getFormattedValue(cell) {
+        if (cell.value === Infinity) {
+            return "-";
+        }
+        return this._super(...arguments);
+    },
+});