diff options
| author | Christophe Simonis <chs@odoo.com> | 2018-03-09 16:25:58 +0100 |
|---|---|---|
| committer | Christophe Simonis <chs@odoo.com> | 2018-03-09 16:25:58 +0100 |
| commit | 0f57bdba72b592ca097d4cd3da99a75883d8c623 (patch) | |
| tree | 94eef0c9aaf885c7f717bab5e468ca72b59a219d /doc | |
| parent | 35f0797002e44ce5673e9fab63710d2764329694 (diff) | |
| parent | 42659dc70c2b9b124e7e4fdc0449f660c3de5c76 (diff) | |
[MERGE] forward port branch saas-11.2 up to 42659dc70c2
Diffstat (limited to 'doc')
| -rw-r--r-- | doc/_extensions/odoo_ext/layout.html | 4 | ||||
| -rw-r--r-- | doc/cla/corporate/camptocamp.md | 1 | ||||
| -rw-r--r-- | doc/cla/corporate/d2c.md | 13 | ||||
| -rw-r--r-- | doc/cla/corporate/merchise.md | 1 | ||||
| -rw-r--r-- | doc/cla/corporate/odoogap.md | 18 | ||||
| -rw-r--r-- | doc/cla/individual/apesquero.md | 11 | ||||
| -rw-r--r-- | doc/cla/individual/aymanadam5.md | 11 | ||||
| -rw-r--r-- | doc/cla/individual/hilarak.md | 11 | ||||
| -rw-r--r-- | doc/cla/individual/lbelorgey.md | 2 | ||||
| -rw-r--r-- | doc/cla/individual/novawish.md | 11 | ||||
| -rw-r--r-- | doc/cla/individual/true-datura.md | 11 | ||||
| -rw-r--r-- | doc/howtos/profile/flamegraph.svg | 1774 | ||||
| -rw-r--r-- | doc/howtos/profilecode.rst | 88 | ||||
| -rw-r--r-- | doc/howtos/themes.rst | 176 | ||||
| -rw-r--r-- | doc/reference/cmdline.rst | 49 | ||||
| -rw-r--r-- | doc/reference/views.rst | 3 | ||||
| -rw-r--r-- | doc/setup/deploy.rst | 16 | ||||
| -rw-r--r-- | doc/tutorials.rst | 1 | ||||
| -rw-r--r-- | doc/webservices.rst | 2 |
19 files changed, 2139 insertions, 64 deletions
diff --git a/doc/_extensions/odoo_ext/layout.html b/doc/_extensions/odoo_ext/layout.html index cb1015d2ebe..793ed47806f 100644 --- a/doc/_extensions/odoo_ext/layout.html +++ b/doc/_extensions/odoo_ext/layout.html @@ -102,8 +102,8 @@ <div>It's all about efficiency</div> </div> <ul> - <li><a href="https://www.odoo.com/page/accounting/">Accounting</a></li> - <li><a href="https://www.odoo.com/page/project-management/">Project</a></li> + <li><a href="https://www.odoo.com/page/accounting">Accounting</a></li> + <li><a href="https://www.odoo.com/page/project-management">Project</a></li> <li class="dropdown"> <a href="#0" class="dropdown-toggle">Human Resources</a> <ul> diff --git a/doc/cla/corporate/camptocamp.md b/doc/cla/corporate/camptocamp.md index c934c831a83..777bb974dc5 100644 --- a/doc/cla/corporate/camptocamp.md +++ b/doc/cla/corporate/camptocamp.md @@ -32,3 +32,4 @@ Denis Leemann denis.leemann@camptocamp.com https://github.com/leemannd Akim Juillerat akim.juillerat@camptocamp.com https://github.com/grindtildeath Damien Crier damien.crier@camptocamp.com https://github.com/damdam-s Simone Orsi simahawk@gmail.com https://github.com/simahawk +Patrick Tombez patrick.tombez@camptocamp.com https://github.com/p-tombez diff --git a/doc/cla/corporate/d2c.md b/doc/cla/corporate/d2c.md new file mode 100644 index 00000000000..37ffc7931ad --- /dev/null +++ b/doc/cla/corporate/d2c.md @@ -0,0 +1,13 @@ +Russia, 2018-02-09 + +D2C agrees to the terms of the Odoo Corporate Contributor License Agreement v1.0. + +I declare that I am authorized and able to make this agreement and sign this declaration. + +Signed, + +Denis Zaripov mastappl@gmail.com https://github.com/mastappl + +List of contributors: + +Denis Zaripov mastappl@gmail.com https://github.com/mastappl diff --git a/doc/cla/corporate/merchise.md b/doc/cla/corporate/merchise.md index d8d5e75f830..e4cbd3c3f95 100644 --- a/doc/cla/corporate/merchise.md +++ b/doc/cla/corporate/merchise.md @@ -20,3 +20,4 @@ Sergio Valdés sergiov@merchise.org Medardo Rodríguez med@merchise.org https://github.com/med-merchise Abel Firvida firvida@merchise.org Abel Firvida abel@merchise.org +Mónica Díaz Pena monicadp@merchise.org https://github.com/mdpena diff --git a/doc/cla/corporate/odoogap.md b/doc/cla/corporate/odoogap.md new file mode 100644 index 00000000000..08a10ddd683 --- /dev/null +++ b/doc/cla/corporate/odoogap.md @@ -0,0 +1,18 @@ +PromptEQUATION, 2017-09-03 + +PromptEquation/ OdooGap agrees to the terms of the Odoo Corporate Contributor License +Agreement v1.0. + +I declare that I am authorized and able to make this agreement and sign this +declaration. + +Signed, + +Diogo Duarte dduarte@odoogap.com https://github.com/dduarte-odoogap + +List of contributors: + +Diogo Duarte dduarte@odoogap.com https://github.com/dduarte-odoogap +Diogo Duarte diogocarvalhoduarte@gmail.com https://github.com/dduarte-odoogap +Carlos Fonseca cfonseca@odoogap.com https://github.com/cfonseca-odoogap +Carlos Fonseca carlosmigueldafonseca@gmail.com https://github.com/cpintofonseca diff --git a/doc/cla/individual/apesquero.md b/doc/cla/individual/apesquero.md new file mode 100644 index 00000000000..8c04cee5dc7 --- /dev/null +++ b/doc/cla/individual/apesquero.md @@ -0,0 +1,11 @@ +Spain, 2018-02-26 + +I hereby agree to the terms of the Odoo Individual Contributor License +Agreement v1.0. + +I declare that I am authorized and able to make this agreement and sign this +declaration. + +Signed, + +Amaro Pesquero apesquero@gmail.com https://github.com/apesquero diff --git a/doc/cla/individual/aymanadam5.md b/doc/cla/individual/aymanadam5.md new file mode 100644 index 00000000000..c8ee9b812c7 --- /dev/null +++ b/doc/cla/individual/aymanadam5.md @@ -0,0 +1,11 @@ +Sudan, 2018-02-23 + +I hereby agree to the terms of the Odoo Individual Contributor License +Agreement v1.0. + +I declare that I am authorized and able to make this agreement and sign this +declaration. + +Signed, + +Ayman adam Dawood notime4love112@gmail.com https://github.com/aymanadam5 diff --git a/doc/cla/individual/hilarak.md b/doc/cla/individual/hilarak.md new file mode 100644 index 00000000000..4e164fe88d1 --- /dev/null +++ b/doc/cla/individual/hilarak.md @@ -0,0 +1,11 @@ +India, 18-02-2018 + +I hereby agree to the terms of the Odoo Individual Contributor License +Agreement v1.0. + +I declare that I am authorized and able to make this agreement and sign this +declaration. + +Signed, + +Hilar AK hilarak@gmail.com https://github.com/hilarak diff --git a/doc/cla/individual/lbelorgey.md b/doc/cla/individual/lbelorgey.md index 6cdacb5cdf1..c8db490ec4d 100644 --- a/doc/cla/individual/lbelorgey.md +++ b/doc/cla/individual/lbelorgey.md @@ -8,4 +8,4 @@ declaration. Signed, -Laurent Bélorgey lb@lalieutenante.com https://github.com/lbelorgey
\ No newline at end of file +Laurent Bélorgey lb@lalieutenante.com https://github.com/lbelorgey
\ No newline at end of file diff --git a/doc/cla/individual/novawish.md b/doc/cla/individual/novawish.md new file mode 100644 index 00000000000..7cb30078983 --- /dev/null +++ b/doc/cla/individual/novawish.md @@ -0,0 +1,11 @@ +Vietnam, 2018-02-10 + +I hereby agree to the terms of the Odoo Individual Contributor License +Agreement v1.0. + +I declare that I am authorized and able to make this agreement and sign this +declaration. + +Signed, + +Duc Dao duc.dd@komit-consulting.com https://github.com/novawish diff --git a/doc/cla/individual/true-datura.md b/doc/cla/individual/true-datura.md new file mode 100644 index 00000000000..e0d0faa8237 --- /dev/null +++ b/doc/cla/individual/true-datura.md @@ -0,0 +1,11 @@ +Ukraine, 2018-03-07 + +I hereby agree to the terms of the Odoo Individual Contributor License +Agreement v1.0. + +I declare that I am authorized and able to make this agreement and sign this +declaration. + +Signed, + +Demid Avramenko grrrr@protonmail.com https://github.com/true-datura diff --git a/doc/howtos/profile/flamegraph.svg b/doc/howtos/profile/flamegraph.svg new file mode 100644 index 00000000000..cb57f882cb4 --- /dev/null +++ b/doc/howtos/profile/flamegraph.svg @@ -0,0 +1,1774 @@ +<?xml version="1.0" standalone="no"?> +<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> +<svg version="1.1" width="1200" height="1078" onload="init(evt)" viewBox="0 0 1200 1078" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> +<!-- Flame graph stack visualization. See https://github.com/brendangregg/FlameGraph for latest version, and http://www.brendangregg.com/flamegraphs.html for examples. --> +<!-- NOTES: --> +<defs > + <linearGradient id="background" y1="0" y2="1" x1="0" x2="0" > + <stop stop-color="#eeeeee" offset="5%" /> + <stop stop-color="#eeeeb0" offset="95%" /> + </linearGradient> +</defs> +<style type="text/css"> + .func_g:hover { stroke:black; stroke-width:0.5; cursor:pointer; } +</style> +<script type="text/ecmascript"> +<![CDATA[ + var details, searchbtn, matchedtxt, svg; + function init(evt) { + details = document.getElementById("details").firstChild; + searchbtn = document.getElementById("search"); + matchedtxt = document.getElementById("matched"); + svg = document.getElementsByTagName("svg")[0]; + searching = 0; + } + + // mouse-over for info + function s(node) { // show + info = g_to_text(node); + details.nodeValue = "Function: " + info; + } + function c() { // clear + details.nodeValue = ' '; + } + + // ctrl-F for search + window.addEventListener("keydown",function (e) { + if (e.keyCode === 114 || (e.ctrlKey && e.keyCode === 70)) { + e.preventDefault(); + search_prompt(); + } + }) + + // functions + function find_child(parent, name, attr) { + var children = parent.childNodes; + for (var i=0; i<children.length;i++) { + if (children[i].tagName == name) + return (attr != undefined) ? children[i].attributes[attr].value : children[i]; + } + return; + } + function orig_save(e, attr, val) { + if (e.attributes["_orig_"+attr] != undefined) return; + if (e.attributes[attr] == undefined) return; + if (val == undefined) val = e.attributes[attr].value; + e.setAttribute("_orig_"+attr, val); + } + function orig_load(e, attr) { + if (e.attributes["_orig_"+attr] == undefined) return; + e.attributes[attr].value = e.attributes["_orig_"+attr].value; + e.removeAttribute("_orig_"+attr); + } + function g_to_text(e) { + var text = find_child(e, "title").firstChild.nodeValue; + return (text) + } + function g_to_func(e) { + var func = g_to_text(e); + // if there's any manipulation we want to do to the function + // name before it's searched, do it here before returning. + return (func); + } + function update_text(e) { + var r = find_child(e, "rect"); + var t = find_child(e, "text"); + var w = parseFloat(r.attributes["width"].value) -3; + var txt = find_child(e, "title").textContent.replace(/\([^(]*\)$/,""); + t.attributes["x"].value = parseFloat(r.attributes["x"].value) +3; + + // Smaller than this size won't fit anything + if (w < 2*12*0.59) { + t.textContent = ""; + return; + } + + t.textContent = txt; + // Fit in full text width + if (/^ *$/.test(txt) || t.getSubStringLength(0, txt.length) < w) + return; + + for (var x=txt.length-2; x>0; x--) { + if (t.getSubStringLength(0, x+2) <= w) { + t.textContent = txt.substring(0,x) + ".."; + return; + } + } + t.textContent = ""; + } + + // zoom + function zoom_reset(e) { + if (e.attributes != undefined) { + orig_load(e, "x"); + orig_load(e, "width"); + } + if (e.childNodes == undefined) return; + for(var i=0, c=e.childNodes; i<c.length; i++) { + zoom_reset(c[i]); + } + } + function zoom_child(e, x, ratio) { + if (e.attributes != undefined) { + if (e.attributes["x"] != undefined) { + orig_save(e, "x"); + e.attributes["x"].value = (parseFloat(e.attributes["x"].value) - x - 10) * ratio + 10; + if(e.tagName == "text") e.attributes["x"].value = find_child(e.parentNode, "rect", "x") + 3; + } + if (e.attributes["width"] != undefined) { + orig_save(e, "width"); + e.attributes["width"].value = parseFloat(e.attributes["width"].value) * ratio; + } + } + + if (e.childNodes == undefined) return; + for(var i=0, c=e.childNodes; i<c.length; i++) { + zoom_child(c[i], x-10, ratio); + } + } + function zoom_parent(e) { + if (e.attributes) { + if (e.attributes["x"] != undefined) { + orig_save(e, "x"); + e.attributes["x"].value = 10; + } + if (e.attributes["width"] != undefined) { + orig_save(e, "width"); + e.attributes["width"].value = parseInt(svg.width.baseVal.value) - (10*2); + } + } + if (e.childNodes == undefined) return; + for(var i=0, c=e.childNodes; i<c.length; i++) { + zoom_parent(c[i]); + } + } + function zoom(node) { + var attr = find_child(node, "rect").attributes; + var width = parseFloat(attr["width"].value); + var xmin = parseFloat(attr["x"].value); + var xmax = parseFloat(xmin + width); + var ymin = parseFloat(attr["y"].value); + var ratio = (svg.width.baseVal.value - 2*10) / width; + + // XXX: Workaround for JavaScript float issues (fix me) + var fudge = 0.0001; + + var unzoombtn = document.getElementById("unzoom"); + unzoombtn.style["opacity"] = "1.0"; + + var el = document.getElementsByTagName("g"); + for(var i=0;i<el.length;i++){ + var e = el[i]; + var a = find_child(e, "rect").attributes; + var ex = parseFloat(a["x"].value); + var ew = parseFloat(a["width"].value); + // Is it an ancestor + if (0 == 0) { + var upstack = parseFloat(a["y"].value) > ymin; + } else { + var upstack = parseFloat(a["y"].value) < ymin; + } + if (upstack) { + // Direct ancestor + if (ex <= xmin && (ex+ew+fudge) >= xmax) { + e.style["opacity"] = "0.5"; + zoom_parent(e); + e.onclick = function(e){unzoom(); zoom(this);}; + update_text(e); + } + // not in current path + else + e.style["display"] = "none"; + } + // Children maybe + else { + // no common path + if (ex < xmin || ex + fudge >= xmax) { + e.style["display"] = "none"; + } + else { + zoom_child(e, xmin, ratio); + e.onclick = function(e){zoom(this);}; + update_text(e); + } + } + } + } + function unzoom() { + var unzoombtn = document.getElementById("unzoom"); + unzoombtn.style["opacity"] = "0.0"; + + var el = document.getElementsByTagName("g"); + for(i=0;i<el.length;i++) { + el[i].style["display"] = "block"; + el[i].style["opacity"] = "1"; + zoom_reset(el[i]); + update_text(el[i]); + } + } + + // search + function reset_search() { + var el = document.getElementsByTagName("rect"); + for (var i=0; i < el.length; i++) { + orig_load(el[i], "fill") + } + } + function search_prompt() { + if (!searching) { + var term = prompt("Enter a search term (regexp " + + "allowed, eg: ^ext4_)", ""); + if (term != null) { + search(term) + } + } else { + reset_search(); + searching = 0; + searchbtn.style["opacity"] = "0.1"; + searchbtn.firstChild.nodeValue = "Search" + matchedtxt.style["opacity"] = "0.0"; + matchedtxt.firstChild.nodeValue = "" + } + } + function search(term) { + var re = new RegExp(term); + var el = document.getElementsByTagName("g"); + var matches = new Object(); + var maxwidth = 0; + for (var i = 0; i < el.length; i++) { + var e = el[i]; + if (e.attributes["class"].value != "func_g") + continue; + var func = g_to_func(e); + var rect = find_child(e, "rect"); + if (rect == null) { + // the rect might be wrapped in an anchor + // if nameattr href is being used + if (rect = find_child(e, "a")) { + rect = find_child(r, "rect"); + } + } + if (func == null || rect == null) + continue; + + // Save max width. Only works as we have a root frame + var w = parseFloat(rect.attributes["width"].value); + if (w > maxwidth) + maxwidth = w; + + if (func.match(re)) { + // highlight + var x = parseFloat(rect.attributes["x"].value); + orig_save(rect, "fill"); + rect.attributes["fill"].value = + "rgb(230,0,230)"; + + // remember matches + if (matches[x] == undefined) { + matches[x] = w; + } else { + if (w > matches[x]) { + // overwrite with parent + matches[x] = w; + } + } + searching = 1; + } + } + if (!searching) + return; + + searchbtn.style["opacity"] = "1.0"; + searchbtn.firstChild.nodeValue = "Reset Search" + + // calculate percent matched, excluding vertical overlap + var count = 0; + var lastx = -1; + var lastw = 0; + var keys = Array(); + for (k in matches) { + if (matches.hasOwnProperty(k)) + keys.push(k); + } + // sort the matched frames by their x location + // ascending, then width descending + keys.sort(function(a, b){ + return a - b; + }); + // Step through frames saving only the biggest bottom-up frames + // thanks to the sort order. This relies on the tree property + // where children are always smaller than their parents. + var fudge = 0.0001; // JavaScript floating point + for (var k in keys) { + var x = parseFloat(keys[k]); + var w = matches[keys[k]]; + if (x >= lastx + lastw - fudge) { + count += w; + lastx = x; + lastw = w; + } + } + // display matched percent + matchedtxt.style["opacity"] = "1.0"; + pct = 100 * count / maxwidth; + if (pct == 100) + pct = "100" + else + pct = pct.toFixed(1) + matchedtxt.firstChild.nodeValue = "Matched: " + pct + "%"; + } + function searchover(e) { + searchbtn.style["opacity"] = "1.0"; + } + function searchout(e) { + if (searching) { + searchbtn.style["opacity"] = "1.0"; + } else { + searchbtn.style["opacity"] = "0.1"; + } + } +]]> +</script> +<rect x="0.0" y="0" width="1200.0" height="1078.0" fill="url(#background)" /> +<text text-anchor="middle" x="600.00" y="24" font-size="17" font-family="Verdana" fill="rgb(0,0,0)" >Flame Graph</text> +<text text-anchor="" x="10.00" y="1061" font-size="12" font-family="Verdana" fill="rgb(0,0,0)" id="details" > </text> +<text text-anchor="" x="10.00" y="24" font-size="12" font-family="Verdana" fill="rgb(0,0,0)" id="unzoom" onclick="unzoom()" style="opacity:0.0;cursor:pointer" >Reset Zoom</text> +<text text-anchor="" x="1090.00" y="24" font-size="12" font-family="Verdana" fill="rgb(0,0,0)" id="search" onmouseover="searchover()" onmouseout="searchout()" onclick="search_prompt()" style="opacity:0.1;cursor:pointer" >Search</text> +<text text-anchor="" x="1090.00" y="1061" font-size="12" font-family="Verdana" fill="rgb(0,0,0)" id="matched" > </text> +<g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)"> +<title>/datas/progs/odoo/odoo/models.py:browse:4237 (11 samples, 8.33%)</title><rect x="760.9" y="85" width="98.3" height="15.0" fill="rgb(217,55,7)" rx="2" ry="2" /> +<text text-anchor="" x="763.91" y="95.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)" >/datas/prog..</text> +</g> +<g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)"> +<title>/datas/progs/odoo/odoo/fields.py:__get__:948 (1 samples, 0.76%)</title><rect x="1181.1" y="357" width="8.9" height="15.0" fill="rgb(205,141,36)" rx="2" ry="2" /> +<text text-anchor="" x="1184.06" y="367.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)" ></text> +</g> +<g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)"> +<title>/datas/progs/odoo/odoo/api.py:__new__:735 (3 samples, 2.27%)</title><rect x="188.8" y="197" width="26.8" height="15.0" fill="rgb(217,179,29)" rx="2" ry="2" /> +<text text-anchor="" x="191.79" y="207.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)" >/..</text> +</g> +<g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)"> +<title>/datas/progs/odoo/odoo/fields.py:__get__:948 (38 samples, 28.79%)</title><rect x="617.9" y="181" width="339.7" height="15.0" fill="rgb(223,45,46)" rx="2" ry="2" /> +<text text-anchor="" x="620.88" y="191.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)" >/datas/progs/odoo/odoo/fields.py:__get__:948</text> +</g> +<g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)"> +<title>/datas/progs/odoo/odoo/api.py:__new__:736 (5 samples, 3.79%)</title><rect x="1064.8" y="213" width="44.7" height="15.0" fill="rgb(214,74,47)" rx="2" ry="2" /> +<text text-anchor="" x="1067.85" y="223.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)" >/dat..</text> +</g> +<g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)"> +<title><string>:__new__:14 (1 samples, 0.76%)</title><rect x="144.1" y="213" width="8.9" height="15.0" fill="rgb(221,53,21)" rx="2" ry="2" /> +<text text-anchor="" x="147.09" y="223.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)" ></text> +</g> +<g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)"> +<title>/datas/progs/odoo/odoo/models.py:_normalize_ids:5206 (1 samples, 0.76%)</title><rect x="752.0" y="69" width="8.9" height="15.0" fill="rgb(243,142,41)" rx="2" ry="2" /> +<text text-anchor="" x="754.97" y="79.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)" ></text> +</g> +<g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)"> +<title><frozen importlib._bootstrap>:_call_with_frames_removed:219 (1 samples, 0.76%)</title><rect x="10.0" y="389" width="8.9" height="15.0" fill="rgb(239,101,4)" rx="2" ry="2" /> +<text text-anchor="" x="13.00" y="399.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)" ></text> +</g> +<g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)"> +<title>/datas/progs/odoo/odoo/models.py:sudo:4310 (3 samples, 2.27%)</title><rect x="510.6" y="197" width="26.8" height="15.0" fill="rgb(219,219,42)" rx="2" ry="2" /> +<text text-anchor="" x="513.61" y="207.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)" >/..</text> +</g> +<g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)"> +<title><frozen importlib._bootstrap>:_call_with_frames_removed:219 (1 samples, 0.76%)</title><rect x="10.0" y="181" width="8.9" height="15.0" fill="rgb(212,152,44)" rx="2" ry="2" /> +<text text-anchor="" x="13.00" y="191.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)" ></text> +</g> +<g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)"> +<title>/datas/progs/odoo/odoo/api.py:__new__:736 (1 samples, 0.76%)</title><rect x="528.5" y="165" width="8.9" height="15.0" fill="rgb(249,121,35)" rx="2" ry="2" /> +<text text-anchor="" x="531.48" y="175.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)" ></text> +</g> +<g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)"> +<title><frozen importlib._bootstrap_external>:exec_module:678 (1 samples, 0.76%)</title><rect x="10.0" y="197" width="8.9" height="15.0" fill="rgb(214,75,51)" rx="2" ry="2" /> +<text text-anchor="" x="13.00" y="207.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)" ></text> +</g> +<g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)"> +<title>/datas/progs/odoo/odoo/fields.py:convert_to_cache:1230 (6 samples, 4.55%)</title><rect x="957.6" y="261" width="53.6" height="15.0" fill="rgb(223,116,48)" rx="2" ry="2" /> +<text text-anchor="" x="960.58" y="271.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)" >/data..</text> +</g> +<g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)"> +<title>/datas/progs/odoo/odoo/api.py:__new__:736 (1 samples, 0.76%)</title><rect x="179.8" y="181" width="9.0" height="15.0" fill="rgb(216,82,40)" rx="2" ry="2" /> +<text text-anchor="" x="182.85" y="191.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)" ></text> +</g> +<g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)"> +<title>/datas/progs/odoo/odoo/api.py:__hash__:777 (1 samples, 0.76%)</title><rect x="1002.3" y="165" width="8.9" height="15.0" fill="rgb(206,8,25)" rx="2" ry="2" /> +<text text-anchor="" x="1005.27" y="175.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)" ></text> +</g> +<g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)"> +<title>/datas/progs/odoo/odoo/api.py:__new__:736 (1 samples, 0.76%)</title><rect x="376.5" y="165" width="9.0" height="15.0" fill="rgb(209,201,14)" rx="2" ry="2" /> +<text text-anchor="" x="379.52" y="175.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)" ></text> +</g> +<g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)"> +<title>/datas/progs/odoo/odoo/sql_db.py:execute:242 (1 samples, 0.76%)</title><rect x="153.0" y="229" width="9.0" height="15.0" fill="rgb(228,193,32)" rx="2" ry="2" /> +<text text-anchor="" x="156.03" y="239.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)" ></text> +</g> +<g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)"> +<title>/datas/progs/odoo/odoo/models.py:_read_group_raw:1924 (7 samples, 5.30%)</title><rect x="448.0" y="245" width="62.6" height="15.0" fill="rgb(233,3,38)" rx="2" ry="2" /> +<text text-anchor="" x="451.03" y="255.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)" >/datas..</text> +</g> +<g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)"> +<title>/datas/progs/odoo/odoo/models.py:qualify:2612 (1 samples, 0.76%)</title><rect x="877.1" y="85" width="9.0" height="15.0" fill="rgb(210,2,30)" rx="2" ry="2" /> +<text text-anchor="" x="880.12" y="95.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)" ></text> +</g> +<g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)"> +<title>/datas/progs/odoo/addons/auth_signup/models/ir_http.py:_dispatch:19 (128 samples, 96.97%)</title><rect x="45.8" y="613" width="1144.2" height="15.0" fill="rgb(222,215,9)" rx="2" ry="2" /> +<text text-anchor="" x="48.76" y="623.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)" >/datas/progs/odoo/addons/auth_signup/models/ir_http.py:_dispatch:19</text> +</g> +<g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)"> +<title>/datas/progs/odoo/odoo/api.py:__new__:742 (1 samples, 0.76%)</title><rect x="993.3" y="213" width="9.0" height="15.0" fill="rgb(239,195,13)" rx="2" ry="2" /> +<text text-anchor="" x="996.33" y="223.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)" ></text> +</g> +<g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)"> +<title><string>:change_digit:9 (6 samples, 4.55%)</title><rect x="957.6" y="229" width="53.6" height="15.0" fill="rgb(205,82,12)" rx="2" ry="2" /> +<text text-anchor="" x="960.58" y="239.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)" ><stri..</text> +</g> +<g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)"> +<title>/usr/local/lib/python3.6/encodings/utf_8.py:decode:16 (1 samples, 0.76%)</title><rect x="886.1" y="69" width="8.9" height="15.0" fill="rgb(233,11,36)" rx="2" ry="2" /> +<text text-anchor="" x="889.06" y="79.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)" ></text> +</g> +<g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)"> +<title>/datas/progs/odoo/odoo/fields.py:convert_to_cache:1230 (7 samples, 5.30%)</title><rect x="1109.5" y="261" width="62.6" height="15.0" fill="rgb(227,91,0)" rx="2" ry="2" /> +<text text-anchor="" x="1112.55" y="271.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)" >/datas..</text> +</g> +<g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)"> +<title>/datas/progs/odoo/odoo/models.py:_read_group_resolve_many2one_fields:1944 (6 samples, 4.55%)</title><rect x="457.0" y="229" width="53.6" height="15.0" fill="rgb(243,3,5)" rx="2" ry="2" /> +<text text-anchor="" x="459.97" y="239.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)" >/data..</text> +</g> +<g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)"> +<title>/datas/progs/odoo/addons/stock_account/models/product.py:do_change_standard_price:126 (20 samples, 15.15%)</title><rect x="135.2" y="373" width="178.7" height="15.0" fill="rgb(251,96,44)" rx="2" ry="2" /> +<text text-anchor="" x="138.15" y="383.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)" >/datas/progs/odoo/addon..</text> +</g> +<g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)"> +<title>/datas/progs/odoo/odoo/models.py:read_group:1828 (13 samples, 9.85%)</title><rect x="394.4" y="261" width="116.2" height="15.0" fill="rgb(212,7,8)" rx="2" ry="2" /> +<text text-anchor="" x="397.39" y="271.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)" >/datas/progs/o..</text> +</g> +<g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)"> +<title>/datas/progs/odoo/odoo/api.py:__new__:736 (1 samples, 0.76%)</title><rect x="215.6" y="197" width="8.9" height="15.0" fill="rgb(233,70,10)" rx="2" ry="2" /> +<text text-anchor="" x="218.61" y="207.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)" ></text> +</g> +<g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)"> +<title>/datas/progs/odoo/odoo/fields.py:convert_to_record:1989 (3 samples, 2.27%)</title><rect x="930.8" y="85" width="26.8" height="15.0" fill="rgb(254,216,54)" rx="2" ry="2" /> +<text text-anchor="" x="933.76" y="95.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)" >/..</text> +</g> +<g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)"> +<title>/datas/progs/odoo/odoo/models.py:recompute:4791 (1 samples, 0.76%)</title><rect x="1172.1" y="309" width="9.0" height="15.0" fill="rgb(254,165,3)" rx="2" ry="2" /> +<text text-anchor="" x="1175.12" y="319.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)" ></text> +</g> +<g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)"> +<title>/datas/progs/odoo/odoo/fields.py:__get__:944 (1 samples, 0.76%)</title><rect x="921.8" y="101" width="9.0" height="15.0" fill="rgb(212,166,14)" rx="2" ry="2" /> +<text text-anchor="" x="924.82" y="111.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)" ></text> +</g> +<g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)"> +<title>/datas/progs/odoo/odoo/models.py:browse:4235 (2 samples, 1.52%)</title><rect x="743.0" y="85" width="17.9" height="15.0" fill="rgb(250,174,44)" rx="2" ry="2" /> +<text text-anchor="" x="746.03" y="95.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)" ></text> +</g> +<g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)"> +<title>/datas/progs/odoo/odoo/api.py:add:939 (1 samples, 0.76%)</title><rect x="1002.3" y="197" width="8.9" height="15.0" fill="rgb(218,222,13)" rx="2" ry="2" /> +<text text-anchor="" x="1005.27" y="207.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)" ></text> +</g> +<g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)"> +<title>/datas/progs/odoo/odoo/osv/expression.py:<listcomp>:1204 (1 samples, 0.76%)</title><rect x="421.2" y="181" width="9.0" height="15.0" fill="rgb(215,5,53)" rx="2" ry="2" /> +<text text-anchor="" x="424.21" y="191.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)" ></text> +</g> +<g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)"> +<title><decorator-gen-112>:precision_get:2 (1 samples, 0.76%)</title><rect x="242.4" y="197" width="9.0" height="15.0" fill="rgb(238,179,11)" rx="2" ry="2" /> +<text text-anchor="" x="245.42" y="207.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)" ></text> +</g> +<g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)"> +<title>/datas/progs/odoo/odoo/osv/expression.py:get_unaccent_wrapper:455 (1 samples, 0.76%)</title><rect x="394.4" y="197" width="8.9" height="15.0" fill="rgb(224,116,13)" rx="2" ry="2" /> +<text text-anchor="" x="397.39" y="207.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)" ></text> +</g> +<g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)"> +<title>/usr/local/lib/python3.6/site-packages/werkzeug/routing.py:add:1197 (1 samples, 0.76%)</title><rect x="45.8" y="517" width="8.9" height="15.0" fill="rgb(216,213,29)" rx="2" ry="2" /> +<text text-anchor="" x="48.76" y="527.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)" ></text> +</g> +<g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)"> +<title>/datas/progs/odoo/odoo/models.py:_read_group_raw:1924 (3 samples, 2.27%)</title><rect x="510.6" y="245" width="26.8" height="15.0" fill="rgb(249,80,31)" rx="2" ry="2" /> +<text text-anchor="" x="513.61" y="255.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)" >/..</text> +</g> +<g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)"> +<title>/usr/local/lib/python3.6/site-packages/werkzeug/serving.py:run_wsgi:193 (132 samples, 100.00%)</title><rect x="10.0" y="741" width="1180.0" height="15.0" fill="rgb(239,203,23)" rx="2" ry="2" /> +<text text-anchor="" x="13.00" y="751.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)" >/usr/local/lib/python3.6/site-packages/werkzeug/serving.py:run_wsgi:193</text> +</g> +<g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)"> +<title>/datas/progs/odoo/odoo/api.py:get_todo:911 (1 samples, 0.76%)</title><rect x="1172.1" y="293" width="9.0" height="15.0" fill="rgb(249,96,3)" rx="2" ry="2" /> +<text text-anchor="" x="1175.12" y="303.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)" ></text> +</g> +<g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)"> +<title>odoo-bin:<module>:8 (132 samples, 100.00%)</title><rect x="10.0" y="1013" width="1180.0" height="15.0" fill="rgb(212,189,25)" rx="2" ry="2" /> +<text text-anchor="" x="13.00" y="1023.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)" >odoo-bin:<module>:8</text> +</g> +<g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)"> +<title>/datas/progs/odoo/odoo/fields.py:__set__:966 (7 samples, 5.30%)</title><rect x="242.4" y="261" width="62.6" height="15.0" fill="rgb(233,18,33)" rx="2" ry="2" /> +<text text-anchor="" x="245.42" y="271.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)" >/datas..</text> +</g> +<g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)"> +<title>/datas/progs/odoo/odoo/modules/loading.py:load_modules:339 (1 samples, 0.76%)</title><rect x="10.0" y="565" width="8.9" height="15.0" fill="rgb(217,166,20)" rx="2" ry="2" /> +<text text-anchor="" x="13.00" y="575.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)" ></text> +</g> +<g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)"> +<title>/usr/local/lib/python3.6/_weakrefset.py:__iter__:60 (1 samples, 0.76%)</title><rect x="510.6" y="149" width="8.9" height="15.0" fill="rgb(231,103,26)" rx="2" ry="2" /> +<text text-anchor="" x="513.61" y="159.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)" ></text> +</g> +<g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)"> +<title>/datas/progs/odoo/odoo/models.py:_read_from_database:2618 (1 samples, 0.76%)</title><rect x="877.1" y="117" width="9.0" height="15.0" fill="rgb(225,32,35)" rx="2" ry="2" /> +<text text-anchor="" x="880.12" y="127.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)" ></text> +</g> +<g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)"> +<title>/datas/progs/odoo/odoo/models.py:<listcomp>:2618 (1 samples, 0.76%)</title><rect x="877.1" y="101" width="9.0" height="15.0" fill="rgb(218,43,39)" rx="2" ry="2" /> +<text text-anchor="" x="880.12" y="111.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)" ></text> +</g> +<g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)"> +<title>all (132 samples, 100%)</title><rect x="10.0" y="1029" width="1180.0" height="15.0" fill="rgb(210,86,49)" rx="2" ry="2" /> +<text text-anchor="" x="13.00" y="1039.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)" ></text> +</g> +<g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)"> +<title>/usr/local/lib/python3.6/sre_compile.py:compile:566 (1 samples, 0.76%)</title><rect x="45.8" y="437" width="8.9" height="15.0" fill="rgb(248,45,37)" rx="2" ry="2" /> +<text text-anchor="" x="48.76" y="447.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)" ></text> +</g> +<g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)"> +<title>/datas/progs/odoo/odoo/service/server.py:run:743 (132 samples, 100.00%)</title><rect x="10.0" y="885" width="1180.0" height="15.0" fill="rgb(242,175,1)" rx="2" ry="2" /> +<text text-anchor="" x="13.00" y="895.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)" >/datas/progs/odoo/odoo/service/server.py:run:743</text> +</g> +<g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)"> +<title>/datas/progs/odoo/odoo/api.py:__call__:789 (9 samples, 6.82%)</title><rect x="537.4" y="245" width="80.5" height="15.0" fill="rgb(242,157,8)" rx="2" ry="2" /> +<text text-anchor="" x="540.42" y="255.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)" >/datas/pr..</text> +</g> +<g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)"> +<title>/datas/progs/odoo/odoo/cli/server.py:main:169 (132 samples, 100.00%)</title><rect x="10.0" y="965" width="1180.0" height="15.0" fill="rgb(217,171,7)" rx="2" ry="2" /> +<text text-anchor="" x="13.00" y="975.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)" >/datas/progs/odoo/odoo/cli/server.py:main:169</text> +</g> +<g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)"> +<title>/datas/progs/odoo/addons/stock/models/product.py:_compute_quantities_dict:124 (13 samples, 9.85%)</title><rect x="394.4" y="277" width="116.2" height="15.0" fill="rgb(222,114,2)" rx="2" ry="2" /> +<text text-anchor="" x="397.39" y="287.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)" >/datas/progs/o..</text> +</g> +<g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)"> +<title>/datas/progs/odoo/odoo/models.py:__setitem__:4666 (7 samples, 5.30%)</title><rect x="242.4" y="277" width="62.6" height="15.0" fill="rgb(245,99,32)" rx="2" ry="2" /> +<text text-anchor="" x="245.42" y="287.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)" >/datas..</text> +</g> +<g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)"> +<title>/datas/progs/odoo/odoo/models.py:_read_group_raw:1889 (1 samples, 0.76%)</title><rect x="430.2" y="245" width="8.9" height="15.0" fill="rgb(234,203,31)" rx="2" ry="2" /> +<text text-anchor="" x="433.15" y="255.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)" ></text> +</g> +<g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)"> +<title>/datas/progs/odoo/odoo/models.py:__bool__:4521 (1 samples, 0.76%)</title><rect x="859.2" y="101" width="9.0" height="15.0" fill="rgb(251,104,38)" rx="2" ry="2" /> +<text text-anchor="" x="862.24" y="111.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)" ></text> +</g> +<g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)"> +<title>/datas/progs/odoo/odoo/addons/base/res/ir_property.py:get_multi:160 (6 samples, 4.55%)</title><rect x="188.8" y="277" width="53.6" height="15.0" fill="rgb(246,42,45)" rx="2" ry="2" /> +<text text-anchor="" x="191.79" y="287.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)" >/data..</text> +</g> +<g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)"> +<title>/datas/progs/odoo/odoo/fields.py:__get__:948 (96 samples, 72.73%)</title><rect x="313.9" y="357" width="858.2" height="15.0" fill="rgb(213,57,32)" rx="2" ry="2" /> +<text text-anchor="" x="316.94" y="367.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)" >/datas/progs/odoo/odoo/fields.py:__get__:948</text> +</g> +<g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)"> +<title>/datas/progs/odoo/odoo/fields.py:convert_to_cache:1227 (1 samples, 0.76%)</title><rect x="1038.0" y="261" width="9.0" height="15.0" fill="rgb(223,62,12)" rx="2" ry="2" /> +<text text-anchor="" x="1041.03" y="271.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)" ></text> +</g> +<g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)"> +<title>/datas/progs/odoo/odoo/addons/base/res/ir_property.py:get_multi:150 (5 samples, 3.79%)</title><rect x="144.1" y="277" width="44.7" height="15.0" fill="rgb(225,170,33)" rx="2" ry="2" /> +<text text-anchor="" x="147.09" y="287.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)" >/dat..</text> +</g> +<g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)"> +<title>/datas/progs/odoo/odoo/models.py:_prefetch_field:2533 (27 samples, 20.45%)</title><rect x="617.9" y="149" width="241.3" height="15.0" fill="rgb(216,23,42)" rx="2" ry="2" /> +<text text-anchor="" x="620.88" y="159.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)" >/datas/progs/odoo/odoo/models.py..</text> +</g> +<g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)"> +<title>/usr/local/lib/python3.6/_weakrefset.py:__iter__:60 (3 samples, 2.27%)</title><rect x="537.4" y="213" width="26.8" height="15.0" fill="rgb(235,207,6)" rx="2" ry="2" /> +<text text-anchor="" x="540.42" y="223.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)" >/..</text> +</g> +<g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)"> +<title>/datas/progs/odoo/odoo/models.py:_search:3664 (4 samples, 3.03%)</title><rect x="188.8" y="245" width="35.7" height="15.0" fill="rgb(205,45,53)" rx="2" ry="2" /> +<text text-anchor="" x="191.79" y="255.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)" >/da..</text> +</g> +<g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)"> +<title>/usr/local/lib/python3.6/_weakrefset.py:__iter__:61 (3 samples, 2.27%)</title><rect x="1118.5" y="197" width="26.8" height="15.0" fill="rgb(247,10,46)" rx="2" ry="2" /> +<text text-anchor="" x="1121.48" y="207.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)" >/..</text> +</g> +<g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)"> +<title>/datas/progs/odoo/odoo/models.py:_where_calc:3469 (3 samples, 2.27%)</title><rect x="394.4" y="229" width="26.8" height="15.0" fill="rgb(236,20,44)" rx="2" ry="2" /> +<text text-anchor="" x="397.39" y="239.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)" >/..</text> +</g> +<g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)"> +<title>/datas/progs/odoo/odoo/addons/base/ir/ir_http.py:_find_handler:84 (1 samples, 0.76%)</title><rect x="45.8" y="565" width="8.9" height="15.0" fill="rgb(213,124,8)" rx="2" ry="2" /> +<text text-anchor="" x="48.76" y="575.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)" ></text> +</g> +<g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)"> +<title>/datas/progs/odoo/odoo/api.py:__new__:736 (2 samples, 1.52%)</title><rect x="1020.2" y="213" width="17.8" height="15.0" fill="rgb(235,151,44)" rx="2" ry="2" /> +<text text-anchor="" x="1023.15" y="223.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)" ></text> +</g> +<g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)"> +<title>/datas/progs/odoo/odoo/api.py:__new__:103 (1 samples, 0.76%)</title><rect x="10.0" y="149" width="8.9" height="15.0" fill="rgb(215,72,7)" rx="2" ry="2" /> +<text text-anchor="" x="13.00" y="159.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)" ></text> +</g> +<g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)"> +<title>/datas/progs/odoo/odoo/api.py:__call__:789 (6 samples, 4.55%)</title><rect x="457.0" y="181" width="53.6" height="15.0" fill="rgb(240,32,21)" rx="2" ry="2" /> +<text text-anchor="" x="459.97" y="191.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)" >/data..</text> +</g> +<g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)"> +<title>/datas/progs/odoo/addons/stock/models/product.py:<lambda>:200 (38 samples, 28.79%)</title><rect x="617.9" y="197" width="339.7" height="15.0" fill="rgb(207,192,20)" rx="2" ry="2" /> +<text text-anchor="" x="620.88" y="207.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)" >/datas/progs/odoo/addons/stock/models/product..</text> +</g> +<g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)"> +<title>/datas/progs/odoo/odoo/modules/registry.py:setup_models:276 (3 samples, 2.27%)</title><rect x="18.9" y="549" width="26.9" height="15.0" fill="rgb(254,108,35)" rx="2" ry="2" /> +<text text-anchor="" x="21.94" y="559.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)" >/..</text> +</g> +<g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)"> +<title>/datas/progs/odoo/odoo/api.py:__new__:735 (2 samples, 1.52%)</title><rect x="162.0" y="181" width="17.8" height="15.0" fill="rgb(233,102,44)" rx="2" ry="2" /> +<text text-anchor="" x="164.97" y="191.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)" ></text> +</g> +<g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)"> +<title>/datas/progs/odoo/odoo/api.py:call_kw_multi:680 (1 samples, 0.76%)</title><rect x="1181.1" y="405" width="8.9" height="15.0" fill="rgb(232,100,36)" rx="2" ry="2" /> +<text text-anchor="" x="1184.06" y="415.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)" ></text> +</g> +<g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)"> +<title><frozen importlib._bootstrap>:_handle_fromlist:1017 (1 samples, 0.76%)</title><rect x="10.0" y="405" width="8.9" height="15.0" fill="rgb(218,205,3)" rx="2" ry="2" /> +<text text-anchor="" x="13.00" y="415.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)" ></text> +</g> +<g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)"> +<title>/datas/progs/odoo/odoo/http.py:dispatch:683 (127 samples, 96.21%)</title><rect x="54.7" y="549" width="1135.3" height="15.0" fill="rgb(223,58,50)" rx="2" ry="2" /> +<text text-anchor="" x="57.70" y="559.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)" >/datas/progs/odoo/odoo/http.py:dispatch:683</text> +</g> +<g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)"> +<title>/datas/progs/odoo/odoo/fields.py:determine_value:1049 (38 samples, 28.79%)</title><rect x="617.9" y="165" width="339.7" height="15.0" fill="rgb(243,10,45)" rx="2" ry="2" /> +<text text-anchor="" x="620.88" y="175.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)" >/datas/progs/odoo/odoo/fields.py:determine_va..</text> +</g> +<g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)"> +<title>/usr/local/lib/python3.6/site-packages/werkzeug/serving.py:handle_one_request:251 (132 samples, 100.00%)</title><rect x="10.0" y="757" width="1180.0" height="15.0" fill="rgb(213,136,27)" rx="2" ry="2" /> +<text text-anchor="" x="13.00" y="767.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)" >/usr/local/lib/python3.6/site-packages/werkzeug/serving.py:handle_one_request:251</text> +</g> +<g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)"> +<title>/datas/progs/odoo/odoo/sql_db.py:wrapper:155 (2 samples, 1.52%)</title><rect x="144.1" y="245" width="17.9" height="15.0" fill="rgb(242,159,41)" rx="2" ry="2" /> +<text text-anchor="" x="147.09" y="255.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)" ></text> +</g> +<g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)"> +<title>/datas/progs/odoo/odoo/http.py:routing_map:978 (1 samples, 0.76%)</title><rect x="45.8" y="533" width="8.9" height="15.0" fill="rgb(248,134,14)" rx="2" ry="2" /> +<text text-anchor="" x="48.76" y="543.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)" ></text> +</g> +<g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)"> +<title><frozen importlib._bootstrap>:_handle_fromlist:1017 (1 samples, 0.76%)</title><rect x="10.0" y="277" width="8.9" height="15.0" fill="rgb(247,49,3)" rx="2" ry="2" /> +<text text-anchor="" x="13.00" y="287.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)" ></text> +</g> +<g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)"> +<title>/datas/progs/odoo/addons/fetchmail/models/fetchmail.py:<module>:21 (1 samples, 0.76%)</title><rect x="10.0" y="165" width="8.9" height="15.0" fill="rgb(226,203,49)" rx="2" ry="2" /> +<text text-anchor="" x="13.00" y="175.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)" ></text> +</g> +<g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)"> +<title>/datas/progs/odoo/odoo/models.py:read:2509 (1 samples, 0.76%)</title><rect x="1181.1" y="229" width="8.9" height="15.0" fill="rgb(254,35,12)" rx="2" ry="2" /> +<text text-anchor="" x="1184.06" y="239.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)" ></text> +</g> +<g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)"> +<title>/datas/progs/odoo/odoo/http.py:_call_function:339 (127 samples, 96.21%)</title><rect x="54.7" y="533" width="1135.3" height="15.0" fill="rgb(228,43,15)" rx="2" ry="2" /> +<text text-anchor="" x="57.70" y="543.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)" >/datas/progs/odoo/odoo/http.py:_call_function:339</text> +</g> +<g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)"> +<title>/datas/progs/odoo/odoo/fields.py:compute_value:1015 (1 samples, 0.76%)</title><rect x="1181.1" y="325" width="8.9" height="15.0" fill="rgb(249,30,19)" rx="2" ry="2" /> +<text text-anchor="" x="1184.06" y="335.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)" ></text> +</g> +<g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)"> +<title>/usr/local/lib/python3.6/_weakrefset.py:__iter__:59 (1 samples, 0.76%)</title><rect x="188.8" y="181" width="8.9" height="15.0" fill="rgb(219,15,45)" rx="2" ry="2" /> +<text text-anchor="" x="191.79" y="191.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)" ></text> +</g> +<g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)"> +<title>/usr/local/lib/python3.6/sre_compile.py:_code:551 (1 samples, 0.76%)</title><rect x="45.8" y="421" width="8.9" height="15.0" fill="rgb(238,179,12)" rx="2" ry="2" /> +<text text-anchor="" x="48.76" y="431.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)" ></text> +</g> +<g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)"> +<title>/datas/progs/odoo/odoo/osv/expression.py:get_alias_from_query:380 (1 samples, 0.76%)</title><rect x="430.2" y="197" width="8.9" height="15.0" fill="rgb(233,132,37)" rx="2" ry="2" /> +<text text-anchor="" x="433.15" y="207.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)" ></text> +</g> +<g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)"> +<title>/datas/progs/odoo/odoo/fields.py:determine_value:1049 (1 samples, 0.76%)</title><rect x="1181.1" y="261" width="8.9" height="15.0" fill="rgb(240,170,2)" rx="2" ry="2" /> +<text text-anchor="" x="1184.06" y="271.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)" ></text> +</g> +<g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)"> +<title>/datas/progs/odoo/addons/stock_account/models/product.py:do_change_standard_price:131 (96 samples, 72.73%)</title><rect x="313.9" y="373" width="858.2" height="15.0" fill="rgb(253,48,28)" rx="2" ry="2" /> +<text text-anchor="" x="316.94" y="383.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)" >/datas/progs/odoo/addons/stock_account/models/product.py:do_change_standard_price:131</text> +</g> +<g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)"> +<title>/datas/progs/odoo/odoo/fields.py:__get__:951 (1 samples, 0.76%)</title><rect x="305.0" y="357" width="8.9" height="15.0" fill="rgb(219,227,33)" rx="2" ry="2" /> +<text text-anchor="" x="308.00" y="367.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)" ></text> +</g> +<g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)"> +<title>/datas/progs/odoo/odoo/models.py:read:2509 (5 samples, 3.79%)</title><rect x="859.2" y="133" width="44.7" height="15.0" fill="rgb(235,41,51)" rx="2" ry="2" /> +<text text-anchor="" x="862.24" y="143.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)" >/dat..</text> +</g> +<g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)"> +<title>/datas/progs/odoo/addons/web/controllers/main.py:call_button:928 (126 samples, 95.45%)</title><rect x="54.7" y="453" width="1126.4" height="15.0" fill="rgb(216,220,14)" rx="2" ry="2" /> +<text text-anchor="" x="57.70" y="463.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)" >/datas/progs/odoo/addons/web/controllers/main.py:call_button:928</text> +</g> +<g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)"> +<title>/datas/progs/odoo/odoo/models.py:_read_group_raw:1854 (1 samples, 0.76%)</title><rect x="331.8" y="245" width="9.0" height="15.0" fill="rgb(249,106,42)" rx="2" ry="2" /> +<text text-anchor="" x="334.82" y="255.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)" ></text> +</g> +<g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)"> +<title>/datas/progs/odoo/odoo/models.py:_where_calc:3462 (1 samples, 0.76%)</title><rect x="224.5" y="229" width="9.0" height="15.0" fill="rgb(206,135,8)" rx="2" ry="2" /> +<text text-anchor="" x="227.55" y="239.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)" ></text> +</g> +<g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)"> +<title>/datas/progs/odoo/odoo/fields.py:determine_value:1059 (1 samples, 0.76%)</title><rect x="1181.1" y="341" width="8.9" height="15.0" fill="rgb(210,78,8)" rx="2" ry="2" /> +<text text-anchor="" x="1184.06" y="351.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)" ></text> +</g> +<g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)"> +<title>/datas/progs/odoo/odoo/service/server.py:process_request:767 (132 samples, 100.00%)</title><rect x="10.0" y="853" width="1180.0" height="15.0" fill="rgb(244,6,16)" rx="2" ry="2" /> +<text text-anchor="" x="13.00" y="863.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)" >/datas/progs/odoo/odoo/service/server.py:process_request:767</text> +</g> +<g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)"> +<title>/datas/progs/odoo/addons/stock/models/product.py:_compute_quantities_dict:123 (9 samples, 6.82%)</title><rect x="313.9" y="277" width="80.5" height="15.0" fill="rgb(250,183,23)" rx="2" ry="2" /> +<text text-anchor="" x="316.94" y="287.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)" >/datas/pr..</text> +</g> +<g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)"> +<title>/datas/progs/odoo/odoo/tools/cache.py:lookup:81 (1 samples, 0.76%)</title><rect x="242.4" y="181" width="9.0" height="15.0" fill="rgb(220,103,38)" rx="2" ry="2" /> +<text text-anchor="" x="245.42" y="191.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)" ></text> +</g> +<g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)"> +<title>/datas/progs/odoo/odoo/modules/module.py:load_module:82 (1 samples, 0.76%)</title><rect x="10.0" y="437" width="8.9" height="15.0" fill="rgb(219,72,39)" rx="2" ry="2" /> +<text text-anchor="" x="13.00" y="447.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)" ></text> +</g> +<g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)"> +<title>/datas/progs/odoo/odoo/modules/loading.py:load_modules:346 (3 samples, 2.27%)</title><rect x="18.9" y="565" width="26.9" height="15.0" fill="rgb(254,123,30)" rx="2" ry="2" /> +<text text-anchor="" x="21.94" y="575.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)" >/..</text> +</g> +<g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)"> +<title>/datas/progs/odoo/odoo/fields.py:__set__:966 (6 samples, 4.55%)</title><rect x="957.6" y="277" width="53.6" height="15.0" fill="rgb(205,100,42)" rx="2" ry="2" /> +<text text-anchor="" x="960.58" y="287.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)" >/data..</text> +</g> +<g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)"> +<title>/usr/local/lib/python3.6/sre_compile.py:_compile:81 (1 samples, 0.76%)</title><rect x="45.8" y="405" width="8.9" height="15.0" fill="rgb(237,14,18)" rx="2" ry="2" /> +<text text-anchor="" x="48.76" y="415.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)" ></text> +</g> +<g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)"> +<title>/datas/progs/odoo/odoo/models.py:_browse:4218 (1 samples, 0.76%)</title><rect x="903.9" y="101" width="9.0" height="15.0" fill="rgb(231,212,17)" rx="2" ry="2" /> +<text text-anchor="" x="906.94" y="111.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)" ></text> +</g> +<g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)"> +<title><frozen importlib._bootstrap>:_call_with_frames_removed:219 (1 samples, 0.76%)</title><rect x="10.0" y="261" width="8.9" height="15.0" fill="rgb(206,7,48)" rx="2" ry="2" /> +<text text-anchor="" x="13.00" y="271.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)" ></text> +</g> +<g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)"> +<title><frozen importlib._bootstrap>:_load_unlocked:656 (1 samples, 0.76%)</title><rect x="10.0" y="469" width="8.9" height="15.0" fill="rgb(221,132,11)" rx="2" ry="2" /> +<text text-anchor="" x="13.00" y="479.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)" ></text> +</g> +<g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)"> +<title>/datas/progs/odoo/odoo/models.py:<listcomp>:2618 (1 samples, 0.76%)</title><rect x="1181.1" y="197" width="8.9" height="15.0" fill="rgb(243,158,6)" rx="2" ry="2" /> +<text text-anchor="" x="1184.06" y="207.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)" ></text> +</g> +<g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)"> +<title><frozen importlib._bootstrap>:_load_backward_compatible:626 (1 samples, 0.76%)</title><rect x="10.0" y="453" width="8.9" height="15.0" fill="rgb(214,30,9)" rx="2" ry="2" /> +<text text-anchor="" x="13.00" y="463.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)" ></text> +</g> +<g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)"> +<title>/datas/progs/odoo/odoo/osv/query.py:get_sql:144 (1 samples, 0.76%)</title><rect x="430.2" y="229" width="8.9" height="15.0" fill="rgb(247,73,28)" rx="2" ry="2" /> +<text text-anchor="" x="433.15" y="239.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)" ></text> +</g> +<g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)"> +<title>/datas/progs/odoo/odoo/api.py:__new__:735 (2 samples, 1.52%)</title><rect x="510.6" y="165" width="17.9" height="15.0" fill="rgb(236,221,21)" rx="2" ry="2" /> +<text text-anchor="" x="513.61" y="175.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)" ></text> +</g> +<g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)"> +<title>/datas/progs/odoo/odoo/models.py:_read_from_database:2589 (1 samples, 0.76%)</title><rect x="859.2" y="117" width="9.0" height="15.0" fill="rgb(243,173,11)" rx="2" ry="2" /> +<text text-anchor="" x="862.24" y="127.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)" ></text> +</g> +<g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)"> +<title>/datas/progs/odoo/odoo/models.py:_browse:4224 (5 samples, 3.79%)</title><rect x="814.5" y="69" width="44.7" height="15.0" fill="rgb(240,32,18)" rx="2" ry="2" /> +<text text-anchor="" x="817.55" y="79.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)" >/dat..</text> +</g> +<g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)"> +<title>/datas/progs/odoo/odoo/osv/expression.py:is_leaf:422 (1 samples, 0.76%)</title><rect x="403.3" y="181" width="9.0" height="15.0" fill="rgb(250,162,12)" rx="2" ry="2" /> +<text text-anchor="" x="406.33" y="191.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)" ></text> +</g> +<g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)"> +<title>/datas/progs/odoo/odoo/service/server.py:process_work:776 (132 samples, 100.00%)</title><rect x="10.0" y="869" width="1180.0" height="15.0" fill="rgb(245,53,45)" rx="2" ry="2" /> +<text text-anchor="" x="13.00" y="879.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)" >/datas/progs/odoo/odoo/service/server.py:process_work:776</text> +</g> +<g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)"> +<title>/datas/progs/odoo/odoo/fields.py:digits:1209 (3 samples, 2.27%)</title><rect x="1011.2" y="245" width="26.8" height="15.0" fill="rgb(252,152,31)" rx="2" ry="2" /> +<text text-anchor="" x="1014.21" y="255.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)" >/..</text> +</g> +<g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)"> +<title>/datas/progs/odoo/odoo/fields.py:__get__:956 (3 samples, 2.27%)</title><rect x="930.8" y="101" width="26.8" height="15.0" fill="rgb(212,219,12)" rx="2" ry="2" /> +<text text-anchor="" x="933.76" y="111.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)" >/..</text> +</g> +<g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)"> +<title>/datas/progs/odoo/odoo/http.py:dispatch:1456 (4 samples, 3.03%)</title><rect x="10.0" y="629" width="35.8" height="15.0" fill="rgb(224,44,49)" rx="2" ry="2" /> +<text text-anchor="" x="13.00" y="639.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)" >/da..</text> +</g> +<g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)"> +<title>/datas/progs/odoo/odoo/api.py:__call__:789 (4 samples, 3.03%)</title><rect x="188.8" y="213" width="35.7" height="15.0" fill="rgb(233,68,37)" rx="2" ry="2" /> +<text text-anchor="" x="191.79" y="223.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)" >/da..</text> +</g> +<g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)"> +<title>/usr/local/lib/python3.6/_weakrefset.py:__iter__:60 (1 samples, 0.76%)</title><rect x="1055.9" y="197" width="8.9" height="15.0" fill="rgb(247,151,21)" rx="2" ry="2" /> +<text text-anchor="" x="1058.91" y="207.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)" ></text> +</g> +<g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)"> +<title>/datas/progs/odoo/odoo/models.py:_where_calc:3469 (1 samples, 0.76%)</title><rect x="313.9" y="229" width="9.0" height="15.0" fill="rgb(244,168,14)" rx="2" ry="2" /> +<text text-anchor="" x="316.94" y="239.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)" ></text> +</g> +<g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)"> +<title>/usr/local/lib/python3.6/_weakrefset.py:__iter__:60 (2 samples, 1.52%)</title><rect x="197.7" y="181" width="17.9" height="15.0" fill="rgb(215,190,28)" rx="2" ry="2" /> +<text text-anchor="" x="200.73" y="191.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)" ></text> +</g> +<g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)"> +<title>/datas/progs/odoo/addons/stock/models/product.py:_compute_quantities:85 (8 samples, 6.06%)</title><rect x="1038.0" y="293" width="71.5" height="15.0" fill="rgb(222,91,2)" rx="2" ry="2" /> +<text text-anchor="" x="1041.03" y="303.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)" >/datas/p..</text> +</g> +<g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)"> +<title>/datas/progs/odoo/odoo/models.py:_where_calc:3471 (1 samples, 0.76%)</title><rect x="233.5" y="229" width="8.9" height="15.0" fill="rgb(225,220,50)" rx="2" ry="2" /> +<text text-anchor="" x="236.48" y="239.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)" ></text> +</g> +<g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)"> +<title>/datas/progs/odoo/odoo/tools/lru.py:__getitem__:45 (1 samples, 0.76%)</title><rect x="340.8" y="133" width="8.9" height="15.0" fill="rgb(235,178,15)" rx="2" ry="2" /> +<text text-anchor="" x="343.76" y="143.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)" ></text> +</g> +<g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)"> +<title>/usr/local/lib/python3.6/site-packages/werkzeug/serving.py:handle:216 (132 samples, 100.00%)</title><rect x="10.0" y="789" width="1180.0" height="15.0" fill="rgb(224,40,32)" rx="2" ry="2" /> +<text text-anchor="" x="13.00" y="799.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)" >/usr/local/lib/python3.6/site-packages/werkzeug/serving.py:handle:216</text> +</g> +<g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)"> +<title>/datas/progs/odoo/addons/stock/models/product.py:_compute_quantities:86 (7 samples, 5.30%)</title><rect x="1109.5" y="293" width="62.6" height="15.0" fill="rgb(248,193,54)" rx="2" ry="2" /> +<text text-anchor="" x="1112.55" y="303.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)" >/datas..</text> +</g> +<g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)"> +<title>/datas/progs/odoo/odoo/models.py:__getitem__:4657 (5 samples, 3.79%)</title><rect x="912.9" y="117" width="44.7" height="15.0" fill="rgb(224,141,31)" rx="2" ry="2" /> +<text text-anchor="" x="915.88" y="127.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)" >/dat..</text> +</g> +<g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)"> +<title>/datas/progs/odoo/odoo/service/server.py:process_spawn:539 (132 samples, 100.00%)</title><rect x="10.0" y="917" width="1180.0" height="15.0" fill="rgb(218,127,20)" rx="2" ry="2" /> +<text text-anchor="" x="13.00" y="927.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)" >/datas/progs/odoo/odoo/service/server.py:process_spawn:539</text> +</g> +<g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)"> +<title>/usr/local/lib/python3.6/http/server.py:handle:418 (132 samples, 100.00%)</title><rect x="10.0" y="773" width="1180.0" height="15.0" fill="rgb(229,69,54)" rx="2" ry="2" /> +<text text-anchor="" x="13.00" y="783.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)" >/usr/local/lib/python3.6/http/server.py:handle:418</text> +</g> +<g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)"> +<title>/datas/progs/odoo/odoo/api.py:__new__:744 (1 samples, 0.76%)</title><rect x="296.1" y="197" width="8.9" height="15.0" fill="rgb(216,7,12)" rx="2" ry="2" /> +<text text-anchor="" x="299.06" y="207.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)" ></text> +</g> +<g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)"> +<title>/usr/local/lib/python3.6/_weakrefset.py:__iter__:60 (1 samples, 0.76%)</title><rect x="1109.5" y="197" width="9.0" height="15.0" fill="rgb(241,122,38)" rx="2" ry="2" /> +<text text-anchor="" x="1112.55" y="207.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)" ></text> +</g> +<g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)"> +<title>/datas/progs/odoo/odoo/models.py:qualify:2612 (1 samples, 0.76%)</title><rect x="1181.1" y="181" width="8.9" height="15.0" fill="rgb(208,202,50)" rx="2" ry="2" /> +<text text-anchor="" x="1184.06" y="191.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)" ></text> +</g> +<g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)"> +<title>/usr/local/lib/python3.6/_weakrefset.py:__iter__:60 (1 samples, 0.76%)</title><rect x="1011.2" y="197" width="9.0" height="15.0" fill="rgb(228,71,50)" rx="2" ry="2" /> +<text text-anchor="" x="1014.21" y="207.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)" ></text> +</g> +<g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)"> +<title><frozen importlib._bootstrap>:_find_and_load_unlocked:955 (1 samples, 0.76%)</title><rect x="10.0" y="229" width="8.9" height="15.0" fill="rgb(240,79,11)" rx="2" ry="2" /> +<text text-anchor="" x="13.00" y="239.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)" ></text> +</g> +<g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)"> +<title>/datas/progs/odoo/addons/product/models/product.py:name_get:372 (1 samples, 0.76%)</title><rect x="340.8" y="213" width="8.9" height="15.0" fill="rgb(245,86,42)" rx="2" ry="2" /> +<text text-anchor="" x="343.76" y="223.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)" ></text> +</g> +<g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)"> +<title>/datas/progs/odoo/addons/stock/models/product.py:_compute_quantities:81 (72 samples, 54.55%)</title><rect x="313.9" y="293" width="643.7" height="15.0" fill="rgb(238,220,37)" rx="2" ry="2" /> +<text text-anchor="" x="316.94" y="303.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)" >/datas/progs/odoo/addons/stock/models/product.py:_compute_quantities:81</text> +</g> +<g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)"> +<title>/datas/progs/odoo/addons/stock/models/product.py:_compute_quantities:84 (3 samples, 2.27%)</title><rect x="1011.2" y="293" width="26.8" height="15.0" fill="rgb(240,126,18)" rx="2" ry="2" /> +<text text-anchor="" x="1014.21" y="303.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)" >/..</text> +</g> +<g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)"> +<title>/datas/progs/odoo/odoo/addons/base/res/ir_property.py:_get_domain:134 (2 samples, 1.52%)</title><rect x="144.1" y="261" width="17.9" height="15.0" fill="rgb(207,181,8)" rx="2" ry="2" /> +<text text-anchor="" x="147.09" y="271.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)" ></text> +</g> +<g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)"> +<title>/datas/progs/odoo/odoo/models.py:_read_from_database:2628 (1 samples, 0.76%)</title><rect x="886.1" y="117" width="8.9" height="15.0" fill="rgb(205,174,27)" rx="2" ry="2" /> +<text text-anchor="" x="889.06" y="127.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)" ></text> +</g> +<g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)"> +<title>/datas/progs/odoo/odoo/api.py:__call__:789 (8 samples, 6.06%)</title><rect x="63.6" y="341" width="71.6" height="15.0" fill="rgb(228,167,24)" rx="2" ry="2" /> +<text text-anchor="" x="66.64" y="351.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)" >/datas/p..</text> +</g> +<g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)"> +<title>/datas/progs/odoo/odoo/models.py:_in_cache_without:4684 (27 samples, 20.45%)</title><rect x="617.9" y="133" width="241.3" height="15.0" fill="rgb(253,7,52)" rx="2" ry="2" /> +<text text-anchor="" x="620.88" y="143.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)" >/datas/progs/odoo/odoo/models.py..</text> +</g> +<g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)"> +<title>/datas/progs/odoo/odoo/osv/expression.py:__leaf_to_sql:1204 (1 samples, 0.76%)</title><rect x="421.2" y="197" width="9.0" height="15.0" fill="rgb(219,140,30)" rx="2" ry="2" /> +<text text-anchor="" x="424.21" y="207.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)" ></text> +</g> +<g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)"> +<title>/usr/local/lib/python3.6/_weakrefset.py:__iter__:61 (1 samples, 0.76%)</title><rect x="483.8" y="149" width="8.9" height="15.0" fill="rgb(213,16,53)" rx="2" ry="2" /> +<text text-anchor="" x="486.79" y="159.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)" ></text> +</g> +<g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)"> +<title>/datas/progs/odoo/odoo/api.py:__new__:735 (1 samples, 0.76%)</title><rect x="1011.2" y="213" width="9.0" height="15.0" fill="rgb(221,27,43)" rx="2" ry="2" /> +<text text-anchor="" x="1014.21" y="223.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)" ></text> +</g> +<g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)"> +<title>/datas/progs/odoo/odoo/models.py:_read_group_resolve_many2one_fields:1944 (3 samples, 2.27%)</title><rect x="510.6" y="229" width="26.8" height="15.0" fill="rgb(215,38,2)" rx="2" ry="2" /> +<text text-anchor="" x="513.61" y="239.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)" >/..</text> +</g> +<g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)"> +<title>/datas/progs/odoo/odoo/fields.py:_compute_company_dependent:636 (11 samples, 8.33%)</title><rect x="144.1" y="293" width="98.3" height="15.0" fill="rgb(243,90,34)" rx="2" ry="2" /> +<text text-anchor="" x="147.09" y="303.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)" >/datas/prog..</text> +</g> +<g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)"> +<title>/datas/progs/odoo/odoo/fields.py:convert_to_cache:1230 (3 samples, 2.27%)</title><rect x="1011.2" y="261" width="26.8" height="15.0" fill="rgb(249,97,52)" rx="2" ry="2" /> +<text text-anchor="" x="1014.21" y="271.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)" >/..</text> +</g> +<g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)"> +<title>/datas/progs/odoo/odoo/api.py:__new__:735 (4 samples, 3.03%)</title><rect x="537.4" y="229" width="35.8" height="15.0" fill="rgb(248,196,1)" rx="2" ry="2" /> +<text text-anchor="" x="540.42" y="239.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)" >/da..</text> +</g> +<g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)"> +<title><frozen importlib._bootstrap>:_load_unlocked:665 (1 samples, 0.76%)</title><rect x="10.0" y="213" width="8.9" height="15.0" fill="rgb(250,58,20)" rx="2" ry="2" /> +<text text-anchor="" x="13.00" y="223.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)" ></text> +</g> +<g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)"> +<title>/datas/progs/odoo/addons/stock/models/product.py:_compute_quantities_dict:93 (38 samples, 28.79%)</title><rect x="617.9" y="277" width="339.7" height="15.0" fill="rgb(227,94,9)" rx="2" ry="2" /> +<text text-anchor="" x="620.88" y="287.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)" >/datas/progs/odoo/addons/stock/models/product..</text> +</g> +<g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)"> +<title>/datas/progs/odoo/addons/stock/models/product.py:_get_domain_locations:191 (38 samples, 28.79%)</title><rect x="617.9" y="261" width="339.7" height="15.0" fill="rgb(249,71,37)" rx="2" ry="2" /> +<text text-anchor="" x="620.88" y="271.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)" >/datas/progs/odoo/addons/stock/models/product..</text> +</g> +<g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)"> +<title>/usr/local/lib/python3.6/enum.py:__and__:804 (1 samples, 0.76%)</title><rect x="45.8" y="389" width="8.9" height="15.0" fill="rgb(246,179,18)" rx="2" ry="2" /> +<text text-anchor="" x="48.76" y="399.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)" ></text> +</g> +<g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)"> +<title>/datas/progs/odoo/odoo/api.py:call_kw_multi:680 (126 samples, 95.45%)</title><rect x="54.7" y="405" width="1126.4" height="15.0" fill="rgb(249,186,34)" rx="2" ry="2" /> +<text text-anchor="" x="57.70" y="415.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)" >/datas/progs/odoo/odoo/api.py:call_kw_multi:680</text> +</g> +<g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)"> +<title>/datas/progs/odoo/odoo/addons/base/res/res_company.py:_company_default_get:181 (3 samples, 2.27%)</title><rect x="162.0" y="245" width="26.8" height="15.0" fill="rgb(221,53,46)" rx="2" ry="2" /> +<text text-anchor="" x="164.97" y="255.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)" >/..</text> +</g> +<g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)"> +<title>/usr/local/lib/python3.6/_weakrefset.py:__iter__:61 (1 samples, 0.76%)</title><rect x="564.2" y="213" width="9.0" height="15.0" fill="rgb(216,44,25)" rx="2" ry="2" /> +<text text-anchor="" x="567.24" y="223.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)" ></text> +</g> +<g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)"> +<title>/datas/progs/odoo/odoo/models.py:with_context:4333 (9 samples, 6.82%)</title><rect x="537.4" y="261" width="80.5" height="15.0" fill="rgb(209,7,39)" rx="2" ry="2" /> +<text text-anchor="" x="540.42" y="271.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)" >/datas/pr..</text> +</g> +<g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)"> +<title>/datas/progs/odoo/odoo/models.py:_read_from_database:2618 (1 samples, 0.76%)</title><rect x="1181.1" y="213" width="8.9" height="15.0" fill="rgb(247,1,16)" rx="2" ry="2" /> +<text text-anchor="" x="1184.06" y="223.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)" ></text> +</g> +<g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)"> +<title>/datas/progs/odoo/odoo/models.py:_add_field:288 (1 samples, 0.76%)</title><rect x="27.9" y="517" width="8.9" height="15.0" fill="rgb(208,219,21)" rx="2" ry="2" /> +<text text-anchor="" x="30.88" y="527.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)" ></text> +</g> +<g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)"> +<title>/datas/progs/odoo/odoo/api.py:__getitem__:760 (1 samples, 0.76%)</title><rect x="939.7" y="69" width="8.9" height="15.0" fill="rgb(213,97,47)" rx="2" ry="2" /> +<text text-anchor="" x="942.70" y="79.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)" ></text> +</g> +<g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)"> +<title>/datas/progs/odoo/odoo/fields.py:determine_value:1059 (96 samples, 72.73%)</title><rect x="313.9" y="341" width="858.2" height="15.0" fill="rgb(248,157,53)" rx="2" ry="2" /> +<text text-anchor="" x="316.94" y="351.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)" >/datas/progs/odoo/odoo/fields.py:determine_value:1059</text> +</g> +<g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)"> +<title><string>:change_digit:9 (6 samples, 4.55%)</title><rect x="251.4" y="213" width="53.6" height="15.0" fill="rgb(221,199,17)" rx="2" ry="2" /> +<text text-anchor="" x="254.36" y="223.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)" ><stri..</text> +</g> +<g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)"> +<title>/datas/progs/odoo/odoo/models.py:browse:4237 (1 samples, 0.76%)</title><rect x="448.0" y="213" width="9.0" height="15.0" fill="rgb(221,104,36)" rx="2" ry="2" /> +<text text-anchor="" x="451.03" y="223.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)" ></text> +</g> +<g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)"> +<title>/datas/progs/odoo/odoo/models.py:read:2520 (5 samples, 3.79%)</title><rect x="912.9" y="133" width="44.7" height="15.0" fill="rgb(214,191,26)" rx="2" ry="2" /> +<text text-anchor="" x="915.88" y="143.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)" >/dat..</text> +</g> +<g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)"> +<title>/datas/progs/odoo/odoo/osv/expression.py:parse:813 (1 samples, 0.76%)</title><rect x="412.3" y="197" width="8.9" height="15.0" fill="rgb(233,73,10)" rx="2" ry="2" /> +<text text-anchor="" x="415.27" y="207.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)" ></text> +</g> +<g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)"> +<title>/datas/progs/odoo/odoo/models.py:_prefetch_field:2565 (1 samples, 0.76%)</title><rect x="1181.1" y="245" width="8.9" height="15.0" fill="rgb(222,102,37)" rx="2" ry="2" /> +<text text-anchor="" x="1184.06" y="255.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)" ></text> +</g> +<g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)"> +<title>/usr/local/lib/python3.6/_weakrefset.py:__iter__:61 (1 samples, 0.76%)</title><rect x="984.4" y="197" width="8.9" height="15.0" fill="rgb(216,83,10)" rx="2" ry="2" /> +<text text-anchor="" x="987.39" y="207.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)" ></text> +</g> +<g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)"> +<title>/datas/progs/odoo/odoo/service/wsgi_server.py:application:166 (132 samples, 100.00%)</title><rect x="10.0" y="709" width="1180.0" height="15.0" fill="rgb(206,37,23)" rx="2" ry="2" /> +<text text-anchor="" x="13.00" y="719.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)" >/datas/progs/odoo/odoo/service/wsgi_server.py:application:166</text> +</g> +<g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)"> +<title>/datas/progs/odoo/odoo/service/server.py:run:635 (132 samples, 100.00%)</title><rect x="10.0" y="933" width="1180.0" height="15.0" fill="rgb(228,221,45)" rx="2" ry="2" /> +<text text-anchor="" x="13.00" y="943.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)" >/datas/progs/odoo/odoo/service/server.py:run:635</text> +</g> +<g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)"> +<title>/datas/progs/odoo/odoo/models.py:_inherits_join_calc:1985 (1 samples, 0.76%)</title><rect x="877.1" y="69" width="9.0" height="15.0" fill="rgb(220,31,16)" rx="2" ry="2" /> +<text text-anchor="" x="880.12" y="79.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)" ></text> +</g> +<g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)"> +<title>/datas/progs/odoo/odoo/models.py:_browse:4219 (2 samples, 1.52%)</title><rect x="778.8" y="69" width="17.9" height="15.0" fill="rgb(252,116,41)" rx="2" ry="2" /> +<text text-anchor="" x="781.79" y="79.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)" ></text> +</g> +<g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)"> +<title>/datas/progs/odoo/odoo/api.py:__new__:736 (5 samples, 3.79%)</title><rect x="573.2" y="229" width="44.7" height="15.0" fill="rgb(249,183,19)" rx="2" ry="2" /> +<text text-anchor="" x="576.18" y="239.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)" >/dat..</text> +</g> +<g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)"> +<title>/datas/progs/odoo/odoo/fields.py:convert_to_cache:1230 (7 samples, 5.30%)</title><rect x="1047.0" y="261" width="62.5" height="15.0" fill="rgb(226,70,1)" rx="2" ry="2" /> +<text text-anchor="" x="1049.97" y="271.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)" >/datas..</text> +</g> +<g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)"> +<title>/datas/progs/odoo/odoo/tools/lru.py:__setitem__:56 (1 samples, 0.76%)</title><rect x="340.8" y="101" width="8.9" height="15.0" fill="rgb(211,125,32)" rx="2" ry="2" /> +<text text-anchor="" x="343.76" y="111.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)" ></text> +</g> +<g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)"> +<title><frozen importlib._bootstrap_external>:exec_module:678 (1 samples, 0.76%)</title><rect x="10.0" y="325" width="8.9" height="15.0" fill="rgb(212,198,25)" rx="2" ry="2" /> +<text text-anchor="" x="13.00" y="335.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)" ></text> +</g> +<g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)"> +<title>/datas/progs/odoo/odoo/__init__.py:registry:76 (4 samples, 3.03%)</title><rect x="10.0" y="613" width="35.8" height="15.0" fill="rgb(238,185,28)" rx="2" ry="2" /> +<text text-anchor="" x="13.00" y="623.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)" >/da..</text> +</g> +<g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)"> +<title>/datas/progs/odoo/odoo/fields.py:convert_to_column:776 (1 samples, 0.76%)</title><rect x="421.2" y="165" width="9.0" height="15.0" fill="rgb(223,154,31)" rx="2" ry="2" /> +<text text-anchor="" x="424.21" y="175.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)" ></text> +</g> +<g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)"> +<title>/datas/progs/odoo/odoo/api.py:__new__:735 (4 samples, 3.03%)</title><rect x="957.6" y="213" width="35.7" height="15.0" fill="rgb(210,72,4)" rx="2" ry="2" /> +<text text-anchor="" x="960.58" y="223.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)" >/da..</text> +</g> +<g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)"> +<title><frozen importlib._bootstrap>:_load_unlocked:665 (1 samples, 0.76%)</title><rect x="10.0" y="341" width="8.9" height="15.0" fill="rgb(245,225,7)" rx="2" ry="2" /> +<text text-anchor="" x="13.00" y="351.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)" ></text> +</g> +<g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)"> +<title><string>:change_digit:10 (1 samples, 0.76%)</title><rect x="242.4" y="213" width="9.0" height="15.0" fill="rgb(238,225,19)" rx="2" ry="2" /> +<text text-anchor="" x="245.42" y="223.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)" ></text> +</g> +<g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)"> +<title>/datas/progs/odoo/odoo/fields.py:__set__:966 (3 samples, 2.27%)</title><rect x="1011.2" y="277" width="26.8" height="15.0" fill="rgb(207,108,1)" rx="2" ry="2" /> +<text text-anchor="" x="1014.21" y="287.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)" >/..</text> +</g> +<g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)"> +<title>/datas/progs/odoo/odoo/fields.py:_compute_company_dependent:638 (7 samples, 5.30%)</title><rect x="242.4" y="293" width="62.6" height="15.0" fill="rgb(227,180,38)" rx="2" ry="2" /> +<text text-anchor="" x="245.42" y="303.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)" >/datas..</text> +</g> +<g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)"> +<title>/datas/progs/odoo/addons/stock/models/product.py:_get_domain_locations_new:200 (38 samples, 28.79%)</title><rect x="617.9" y="245" width="339.7" height="15.0" fill="rgb(210,73,18)" rx="2" ry="2" /> +<text text-anchor="" x="620.88" y="255.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)" >/datas/progs/odoo/addons/stock/models/product..</text> +</g> +<g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)"> +<title>/datas/progs/odoo/odoo/modules/loading.py:load_marked_modules:242 (1 samples, 0.76%)</title><rect x="10.0" y="549" width="8.9" height="15.0" fill="rgb(242,22,23)" rx="2" ry="2" /> +<text text-anchor="" x="13.00" y="559.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)" ></text> +</g> +<g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)"> +<title>/datas/progs/odoo/odoo/sql_db.py:execute:232 (1 samples, 0.76%)</title><rect x="144.1" y="229" width="8.9" height="15.0" fill="rgb(212,182,23)" rx="2" ry="2" /> +<text text-anchor="" x="147.09" y="239.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)" ></text> +</g> +<g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)"> +<title>/datas/progs/odoo/odoo/api.py:call_kw:689 (1 samples, 0.76%)</title><rect x="1181.1" y="421" width="8.9" height="15.0" fill="rgb(243,140,33)" rx="2" ry="2" /> +<text text-anchor="" x="1184.06" y="431.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)" ></text> +</g> +<g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)"> +<title>/datas/progs/odoo/odoo/modules/registry.py:new:85 (4 samples, 3.03%)</title><rect x="10.0" y="581" width="35.8" height="15.0" fill="rgb(211,220,43)" rx="2" ry="2" /> +<text text-anchor="" x="13.00" y="591.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)" >/da..</text> +</g> +<g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)"> +<title><decorator-gen-37>:check:2 (1 samples, 0.76%)</title><rect x="340.8" y="181" width="8.9" height="15.0" fill="rgb(234,42,43)" rx="2" ry="2" /> +<text text-anchor="" x="343.76" y="191.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)" ></text> +</g> +<g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)"> +<title><frozen importlib._bootstrap>:_find_and_load:971 (1 samples, 0.76%)</title><rect x="10.0" y="373" width="8.9" height="15.0" fill="rgb(212,98,39)" rx="2" ry="2" /> +<text text-anchor="" x="13.00" y="383.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)" ></text> +</g> +<g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)"> +<title>/datas/progs/odoo/addons/web/controllers/main.py:_call_kw:916 (126 samples, 95.45%)</title><rect x="54.7" y="437" width="1126.4" height="15.0" fill="rgb(228,98,43)" rx="2" ry="2" /> +<text text-anchor="" x="57.70" y="447.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)" >/datas/progs/odoo/addons/web/controllers/main.py:_call_kw:916</text> +</g> +<g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)"> +<title>/datas/progs/odoo/odoo/fields.py:digits:1209 (7 samples, 5.30%)</title><rect x="242.4" y="229" width="62.6" height="15.0" fill="rgb(213,150,14)" rx="2" ry="2" /> +<text text-anchor="" x="245.42" y="239.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)" >/datas..</text> +</g> +<g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)"> +<title>/usr/local/lib/python3.6/socketserver.py:__init__:696 (132 samples, 100.00%)</title><rect x="10.0" y="805" width="1180.0" height="15.0" fill="rgb(245,71,43)" rx="2" ry="2" /> +<text text-anchor="" x="13.00" y="815.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)" >/usr/local/lib/python3.6/socketserver.py:__init__:696</text> +</g> +<g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)"> +<title>/datas/progs/odoo/odoo/service/model.py:wrapper:97 (127 samples, 96.21%)</title><rect x="54.7" y="517" width="1135.3" height="15.0" fill="rgb(227,56,41)" rx="2" ry="2" /> +<text text-anchor="" x="57.70" y="527.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)" >/datas/progs/odoo/odoo/service/model.py:wrapper:97</text> +</g> +<g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)"> +<title>/datas/progs/odoo/odoo/addons/base/ir/ir_http.py:_dispatch:208 (127 samples, 96.21%)</title><rect x="54.7" y="565" width="1135.3" height="15.0" fill="rgb(240,91,14)" rx="2" ry="2" /> +<text text-anchor="" x="57.70" y="575.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)" >/datas/progs/odoo/odoo/addons/base/ir/ir_http.py:_dispatch:208</text> +</g> +<g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)"> +<title>/datas/progs/odoo/odoo/http.py:__call__:1272 (132 samples, 100.00%)</title><rect x="10.0" y="661" width="1180.0" height="15.0" fill="rgb(245,139,7)" rx="2" ry="2" /> +<text text-anchor="" x="13.00" y="671.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)" >/datas/progs/odoo/odoo/http.py:__call__:1272</text> +</g> +<g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)"> +<title>/usr/local/lib/python3.6/_weakrefset.py:__iter__:60 (2 samples, 1.52%)</title><rect x="966.5" y="197" width="17.9" height="15.0" fill="rgb(248,100,48)" rx="2" ry="2" /> +<text text-anchor="" x="969.52" y="207.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)" ></text> +</g> +<g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)"> +<title><frozen importlib._bootstrap>:_find_and_load_unlocked:955 (1 samples, 0.76%)</title><rect x="10.0" y="357" width="8.9" height="15.0" fill="rgb(245,135,22)" rx="2" ry="2" /> +<text text-anchor="" x="13.00" y="367.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)" ></text> +</g> +<g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)"> +<title>/datas/progs/odoo/odoo/models.py:_read_group_raw:1918 (1 samples, 0.76%)</title><rect x="439.1" y="245" width="8.9" height="15.0" fill="rgb(207,15,53)" rx="2" ry="2" /> +<text text-anchor="" x="442.09" y="255.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)" ></text> +</g> +<g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)"> +<title>/datas/progs/odoo/odoo/models.py:filtered:4439 (38 samples, 28.79%)</title><rect x="617.9" y="229" width="339.7" height="15.0" fill="rgb(220,55,34)" rx="2" ry="2" /> +<text text-anchor="" x="620.88" y="239.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)" >/datas/progs/odoo/odoo/models.py:filtered:4439</text> +</g> +<g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)"> +<title>/datas/progs/odoo/addons/stock_account/models/product.py:do_change_standard_price:156 (1 samples, 0.76%)</title><rect x="1172.1" y="373" width="9.0" height="15.0" fill="rgb(216,167,42)" rx="2" ry="2" /> +<text text-anchor="" x="1175.12" y="383.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)" ></text> +</g> +<g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)"> +<title>/datas/progs/odoo/odoo/api.py:__new__:735 (4 samples, 3.03%)</title><rect x="1109.5" y="213" width="35.8" height="15.0" fill="rgb(237,162,42)" rx="2" ry="2" /> +<text text-anchor="" x="1112.55" y="223.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)" >/da..</text> +</g> +<g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)"> +<title>/datas/progs/odoo/odoo/service/server.py:worker_spawn:457 (132 samples, 100.00%)</title><rect x="10.0" y="901" width="1180.0" height="15.0" fill="rgb(246,66,8)" rx="2" ry="2" /> +<text text-anchor="" x="13.00" y="911.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)" >/datas/progs/odoo/odoo/service/server.py:worker_spawn:457</text> +</g> +<g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)"> +<title>/datas/progs/odoo/addons/stock/models/product.py:_compute_quantities_dict:125 (3 samples, 2.27%)</title><rect x="510.6" y="277" width="26.8" height="15.0" fill="rgb(214,173,53)" rx="2" ry="2" /> +<text text-anchor="" x="513.61" y="287.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)" >/..</text> +</g> +<g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)"> +<title>/datas/progs/odoo/odoo/models.py:_read_from_database:2597 (1 samples, 0.76%)</title><rect x="868.2" y="117" width="8.9" height="15.0" fill="rgb(250,151,5)" rx="2" ry="2" /> +<text text-anchor="" x="871.18" y="127.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)" ></text> +</g> +<g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)"> +<title>/datas/progs/odoo/addons/stock/models/product.py:_compute_quantities_dict:134 (9 samples, 6.82%)</title><rect x="537.4" y="277" width="80.5" height="15.0" fill="rgb(251,201,38)" rx="2" ry="2" /> +<text text-anchor="" x="540.42" y="287.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)" >/datas/pr..</text> +</g> +<g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)"> +<title>/datas/progs/odoo/odoo/osv/expression.py:__init__:668 (1 samples, 0.76%)</title><rect x="412.3" y="213" width="8.9" height="15.0" fill="rgb(235,59,3)" rx="2" ry="2" /> +<text text-anchor="" x="415.27" y="223.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)" ></text> +</g> +<g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)"> +<title>/datas/progs/odoo/odoo/models.py:_where_calc:3471 (1 samples, 0.76%)</title><rect x="421.2" y="229" width="9.0" height="15.0" fill="rgb(254,7,0)" rx="2" ry="2" /> +<text text-anchor="" x="424.21" y="239.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)" ></text> +</g> +<g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)"> +<title>/datas/progs/odoo/odoo/models.py:__iter__:4531 (1 samples, 0.76%)</title><rect x="903.9" y="117" width="9.0" height="15.0" fill="rgb(229,31,49)" rx="2" ry="2" /> +<text text-anchor="" x="906.94" y="127.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)" ></text> +</g> +<g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)"> +<title>/datas/progs/odoo/odoo/fields.py:cache_key:766 (2 samples, 1.52%)</title><rect x="725.2" y="85" width="17.8" height="15.0" fill="rgb(217,103,8)" rx="2" ry="2" /> +<text text-anchor="" x="728.15" y="95.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)" ></text> +</g> +<g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)"> +<title>/datas/progs/odoo/odoo/fields.py:__set__:966 (8 samples, 6.06%)</title><rect x="1038.0" y="277" width="71.5" height="15.0" fill="rgb(232,100,42)" rx="2" ry="2" /> +<text text-anchor="" x="1041.03" y="287.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)" >/datas/p..</text> +</g> +<g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)"> +<title>/datas/progs/odoo/odoo/models.py:_read_group_raw:1851 (2 samples, 1.52%)</title><rect x="313.9" y="245" width="17.9" height="15.0" fill="rgb(248,131,19)" rx="2" ry="2" /> +<text text-anchor="" x="316.94" y="255.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)" ></text> +</g> +<g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)"> +<title>/datas/progs/odoo/odoo/models.py:_prefetch_field:2565 (11 samples, 8.33%)</title><rect x="859.2" y="149" width="98.4" height="15.0" fill="rgb(205,212,45)" rx="2" ry="2" /> +<text text-anchor="" x="862.24" y="159.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)" >/datas/prog..</text> +</g> +<g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)"> +<title>/datas/progs/odoo/odoo/models.py:check_access_rights:2781 (1 samples, 0.76%)</title><rect x="340.8" y="197" width="8.9" height="15.0" fill="rgb(212,225,39)" rx="2" ry="2" /> +<text text-anchor="" x="343.76" y="207.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)" ></text> +</g> +<g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)"> +<title>/datas/progs/odoo/odoo/models.py:_generate_translated_field:3553 (1 samples, 0.76%)</title><rect x="877.1" y="53" width="9.0" height="15.0" fill="rgb(236,23,17)" rx="2" ry="2" /> +<text text-anchor="" x="880.12" y="63.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)" ></text> +</g> +<g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)"> +<title>/usr/local/lib/python3.6/_weakrefset.py:__iter__:61 (1 samples, 0.76%)</title><rect x="519.5" y="149" width="9.0" height="15.0" fill="rgb(235,84,51)" rx="2" ry="2" /> +<text text-anchor="" x="522.55" y="159.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)" ></text> +</g> +<g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)"> +<title>/usr/local/lib/python3.6/site-packages/werkzeug/wsgi.py:__call__:599 (132 samples, 100.00%)</title><rect x="10.0" y="645" width="1180.0" height="15.0" fill="rgb(233,77,24)" rx="2" ry="2" /> +<text text-anchor="" x="13.00" y="655.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)" >/usr/local/lib/python3.6/site-packages/werkzeug/wsgi.py:__call__:599</text> +</g> +<g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)"> +<title>/datas/progs/odoo/odoo/models.py:read_group:1830 (1 samples, 0.76%)</title><rect x="385.5" y="261" width="8.9" height="15.0" fill="rgb(243,195,2)" rx="2" ry="2" /> +<text text-anchor="" x="388.45" y="271.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)" ></text> +</g> +<g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)"> +<title>/datas/progs/odoo/odoo/http.py:response_wrap:512 (127 samples, 96.21%)</title><rect x="54.7" y="469" width="1135.3" height="15.0" fill="rgb(220,87,24)" rx="2" ry="2" /> +<text text-anchor="" x="57.70" y="479.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)" >/datas/progs/odoo/odoo/http.py:response_wrap:512</text> +</g> +<g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)"> +<title>/datas/progs/odoo/odoo/models.py:_browse:4224 (1 samples, 0.76%)</title><rect x="948.6" y="69" width="9.0" height="15.0" fill="rgb(254,10,50)" rx="2" ry="2" /> +<text text-anchor="" x="951.64" y="79.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)" ></text> +</g> +<g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)"> +<title><decorator-gen-112>:precision_get:2 (1 samples, 0.76%)</title><rect x="1047.0" y="213" width="8.9" height="15.0" fill="rgb(233,140,5)" rx="2" ry="2" /> +<text text-anchor="" x="1049.97" y="223.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)" ></text> +</g> +<g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)"> +<title>/datas/progs/odoo/odoo/api.py:__new__:735 (1 samples, 0.76%)</title><rect x="63.6" y="325" width="9.0" height="15.0" fill="rgb(225,19,13)" rx="2" ry="2" /> +<text text-anchor="" x="66.64" y="335.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)" ></text> +</g> +<g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)"> +<title>/datas/progs/odoo/odoo/models.py:<listcomp>:4439 (38 samples, 28.79%)</title><rect x="617.9" y="213" width="339.7" height="15.0" fill="rgb(246,165,32)" rx="2" ry="2" /> +<text text-anchor="" x="620.88" y="223.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)" >/datas/progs/odoo/odoo/models.py:<listcomp>:4..</text> +</g> +<g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)"> +<title>/datas/progs/odoo/odoo/sql_db.py:execute:239 (1 samples, 0.76%)</title><rect x="439.1" y="213" width="8.9" height="15.0" fill="rgb(210,181,30)" rx="2" ry="2" /> +<text text-anchor="" x="442.09" y="223.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)" ></text> +</g> +<g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)"> +<title>/datas/progs/odoo/addons/fetchmail/models/__init__.py:<module>:4 (1 samples, 0.76%)</title><rect x="10.0" y="293" width="8.9" height="15.0" fill="rgb(238,98,0)" rx="2" ry="2" /> +<text text-anchor="" x="13.00" y="303.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)" ></text> +</g> +<g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)"> +<title>/datas/progs/odoo/odoo/models.py:_read_group_resolve_many2one_fields:1943 (1 samples, 0.76%)</title><rect x="448.0" y="229" width="9.0" height="15.0" fill="rgb(240,192,38)" rx="2" ry="2" /> +<text text-anchor="" x="451.03" y="239.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)" ></text> +</g> +<g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)"> +<title>/datas/progs/odoo/odoo/models.py:_read_group_raw:1924 (5 samples, 3.79%)</title><rect x="340.8" y="245" width="44.7" height="15.0" fill="rgb(253,29,13)" rx="2" ry="2" /> +<text text-anchor="" x="343.76" y="255.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)" >/dat..</text> +</g> +<g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)"> +<title>/datas/progs/odoo/odoo/api.py:__call__:789 (4 samples, 3.03%)</title><rect x="349.7" y="181" width="35.8" height="15.0" fill="rgb(215,214,50)" rx="2" ry="2" /> +<text text-anchor="" x="352.70" y="191.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)" >/da..</text> +</g> +<g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)"> +<title>/usr/local/lib/python3.6/_weakrefset.py:__enter__:24 (1 samples, 0.76%)</title><rect x="188.8" y="165" width="8.9" height="15.0" fill="rgb(223,181,36)" rx="2" ry="2" /> +<text text-anchor="" x="191.79" y="175.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)" ></text> +</g> +<g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)"> +<title>/datas/progs/odoo/addons/web_editor/models/ir_http.py:_dispatch:21 (128 samples, 96.97%)</title><rect x="45.8" y="597" width="1144.2" height="15.0" fill="rgb(219,202,34)" rx="2" ry="2" /> +<text text-anchor="" x="48.76" y="607.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)" >/datas/progs/odoo/addons/web_editor/models/ir_http.py:_dispatch:21</text> +</g> +<g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)"> +<title>/datas/progs/odoo/odoo/sql_db.py:execute:232 (1 samples, 0.76%)</title><rect x="886.1" y="85" width="8.9" height="15.0" fill="rgb(222,118,34)" rx="2" ry="2" /> +<text text-anchor="" x="889.06" y="95.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)" ></text> +</g> +<g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)"> +<title>/datas/progs/odoo/odoo/models.py:_in_cache_without:4684 (1 samples, 0.76%)</title><rect x="135.2" y="325" width="8.9" height="15.0" fill="rgb(246,20,14)" rx="2" ry="2" /> +<text text-anchor="" x="138.15" y="335.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)" ></text> +</g> +<g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)"> +<title>/datas/progs/odoo/odoo/fields.py:_setup_attrs:446 (1 samples, 0.76%)</title><rect x="27.9" y="485" width="8.9" height="15.0" fill="rgb(230,119,19)" rx="2" ry="2" /> +<text text-anchor="" x="30.88" y="495.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)" ></text> +</g> +<g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)"> +<title>/datas/progs/odoo/addons/http_routing/models/ir_http.py:_dispatch:325 (1 samples, 0.76%)</title><rect x="45.8" y="581" width="8.9" height="15.0" fill="rgb(244,36,3)" rx="2" ry="2" /> +<text text-anchor="" x="48.76" y="591.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)" ></text> +</g> +<g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)"> +<title>/usr/local/lib/python3.6/enum.py:__call__:291 (1 samples, 0.76%)</title><rect x="45.8" y="373" width="8.9" height="15.0" fill="rgb(220,104,4)" rx="2" ry="2" /> +<text text-anchor="" x="48.76" y="383.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)" ></text> +</g> +<g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)"> +<title>/datas/progs/odoo/odoo/osv/query.py:_get_alias_mapping:75 (1 samples, 0.76%)</title><rect x="430.2" y="213" width="8.9" height="15.0" fill="rgb(251,78,10)" rx="2" ry="2" /> +<text text-anchor="" x="433.15" y="223.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)" ></text> +</g> +<g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)"> +<title>/datas/progs/odoo/odoo/addons/base/res/res_users.py:_get_company:217 (3 samples, 2.27%)</title><rect x="162.0" y="229" width="26.8" height="15.0" fill="rgb(216,162,1)" rx="2" ry="2" /> +<text text-anchor="" x="164.97" y="239.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)" >/..</text> +</g> +<g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)"> +<title>/datas/progs/odoo/odoo/service/wsgi_server.py:application_unproxied:154 (132 samples, 100.00%)</title><rect x="10.0" y="693" width="1180.0" height="15.0" fill="rgb(218,88,9)" rx="2" ry="2" /> +<text text-anchor="" x="13.00" y="703.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)" >/datas/progs/odoo/odoo/service/wsgi_server.py:application_unproxied:154</text> +</g> +<g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)"> +<title>/datas/progs/odoo/odoo/api.py:__new__:736 (5 samples, 3.79%)</title><rect x="251.4" y="197" width="44.7" height="15.0" fill="rgb(247,46,11)" rx="2" ry="2" /> +<text text-anchor="" x="254.36" y="207.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)" >/dat..</text> +</g> +<g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)"> +<title>/usr/local/lib/python3.6/inspect.py:getmembers:333 (1 samples, 0.76%)</title><rect x="18.9" y="517" width="9.0" height="15.0" fill="rgb(228,188,31)" rx="2" ry="2" /> +<text text-anchor="" x="21.94" y="527.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)" ></text> +</g> +<g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)"> +<title>/datas/progs/odoo/odoo/http.py:dispatch:1473 (128 samples, 96.97%)</title><rect x="45.8" y="629" width="1144.2" height="15.0" fill="rgb(237,140,21)" rx="2" ry="2" /> +<text text-anchor="" x="48.76" y="639.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)" >/datas/progs/odoo/odoo/http.py:dispatch:1473</text> +</g> +<g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)"> +<title>/datas/progs/odoo/odoo/models.py:_add_field:284 (1 samples, 0.76%)</title><rect x="36.8" y="501" width="9.0" height="15.0" fill="rgb(243,42,25)" rx="2" ry="2" /> +<text text-anchor="" x="39.82" y="511.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)" ></text> +</g> +<g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)"> +<title>/datas/progs/odoo/odoo/osv/expression.py:distribute_not:302 (1 samples, 0.76%)</title><rect x="403.3" y="197" width="9.0" height="15.0" fill="rgb(233,211,21)" rx="2" ry="2" /> +<text text-anchor="" x="406.33" y="207.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)" ></text> +</g> +<g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)"> +<title>/datas/progs/odoo/odoo/models.py:_browse:4224 (1 samples, 0.76%)</title><rect x="939.7" y="53" width="8.9" height="15.0" fill="rgb(248,144,42)" rx="2" ry="2" /> +<text text-anchor="" x="942.70" y="63.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)" ></text> +</g> +<g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)"> +<title>/datas/progs/odoo/odoo/api.py:__new__:747 (1 samples, 0.76%)</title><rect x="1002.3" y="213" width="8.9" height="15.0" fill="rgb(207,176,30)" rx="2" ry="2" /> +<text text-anchor="" x="1005.27" y="223.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)" ></text> +</g> +<g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)"> +<title>/datas/progs/odoo/odoo/osv/expression.py:to_sql:1271 (1 samples, 0.76%)</title><rect x="322.9" y="213" width="8.9" height="15.0" fill="rgb(244,38,34)" rx="2" ry="2" /> +<text text-anchor="" x="325.88" y="223.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)" ></text> +</g> +<g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)"> +<title><string>:change_digit:10 (1 samples, 0.76%)</title><rect x="1047.0" y="229" width="8.9" height="15.0" fill="rgb(211,92,35)" rx="2" ry="2" /> +<text text-anchor="" x="1049.97" y="239.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)" ></text> +</g> +<g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)"> +<title>/datas/progs/odoo/addons/http_routing/models/ir_http.py:_dispatch:397 (127 samples, 96.21%)</title><rect x="54.7" y="581" width="1135.3" height="15.0" fill="rgb(251,32,14)" rx="2" ry="2" /> +<text text-anchor="" x="57.70" y="591.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)" >/datas/progs/odoo/addons/http_routing/models/ir_http.py:_dispatch:397</text> +</g> +<g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)"> +<title>/datas/progs/odoo/odoo/sql_db.py:wrapper:155 (1 samples, 0.76%)</title><rect x="439.1" y="229" width="8.9" height="15.0" fill="rgb(224,179,12)" rx="2" ry="2" /> +<text text-anchor="" x="442.09" y="239.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)" ></text> +</g> +<g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)"> +<title>/datas/progs/odoo/odoo/models.py:_setup_base:2311 (1 samples, 0.76%)</title><rect x="27.9" y="533" width="8.9" height="15.0" fill="rgb(220,162,22)" rx="2" ry="2" /> +<text text-anchor="" x="30.88" y="543.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)" ></text> +</g> +<g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)"> +<title>/datas/progs/odoo/odoo/fields.py:__get__:2523 (1 samples, 0.76%)</title><rect x="54.7" y="357" width="8.9" height="15.0" fill="rgb(243,50,9)" rx="2" ry="2" /> +<text text-anchor="" x="57.70" y="367.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)" ></text> +</g> +<g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)"> +<title>/datas/progs/odoo/odoo/modules/registry.py:__new__:61 (4 samples, 3.03%)</title><rect x="10.0" y="597" width="35.8" height="15.0" fill="rgb(244,97,2)" rx="2" ry="2" /> +<text text-anchor="" x="13.00" y="607.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)" >/da..</text> +</g> +<g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)"> +<title><frozen importlib._bootstrap>:_find_and_load_unlocked:955 (1 samples, 0.76%)</title><rect x="10.0" y="485" width="8.9" height="15.0" fill="rgb(234,52,39)" rx="2" ry="2" /> +<text text-anchor="" x="13.00" y="495.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)" ></text> +</g> +<g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)"> +<title>/datas/progs/odoo/odoo/fields.py:compute_value:1015 (96 samples, 72.73%)</title><rect x="313.9" y="325" width="858.2" height="15.0" fill="rgb(214,100,2)" rx="2" ry="2" /> +<text text-anchor="" x="316.94" y="335.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)" >/datas/progs/odoo/odoo/fields.py:compute_value:1015</text> +</g> +<g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)"> +<title>/datas/progs/odoo/odoo/fields.py:cache_key:765 (2 samples, 1.52%)</title><rect x="707.3" y="85" width="17.9" height="15.0" fill="rgb(249,146,23)" rx="2" ry="2" /> +<text text-anchor="" x="710.27" y="95.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)" ></text> +</g> +<g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)"> +<title>/datas/progs/odoo/odoo/fields.py:convert_to_cache:1230 (7 samples, 5.30%)</title><rect x="242.4" y="245" width="62.6" height="15.0" fill="rgb(213,124,35)" rx="2" ry="2" /> +<text text-anchor="" x="245.42" y="255.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)" >/datas..</text> +</g> +<g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)"> +<title>/datas/progs/odoo/odoo/sql_db.py:wrapper:155 (1 samples, 0.76%)</title><rect x="886.1" y="101" width="8.9" height="15.0" fill="rgb(247,92,39)" rx="2" ry="2" /> +<text text-anchor="" x="889.06" y="111.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)" ></text> +</g> +<g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)"> +<title>/datas/progs/odoo/odoo/models.py:_browse:4222 (2 samples, 1.52%)</title><rect x="796.7" y="69" width="17.8" height="15.0" fill="rgb(254,57,6)" rx="2" ry="2" /> +<text text-anchor="" x="799.67" y="79.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)" ></text> +</g> +<g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)"> +<title>/usr/local/lib/python3.6/_weakrefset.py:__iter__:61 (1 samples, 0.76%)</title><rect x="63.6" y="309" width="9.0" height="15.0" fill="rgb(228,207,33)" rx="2" ry="2" /> +<text text-anchor="" x="66.64" y="319.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)" ></text> +</g> +<g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)"> +<title>/datas/progs/odoo/odoo/models.py:_read_group_resolve_many2one_fields:1944 (5 samples, 3.79%)</title><rect x="340.8" y="229" width="44.7" height="15.0" fill="rgb(235,221,33)" rx="2" ry="2" /> +<text text-anchor="" x="343.76" y="239.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)" >/dat..</text> +</g> +<g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)"> +<title>/datas/progs/odoo/odoo/models.py:sudo:4310 (4 samples, 3.03%)</title><rect x="349.7" y="197" width="35.8" height="15.0" fill="rgb(233,1,28)" rx="2" ry="2" /> +<text text-anchor="" x="352.70" y="207.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)" >/da..</text> +</g> +<g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)"> +<title><frozen importlib._bootstrap>:_call_with_frames_removed:219 (1 samples, 0.76%)</title><rect x="10.0" y="309" width="8.9" height="15.0" fill="rgb(237,176,38)" rx="2" ry="2" /> +<text text-anchor="" x="13.00" y="319.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)" ></text> +</g> +<g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)"> +<title>/datas/progs/odoo/odoo/osv/expression.py:__leaf_to_sql:1197 (1 samples, 0.76%)</title><rect x="322.9" y="197" width="8.9" height="15.0" fill="rgb(239,84,12)" rx="2" ry="2" /> +<text text-anchor="" x="325.88" y="207.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)" ></text> +</g> +<g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)"> +<title>/datas/progs/odoo/odoo/osv/expression.py:to_sql:1271 (1 samples, 0.76%)</title><rect x="421.2" y="213" width="9.0" height="15.0" fill="rgb(238,68,47)" rx="2" ry="2" /> +<text text-anchor="" x="424.21" y="223.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)" ></text> +</g> +<g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)"> +<title>/datas/progs/odoo/odoo/cli/command.py:main:60 (132 samples, 100.00%)</title><rect x="10.0" y="997" width="1180.0" height="15.0" fill="rgb(244,180,22)" rx="2" ry="2" /> +<text text-anchor="" x="13.00" y="1007.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)" >/datas/progs/odoo/odoo/cli/command.py:main:60</text> +</g> +<g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)"> +<title>/datas/progs/odoo/odoo/models.py:read:2516 (1 samples, 0.76%)</title><rect x="903.9" y="133" width="9.0" height="15.0" fill="rgb(227,90,38)" rx="2" ry="2" /> +<text text-anchor="" x="906.94" y="143.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)" ></text> +</g> +<g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)"> +<title>/usr/local/lib/python3.6/re.py:compile:233 (1 samples, 0.76%)</title><rect x="45.8" y="469" width="8.9" height="15.0" fill="rgb(231,154,32)" rx="2" ry="2" /> +<text text-anchor="" x="48.76" y="479.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)" ></text> +</g> +<g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)"> +<title>/datas/progs/odoo/addons/stock/models/product.py:_compute_quantities:83 (6 samples, 4.55%)</title><rect x="957.6" y="293" width="53.6" height="15.0" fill="rgb(243,132,16)" rx="2" ry="2" /> +<text text-anchor="" x="960.58" y="303.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)" >/data..</text> +</g> +<g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)"> +<title>/datas/progs/odoo/addons/stock_account/models/product.py:do_change_standard_price:125 (9 samples, 6.82%)</title><rect x="54.7" y="373" width="80.5" height="15.0" fill="rgb(227,17,6)" rx="2" ry="2" /> +<text text-anchor="" x="57.70" y="383.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)" >/datas/pr..</text> +</g> +<g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)"> +<title><frozen importlib._bootstrap>:_find_and_load:971 (1 samples, 0.76%)</title><rect x="10.0" y="501" width="8.9" height="15.0" fill="rgb(250,47,11)" rx="2" ry="2" /> +<text text-anchor="" x="13.00" y="511.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)" ></text> +</g> +<g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)"> +<title>/datas/progs/odoo/odoo/models.py:create:3278 (1 samples, 0.76%)</title><rect x="1172.1" y="341" width="9.0" height="15.0" fill="rgb(240,145,32)" rx="2" ry="2" /> +<text text-anchor="" x="1175.12" y="351.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)" ></text> +</g> +<g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)"> +<title>/datas/progs/odoo/odoo/sql_db.py:dbname:477 (1 samples, 0.76%)</title><rect x="993.3" y="197" width="9.0" height="15.0" fill="rgb(230,214,23)" rx="2" ry="2" /> +<text text-anchor="" x="996.33" y="207.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)" ></text> +</g> +<g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)"> +<title>/datas/progs/odoo/addons/product/models/product.py:name_get:376 (6 samples, 4.55%)</title><rect x="457.0" y="213" width="53.6" height="15.0" fill="rgb(213,191,31)" rx="2" ry="2" /> +<text text-anchor="" x="459.97" y="223.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)" >/data..</text> +</g> +<g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)"> +<title>/datas/progs/odoo/odoo/api.py:__call__:789 (3 samples, 2.27%)</title><rect x="510.6" y="181" width="26.8" height="15.0" fill="rgb(253,165,0)" rx="2" ry="2" /> +<text text-anchor="" x="513.61" y="191.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)" >/..</text> +</g> +<g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)"> +<title>/datas/progs/odoo/odoo/http.py:__call__:927 (127 samples, 96.21%)</title><rect x="54.7" y="485" width="1135.3" height="15.0" fill="rgb(240,160,35)" rx="2" ry="2" /> +<text text-anchor="" x="57.70" y="495.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)" >/datas/progs/odoo/odoo/http.py:__call__:927</text> +</g> +<g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)"> +<title>/datas/progs/odoo/odoo/fields.py:__get__:948 (1 samples, 0.76%)</title><rect x="1181.1" y="277" width="8.9" height="15.0" fill="rgb(207,72,41)" rx="2" ry="2" /> +<text text-anchor="" x="1184.06" y="287.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)" ></text> +</g> +<g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)"> +<title>/datas/progs/odoo/odoo/models.py:_add_magic_fields:330 (1 samples, 0.76%)</title><rect x="36.8" y="517" width="9.0" height="15.0" fill="rgb(219,128,16)" rx="2" ry="2" /> +<text text-anchor="" x="39.82" y="527.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)" ></text> +</g> +<g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)"> +<title>/datas/progs/odoo/odoo/modules/registry.py:<dictcomp>:201 (1 samples, 0.76%)</title><rect x="1172.1" y="245" width="9.0" height="15.0" fill="rgb(254,15,40)" rx="2" ry="2" /> +<text text-anchor="" x="1175.12" y="255.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)" ></text> +</g> +<g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)"> +<title>/datas/progs/odoo/odoo/fields.py:_compute_value:1006 (1 samples, 0.76%)</title><rect x="1181.1" y="309" width="8.9" height="15.0" fill="rgb(232,139,54)" rx="2" ry="2" /> +<text text-anchor="" x="1184.06" y="319.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)" ></text> +</g> +<g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)"> +<title>/datas/progs/odoo/odoo/models.py:read_group:1828 (8 samples, 6.06%)</title><rect x="313.9" y="261" width="71.6" height="15.0" fill="rgb(251,205,7)" rx="2" ry="2" /> +<text text-anchor="" x="316.94" y="271.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)" >/datas/p..</text> +</g> +<g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)"> +<title>/usr/local/lib/python3.6/site-packages/werkzeug/routing.py:bind:681 (1 samples, 0.76%)</title><rect x="45.8" y="501" width="8.9" height="15.0" fill="rgb(230,71,28)" rx="2" ry="2" /> +<text text-anchor="" x="48.76" y="511.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)" ></text> +</g> +<g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)"> +<title>/datas/progs/odoo/odoo/tools/misc.py:__init__:990 (1 samples, 0.76%)</title><rect x="331.8" y="229" width="9.0" height="15.0" fill="rgb(237,63,17)" rx="2" ry="2" /> +<text text-anchor="" x="334.82" y="239.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)" ></text> +</g> +<g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)"> +<title>/datas/progs/odoo/odoo/fields.py:determine_value:1057 (1 samples, 0.76%)</title><rect x="135.2" y="341" width="8.9" height="15.0" fill="rgb(221,138,8)" rx="2" ry="2" /> +<text text-anchor="" x="138.15" y="351.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)" ></text> +</g> +<g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)"> +<title>/datas/progs/odoo/odoo/addons/base/ir/ir_http.py:routing_map:238 (1 samples, 0.76%)</title><rect x="45.8" y="549" width="8.9" height="15.0" fill="rgb(228,12,11)" rx="2" ry="2" /> +<text text-anchor="" x="48.76" y="559.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)" ></text> +</g> +<g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)"> +<title>/usr/local/lib/python3.6/site-packages/werkzeug/routing.py:compile:742 (1 samples, 0.76%)</title><rect x="45.8" y="485" width="8.9" height="15.0" fill="rgb(235,72,27)" rx="2" ry="2" /> +<text text-anchor="" x="48.76" y="495.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)" ></text> +</g> +<g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)"> +<title>/datas/progs/odoo/odoo/http.py:checked_call:332 (127 samples, 96.21%)</title><rect x="54.7" y="501" width="1135.3" height="15.0" fill="rgb(244,205,24)" rx="2" ry="2" /> +<text text-anchor="" x="57.70" y="511.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)" >/datas/progs/odoo/odoo/http.py:checked_call:332</text> +</g> +<g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)"> +<title>/datas/progs/odoo/odoo/osv/expression.py:to_sql:1280 (1 samples, 0.76%)</title><rect x="233.5" y="213" width="8.9" height="15.0" fill="rgb(250,60,17)" rx="2" ry="2" /> +<text text-anchor="" x="236.48" y="223.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)" ></text> +</g> +<g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)"> +<title>/datas/progs/odoo/addons/web/controllers/main.py:_call_kw:916 (1 samples, 0.76%)</title><rect x="1181.1" y="437" width="8.9" height="15.0" fill="rgb(208,166,8)" rx="2" ry="2" /> +<text text-anchor="" x="1184.06" y="447.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)" ></text> +</g> +<g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)"> +<title>/datas/progs/odoo/addons/product/models/product.py:name_get:376 (4 samples, 3.03%)</title><rect x="349.7" y="213" width="35.8" height="15.0" fill="rgb(219,217,54)" rx="2" ry="2" /> +<text text-anchor="" x="352.70" y="223.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)" >/da..</text> +</g> +<g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)"> +<title>/datas/progs/odoo/odoo/models.py:_inherits_join_calc:1973 (1 samples, 0.76%)</title><rect x="1181.1" y="165" width="8.9" height="15.0" fill="rgb(250,176,30)" rx="2" ry="2" /> +<text text-anchor="" x="1184.06" y="175.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)" ></text> +</g> +<g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)"> +<title>/datas/progs/odoo/odoo/models.py:_setup_base:2308 (1 samples, 0.76%)</title><rect x="18.9" y="533" width="9.0" height="15.0" fill="rgb(215,207,28)" rx="2" ry="2" /> +<text text-anchor="" x="21.94" y="543.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)" ></text> +</g> +<g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)"> +<title>/datas/progs/odoo/odoo/fields.py:__get__:948 (19 samples, 14.39%)</title><rect x="135.2" y="357" width="169.8" height="15.0" fill="rgb(250,38,25)" rx="2" ry="2" /> +<text text-anchor="" x="138.15" y="367.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)" >/datas/progs/odoo/odo..</text> +</g> +<g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)"> +<title>/datas/progs/odoo/odoo/modules/module.py:load_openerp_module:368 (1 samples, 0.76%)</title><rect x="10.0" y="517" width="8.9" height="15.0" fill="rgb(232,156,22)" rx="2" ry="2" /> +<text text-anchor="" x="13.00" y="527.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)" ></text> +</g> +<g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)"> +<title>/datas/progs/odoo/odoo/api.py:call_kw:689 (126 samples, 95.45%)</title><rect x="54.7" y="421" width="1126.4" height="15.0" fill="rgb(247,169,22)" rx="2" ry="2" /> +<text text-anchor="" x="57.70" y="431.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)" >/datas/progs/odoo/odoo/api.py:call_kw:689</text> +</g> +<g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)"> +<title>/datas/progs/odoo/odoo/fields.py:digits:1209 (6 samples, 4.55%)</title><rect x="957.6" y="245" width="53.6" height="15.0" fill="rgb(222,3,33)" rx="2" ry="2" /> +<text text-anchor="" x="960.58" y="255.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)" >/data..</text> +</g> +<g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)"> +<title>/datas/progs/odoo/odoo/models.py:_where_calc:3471 (1 samples, 0.76%)</title><rect x="322.9" y="229" width="8.9" height="15.0" fill="rgb(254,193,48)" rx="2" ry="2" /> +<text text-anchor="" x="325.88" y="239.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)" ></text> +</g> +<g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)"> +<title>/datas/progs/odoo/odoo/http.py:__call__:1298 (132 samples, 100.00%)</title><rect x="10.0" y="677" width="1180.0" height="15.0" fill="rgb(232,29,27)" rx="2" ry="2" /> +<text text-anchor="" x="13.00" y="687.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)" >/datas/progs/odoo/odoo/http.py:__call__:1298</text> +</g> +<g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)"> +<title>/datas/progs/odoo/addons/account/models/account_move.py:create:126 (1 samples, 0.76%)</title><rect x="1172.1" y="357" width="9.0" height="15.0" fill="rgb(243,7,37)" rx="2" ry="2" /> +<text text-anchor="" x="1175.12" y="367.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)" ></text> +</g> +<g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)"> +<title>/datas/progs/odoo/odoo/api.py:__new__:735 (4 samples, 3.03%)</title><rect x="457.0" y="165" width="35.7" height="15.0" fill="rgb(224,172,45)" rx="2" ry="2" /> +<text text-anchor="" x="459.97" y="175.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)" >/da..</text> +</g> +<g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)"> +<title>/datas/progs/odoo/odoo/osv/expression.py:__init__:665 (1 samples, 0.76%)</title><rect x="403.3" y="213" width="9.0" height="15.0" fill="rgb(238,229,35)" rx="2" ry="2" /> +<text text-anchor="" x="406.33" y="223.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)" ></text> +</g> +<g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)"> +<title>/datas/progs/odoo/odoo/tools/cache.py:lookup:84 (1 samples, 0.76%)</title><rect x="340.8" y="165" width="8.9" height="15.0" fill="rgb(232,53,14)" rx="2" ry="2" /> +<text text-anchor="" x="343.76" y="175.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)" ></text> +</g> +<g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)"> +<title>/datas/progs/odoo/odoo/api.py:__new__:736 (2 samples, 1.52%)</title><rect x="492.7" y="165" width="17.9" height="15.0" fill="rgb(207,83,49)" rx="2" ry="2" /> +<text text-anchor="" x="495.73" y="175.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)" ></text> +</g> +<g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)"> +<title>/usr/local/lib/python3.6/socketserver.py:finish_request:361 (132 samples, 100.00%)</title><rect x="10.0" y="821" width="1180.0" height="15.0" fill="rgb(246,11,27)" rx="2" ry="2" /> +<text text-anchor="" x="13.00" y="831.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)" >/usr/local/lib/python3.6/socketserver.py:finish_request:361</text> +</g> +<g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)"> +<title>/datas/progs/odoo/odoo/osv/query.py:add_join:136 (1 samples, 0.76%)</title><rect x="877.1" y="37" width="9.0" height="15.0" fill="rgb(239,108,47)" rx="2" ry="2" /> +<text text-anchor="" x="880.12" y="47.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)" ></text> +</g> +<g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)"> +<title>/datas/progs/odoo/odoo/fields.py:set_all_attrs:360 (1 samples, 0.76%)</title><rect x="27.9" y="469" width="8.9" height="15.0" fill="rgb(207,219,5)" rx="2" ry="2" /> +<text text-anchor="" x="30.88" y="479.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)" ></text> +</g> +<g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)"> +<title>/datas/progs/odoo/odoo/osv/expression.py:__init__:660 (1 samples, 0.76%)</title><rect x="394.4" y="213" width="8.9" height="15.0" fill="rgb(245,214,34)" rx="2" ry="2" /> +<text text-anchor="" x="397.39" y="223.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)" ></text> +</g> +<g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)"> +<title>/usr/local/lib/python3.6/re.py:_compile:301 (1 samples, 0.76%)</title><rect x="45.8" y="453" width="8.9" height="15.0" fill="rgb(254,19,1)" rx="2" ry="2" /> +<text text-anchor="" x="48.76" y="463.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)" ></text> +</g> +<g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)"> +<title>/datas/progs/odoo/odoo/fields.py:_compute_value:1008 (18 samples, 13.64%)</title><rect x="144.1" y="309" width="160.9" height="15.0" fill="rgb(219,173,41)" rx="2" ry="2" /> +<text text-anchor="" x="147.09" y="319.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)" >/datas/progs/odoo/od..</text> +</g> +<g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)"> +<title>/datas/progs/odoo/odoo/fields.py:digits:1209 (7 samples, 5.30%)</title><rect x="1109.5" y="245" width="62.6" height="15.0" fill="rgb(235,174,48)" rx="2" ry="2" /> +<text text-anchor="" x="1112.55" y="255.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)" >/datas..</text> +</g> +<g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)"> +<title>/datas/progs/odoo/odoo/api.py:get:959 (1 samples, 0.76%)</title><rect x="921.8" y="85" width="9.0" height="15.0" fill="rgb(250,173,3)" rx="2" ry="2" /> +<text text-anchor="" x="924.82" y="95.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)" ></text> +</g> +<g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)"> +<title>/datas/progs/odoo/odoo/cli/server.py:run:175 (132 samples, 100.00%)</title><rect x="10.0" y="981" width="1180.0" height="15.0" fill="rgb(207,129,54)" rx="2" ry="2" /> +<text text-anchor="" x="13.00" y="991.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)" >/datas/progs/odoo/odoo/cli/server.py:run:175</text> +</g> +<g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)"> +<title>/datas/progs/odoo/odoo/fields.py:determine_value:1059 (18 samples, 13.64%)</title><rect x="144.1" y="341" width="160.9" height="15.0" fill="rgb(228,14,25)" rx="2" ry="2" /> +<text text-anchor="" x="147.09" y="351.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)" >/datas/progs/odoo/od..</text> +</g> +<g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)"> +<title>/datas/progs/odoo/odoo/models.py:_read_from_database:2646 (1 samples, 0.76%)</title><rect x="895.0" y="117" width="8.9" height="15.0" fill="rgb(229,65,17)" rx="2" ry="2" /> +<text text-anchor="" x="898.00" y="127.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)" ></text> +</g> +<g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)"> +<title>/datas/progs/odoo/odoo/models.py:search:1407 (6 samples, 4.55%)</title><rect x="188.8" y="261" width="53.6" height="15.0" fill="rgb(248,98,19)" rx="2" ry="2" /> +<text text-anchor="" x="191.79" y="271.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)" >/data..</text> +</g> +<g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)"> +<title>/datas/progs/odoo/addons/stock_account/wizard/stock_change_standard_price.py:change_price:43 (126 samples, 95.45%)</title><rect x="54.7" y="389" width="1126.4" height="15.0" fill="rgb(228,32,34)" rx="2" ry="2" /> +<text text-anchor="" x="57.70" y="399.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)" >/datas/progs/odoo/addons/stock_account/wizard/stock_change_standard_price.py:change_price:43</text> +</g> +<g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)"> +<title>/datas/progs/odoo/odoo/models.py:compute_concurrency_field_with_access:356 (1 samples, 0.76%)</title><rect x="1181.1" y="293" width="8.9" height="15.0" fill="rgb(206,53,50)" rx="2" ry="2" /> +<text text-anchor="" x="1184.06" y="303.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)" ></text> +</g> +<g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)"> +<title>/usr/local/lib/python3.6/_weakrefset.py:__iter__:60 (3 samples, 2.27%)</title><rect x="457.0" y="149" width="26.8" height="15.0" fill="rgb(238,65,26)" rx="2" ry="2" /> +<text text-anchor="" x="459.97" y="159.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)" >/..</text> +</g> +<g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)"> +<title>/datas/progs/odoo/odoo/models.py:_search:3674 (2 samples, 1.52%)</title><rect x="224.5" y="245" width="17.9" height="15.0" fill="rgb(206,229,2)" rx="2" ry="2" /> +<text text-anchor="" x="227.55" y="255.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)" ></text> +</g> +<g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)"> +<title>/datas/progs/odoo/odoo/models.py:read_group:1828 (3 samples, 2.27%)</title><rect x="510.6" y="261" width="26.8" height="15.0" fill="rgb(251,17,11)" rx="2" ry="2" /> +<text text-anchor="" x="513.61" y="271.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)" >/..</text> +</g> +<g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)"> +<title>/usr/local/lib/python3.6/_weakrefset.py:add:84 (1 samples, 0.76%)</title><rect x="1002.3" y="181" width="8.9" height="15.0" fill="rgb(249,132,18)" rx="2" ry="2" /> +<text text-anchor="" x="1005.27" y="191.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)" ></text> +</g> +<g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)"> +<title>/datas/progs/odoo/odoo/osv/expression.py:get_unaccent_wrapper:455 (1 samples, 0.76%)</title><rect x="313.9" y="197" width="9.0" height="15.0" fill="rgb(246,20,51)" rx="2" ry="2" /> +<text text-anchor="" x="316.94" y="207.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)" ></text> +</g> +<g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)"> +<title>/datas/progs/odoo/odoo/api.py:__new__:735 (3 samples, 2.27%)</title><rect x="349.7" y="165" width="26.8" height="15.0" fill="rgb(233,34,9)" rx="2" ry="2" /> +<text text-anchor="" x="352.70" y="175.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)" >/..</text> +</g> +<g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)"> +<title>/datas/progs/odoo/odoo/fields.py:__set__:966 (7 samples, 5.30%)</title><rect x="1109.5" y="277" width="62.6" height="15.0" fill="rgb(249,102,21)" rx="2" ry="2" /> +<text text-anchor="" x="1112.55" y="287.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)" >/datas..</text> +</g> +<g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)"> +<title>/datas/progs/odoo/odoo/api.py:__new__:735 (1 samples, 0.76%)</title><rect x="1055.9" y="213" width="8.9" height="15.0" fill="rgb(231,218,17)" rx="2" ry="2" /> +<text text-anchor="" x="1058.91" y="223.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)" ></text> +</g> +<g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)"> +<title>/datas/progs/odoo/odoo/api.py:__call__:789 (3 samples, 2.27%)</title><rect x="162.0" y="197" width="26.8" height="15.0" fill="rgb(230,152,24)" rx="2" ry="2" /> +<text text-anchor="" x="164.97" y="207.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)" >/..</text> +</g> +<g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)"> +<title>/datas/progs/odoo/odoo/tools/func.py:wrapper:68 (1 samples, 0.76%)</title><rect x="340.8" y="149" width="8.9" height="15.0" fill="rgb(246,133,16)" rx="2" ry="2" /> +<text text-anchor="" x="343.76" y="159.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)" ></text> +</g> +<g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)"> +<title>/datas/progs/odoo/odoo/service/server.py:start:991 (132 samples, 100.00%)</title><rect x="10.0" y="949" width="1180.0" height="15.0" fill="rgb(235,78,16)" rx="2" ry="2" /> +<text text-anchor="" x="13.00" y="959.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)" >/datas/progs/odoo/odoo/service/server.py:start:991</text> +</g> +<g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)"> +<title>/datas/progs/odoo/odoo/modules/registry.py:field_sequence:200 (1 samples, 0.76%)</title><rect x="1172.1" y="261" width="9.0" height="15.0" fill="rgb(234,89,47)" rx="2" ry="2" /> +<text text-anchor="" x="1175.12" y="271.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)" ></text> +</g> +<g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)"> +<title>/datas/progs/odoo/odoo/tools/func.py:wrapper:68 (1 samples, 0.76%)</title><rect x="340.8" y="117" width="8.9" height="15.0" fill="rgb(217,125,27)" rx="2" ry="2" /> +<text text-anchor="" x="343.76" y="127.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)" ></text> +</g> +<g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)"> +<title><string>:change_digit:9 (3 samples, 2.27%)</title><rect x="1011.2" y="229" width="26.8" height="15.0" fill="rgb(212,176,50)" rx="2" ry="2" /> +<text text-anchor="" x="1014.21" y="239.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)" ><..</text> +</g> +<g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)"> +<title>/datas/progs/odoo/odoo/models.py:sudo:4310 (6 samples, 4.55%)</title><rect x="457.0" y="197" width="53.6" height="15.0" fill="rgb(219,94,44)" rx="2" ry="2" /> +<text text-anchor="" x="459.97" y="207.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)" >/data..</text> +</g> +<g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)"> +<title>/datas/progs/odoo/odoo/api.py:__new__:736 (3 samples, 2.27%)</title><rect x="1145.3" y="213" width="26.8" height="15.0" fill="rgb(218,152,13)" rx="2" ry="2" /> +<text text-anchor="" x="1148.30" y="223.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)" >/..</text> +</g> +<g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)"> +<title>/datas/progs/odoo/odoo/models.py:_read_group_raw:1851 (4 samples, 3.03%)</title><rect x="394.4" y="245" width="35.8" height="15.0" fill="rgb(225,104,39)" rx="2" ry="2" /> +<text text-anchor="" x="397.39" y="255.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)" >/da..</text> +</g> +<g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)"> +<title>/datas/progs/odoo/odoo/models.py:read:2520 (1 samples, 0.76%)</title><rect x="1181.1" y="389" width="8.9" height="15.0" fill="rgb(210,0,34)" rx="2" ry="2" /> +<text text-anchor="" x="1184.06" y="399.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)" ></text> +</g> +<g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)"> +<title>/datas/progs/odoo/addons/product/models/product.py:name_get:376 (3 samples, 2.27%)</title><rect x="510.6" y="213" width="26.8" height="15.0" fill="rgb(220,43,34)" rx="2" ry="2" /> +<text text-anchor="" x="513.61" y="223.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)" >/..</text> +</g> +<g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)"> +<title><string>:<module>:4 (1 samples, 0.76%)</title><rect x="10.0" y="421" width="8.9" height="15.0" fill="rgb(247,108,31)" rx="2" ry="2" /> +<text text-anchor="" x="13.00" y="431.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)" ></text> +</g> +<g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)"> +<title>/usr/local/lib/python3.6/socketserver.py:process_request:348 (132 samples, 100.00%)</title><rect x="10.0" y="837" width="1180.0" height="15.0" fill="rgb(205,99,49)" rx="2" ry="2" /> +<text text-anchor="" x="13.00" y="847.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)" >/usr/local/lib/python3.6/socketserver.py:process_request:348</text> +</g> +<g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)"> +<title>/datas/progs/odoo/odoo/api.py:get_records:1009 (27 samples, 20.45%)</title><rect x="617.9" y="117" width="241.3" height="15.0" fill="rgb(223,40,14)" rx="2" ry="2" /> +<text text-anchor="" x="620.88" y="127.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)" >/datas/progs/odoo/odoo/api.py:ge..</text> +</g> +<g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)"> +<title><frozen importlib._bootstrap>:_find_and_load:971 (1 samples, 0.76%)</title><rect x="10.0" y="245" width="8.9" height="15.0" fill="rgb(238,115,50)" rx="2" ry="2" /> +<text text-anchor="" x="13.00" y="255.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)" ></text> +</g> +<g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)"> +<title>/datas/progs/odoo/odoo/tools/func.py:__get__:23 (1 samples, 0.76%)</title><rect x="1172.1" y="277" width="9.0" height="15.0" fill="rgb(249,35,36)" rx="2" ry="2" /> +<text text-anchor="" x="1175.12" y="287.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)" ></text> +</g> +<g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)"> +<title>/datas/progs/odoo/odoo/models.py:__getitem__:4657 (1 samples, 0.76%)</title><rect x="1181.1" y="373" width="8.9" height="15.0" fill="rgb(243,188,4)" rx="2" ry="2" /> +<text text-anchor="" x="1184.06" y="383.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)" ></text> +</g> +<g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)"> +<title>/usr/local/lib/python3.6/_weakrefset.py:__iter__:61 (2 samples, 1.52%)</title><rect x="162.0" y="165" width="17.8" height="15.0" fill="rgb(239,166,38)" rx="2" ry="2" /> +<text text-anchor="" x="164.97" y="175.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)" ></text> +</g> +<g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)"> +<title>/datas/progs/odoo/odoo/api.py:__new__:736 (7 samples, 5.30%)</title><rect x="72.6" y="325" width="62.6" height="15.0" fill="rgb(235,15,23)" rx="2" ry="2" /> +<text text-anchor="" x="75.58" y="335.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)" >/datas..</text> +</g> +<g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)"> +<title>/datas/progs/odoo/odoo/osv/expression.py:__init__:660 (1 samples, 0.76%)</title><rect x="313.9" y="213" width="9.0" height="15.0" fill="rgb(219,92,5)" rx="2" ry="2" /> +<text text-anchor="" x="316.94" y="223.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)" ></text> +</g> +<g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)"> +<title>/usr/local/lib/python3.6/_weakrefset.py:__iter__:61 (1 samples, 0.76%)</title><rect x="367.6" y="149" width="8.9" height="15.0" fill="rgb(254,11,12)" rx="2" ry="2" /> +<text text-anchor="" x="370.58" y="159.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)" ></text> +</g> +<g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)"> +<title>/datas/progs/odoo/odoo/api.py:user:798 (3 samples, 2.27%)</title><rect x="162.0" y="213" width="26.8" height="15.0" fill="rgb(251,143,13)" rx="2" ry="2" /> +<text text-anchor="" x="164.97" y="223.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)" >/..</text> +</g> +<g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)"> +<title>/datas/progs/odoo/odoo/models.py:_create:3435 (1 samples, 0.76%)</title><rect x="1172.1" y="325" width="9.0" height="15.0" fill="rgb(214,12,14)" rx="2" ry="2" /> +<text text-anchor="" x="1175.12" y="335.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)" ></text> +</g> +<g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)"> +<title>/datas/progs/odoo/odoo/fields.py:_compute_value:1006 (96 samples, 72.73%)</title><rect x="313.9" y="309" width="858.2" height="15.0" fill="rgb(223,46,17)" rx="2" ry="2" /> +<text text-anchor="" x="316.94" y="319.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)" >/datas/progs/odoo/odoo/fields.py:_compute_value:1006</text> +</g> +<g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)"> +<title>/datas/progs/odoo/odoo/models.py:_normalize_ids:5197 (1 samples, 0.76%)</title><rect x="743.0" y="69" width="9.0" height="15.0" fill="rgb(225,198,21)" rx="2" ry="2" /> +<text text-anchor="" x="746.03" y="79.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)" ></text> +</g> +<g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)"> +<title>/datas/progs/odoo/odoo/fields.py:setup_base:389 (1 samples, 0.76%)</title><rect x="27.9" y="501" width="8.9" height="15.0" fill="rgb(252,137,45)" rx="2" ry="2" /> +<text text-anchor="" x="30.88" y="511.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)" ></text> +</g> +<g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)"> +<title>/datas/progs/odoo/odoo/models.py:sudo:4310 (4 samples, 3.03%)</title><rect x="188.8" y="229" width="35.7" height="15.0" fill="rgb(241,171,41)" rx="2" ry="2" /> +<text text-anchor="" x="191.79" y="239.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)" >/da..</text> +</g> +<g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)"> +<title>/datas/progs/odoo/odoo/models.py:with_context:4333 (8 samples, 6.06%)</title><rect x="63.6" y="357" width="71.6" height="15.0" fill="rgb(253,113,17)" rx="2" ry="2" /> +<text text-anchor="" x="66.64" y="367.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)" >/datas/p..</text> +</g> +<g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)"> +<title>/datas/progs/odoo/odoo/modules/loading.py:load_module_graph:121 (1 samples, 0.76%)</title><rect x="10.0" y="533" width="8.9" height="15.0" fill="rgb(224,88,32)" rx="2" ry="2" /> +<text text-anchor="" x="13.00" y="543.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)" ></text> +</g> +<g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)"> +<title>/datas/progs/odoo/odoo/models.py:_browse:4218 (1 samples, 0.76%)</title><rect x="769.8" y="69" width="9.0" height="15.0" fill="rgb(249,188,0)" rx="2" ry="2" /> +<text text-anchor="" x="772.85" y="79.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)" ></text> +</g> +<g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)"> +<title><string>:change_digit:9 (7 samples, 5.30%)</title><rect x="1109.5" y="229" width="62.6" height="15.0" fill="rgb(224,119,46)" rx="2" ry="2" /> +<text text-anchor="" x="1112.55" y="239.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)" ><strin..</text> +</g> +<g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)"> +<title>/datas/progs/odoo/odoo/addons/base/res/ir_property.py:_get_domain:138 (3 samples, 2.27%)</title><rect x="162.0" y="261" width="26.8" height="15.0" fill="rgb(248,72,12)" rx="2" ry="2" /> +<text text-anchor="" x="164.97" y="271.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)" >/..</text> +</g> +<g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)"> +<title>/datas/progs/odoo/odoo/fields.py:compute_value:1015 (18 samples, 13.64%)</title><rect x="144.1" y="325" width="160.9" height="15.0" fill="rgb(248,79,16)" rx="2" ry="2" /> +<text text-anchor="" x="147.09" y="335.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)" >/datas/progs/odoo/od..</text> +</g> +<g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)"> +<title><string>:change_digit:9 (6 samples, 4.55%)</title><rect x="1055.9" y="229" width="53.6" height="15.0" fill="rgb(246,40,42)" rx="2" ry="2" /> +<text text-anchor="" x="1058.91" y="239.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)" ><stri..</text> +</g> +<g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)"> +<title>/usr/local/lib/python3.6/site-packages/werkzeug/serving.py:execute:181 (132 samples, 100.00%)</title><rect x="10.0" y="725" width="1180.0" height="15.0" fill="rgb(238,220,17)" rx="2" ry="2" /> +<text text-anchor="" x="13.00" y="735.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)" >/usr/local/lib/python3.6/site-packages/werkzeug/serving.py:execute:181</text> +</g> +<g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)"> +<title>/datas/progs/odoo/odoo/api.py:<listcomp>:1010 (27 samples, 20.45%)</title><rect x="617.9" y="101" width="241.3" height="15.0" fill="rgb(243,183,28)" rx="2" ry="2" /> +<text text-anchor="" x="620.88" y="111.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)" >/datas/progs/odoo/odoo/api.py:<l..</text> +</g> +<g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)"> +<title>/datas/progs/odoo/addons/web/controllers/main.py:call_kw:924 (1 samples, 0.76%)</title><rect x="1181.1" y="453" width="8.9" height="15.0" fill="rgb(210,71,32)" rx="2" ry="2" /> +<text text-anchor="" x="1184.06" y="463.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)" ></text> +</g> +<g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)"> +<title>/datas/progs/odoo/odoo/models.py:_setup_base:2312 (1 samples, 0.76%)</title><rect x="36.8" y="533" width="9.0" height="15.0" fill="rgb(221,104,41)" rx="2" ry="2" /> +<text text-anchor="" x="39.82" y="543.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)" ></text> +</g> +<g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)"> +<title>/datas/progs/odoo/odoo/fields.py:digits:1209 (7 samples, 5.30%)</title><rect x="1047.0" y="245" width="62.5" height="15.0" fill="rgb(205,0,31)" rx="2" ry="2" /> +<text text-anchor="" x="1049.97" y="255.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)" >/datas..</text> +</g> +</svg> diff --git a/doc/howtos/profilecode.rst b/doc/howtos/profilecode.rst new file mode 100644 index 00000000000..34591fcf274 --- /dev/null +++ b/doc/howtos/profilecode.rst @@ -0,0 +1,88 @@ +=================== +Profiling Odoo code +=================== + +.. warning:: + + This tutorial requires :ref:`having installed Odoo <setup/install>` + and :ref:`writing Odoo code <backend>` + +Graph a method Up to 10.0 +========================= + +Odoo embeds a profiler of code. This embeded profiler output can be used to +generate a graph of calls triggered by the method, percentage of time taken in +the method itself as well as time taken in method and it's sub-called methods. + +.. code:: python + + from openerp.tools.misc import profile + [...] + @profile('/temp/prof.profile') + @api.multi + def mymethod(...) + +This produce a file called /temp/prof.profile + +A tool called *gprof2dot* will produce a graph with this result: + +.. code:: bash + + gprof2dot -f pstats -o /temp/prof.xdot /temp/prof.profile + +A tool called *xdot* will display the resulting graph: + +.. code:: bash + + xdot /temp/prof.xdot + +Dump stack +========== + +Sending the SIGQUIT signal to an odoo process (only available on POSIX) makes +this process output the current stack trace to log, with info level. When an +odoo process seems stucked, sending this signal to the process permit to know +what the process is doing, and letting the process continue his job. + +Tracing code execution +====================== + +Instead of sending the SIGQUIT signal to an odoo process often enough, to check +where processes is performing worse than expected, we can use pyflame tool to +do it for us. + +Install pyflame and flamegraph +------------------------------ + +.. code:: bash + + sudo apt install autoconf automake autotools-dev g++ pkg-config python-dev python3-dev libtool make + git clone https://github.com/uber/pyflame.git + git clone https://github.com/brendangregg/FlameGraph.git + cd pyflame + ./autogen.sh + ./configure + make + sudo make install + +Record executed code +-------------------- + +As pyflame is installed, we now record the executed code lines with pyflame. +This tool will record, multiple times a second, the stacktrace of the process. +Once done, we'll display them as an execution graph. + +.. code:: bash + + pyflame --exclude-idle -s 3600 -r 0.2 -p <PID> -o test.flame + +where <PID> is the process ID of the odoo process you want to graph. This will +wait until the dead of the process, with a maximum of one hour, and and get 5 +traces a second. With the output of pyflame, we can produce an svg graph with +the flamegraph tool: + +.. code:: bash + + flamegraph.pl ./test.flame > ~/mycode.svg + +.. image:: profile/flamegraph.svg diff --git a/doc/howtos/themes.rst b/doc/howtos/themes.rst index 30583cfd758..5252ed5b776 100644 --- a/doc/howtos/themes.rst +++ b/doc/howtos/themes.rst @@ -377,27 +377,37 @@ Imagine that we want to create a specific layout for a Services page. For this page, we need to add a list of services to the top and give the client the possibility of setting the rest of the page’s layout using snippets. Inside your *views* folder, create a **pages.xml** file and add the -default Odoo markup. Inside ``<odoo>`` create a ``<template>`` tag, set the -``page`` attribute to ``True`` and add your code into it. +default Odoo markup. Inside ``<odoo>``, instead of defining a ``<template>``, +we will create a *page* object. .. code-block:: xml <?xml version="1.0" encoding="utf-8" ?> <odoo> - <!-- === Services Page === --> - <template name="Services page" id="website.services" page="True"> - <h1>Our Services</h1> - <ul class="services"> - <li>Cloud Hosting</li> - <li>Support</li> - <li>Unlimited space</li> - </ul> - </template> - - </odoo> - -The page title will be the template ID. In our case *Services* (from ``website.services``) + <!-- === Services Page === --> + <record id="services_page" model="website.page"> + <field name="name">Services page</field> + <field name="website_published">True</field> + <field name="url">/services</field> + <field name="type">qweb</field> + <field name="key">theme_tutorial.services_page</field> + <field name="arch" type="xml"> + <t t-name="theme_tutorial.services_page_template"> + <h1>Our Services</h1> + <ul class="services"> + <li>Cloud Hosting</li> + <li>Support</li> + <li>Unlimited space</li> + </ul> + </t> + </field> + </record> + + </odoo> + +As you can see, pages come with many additional properties like the *name* or +the *url* where it is reachable. We successfully created a new page layout, but we haven't told the system **how to use it**. To do that, we can use **QWeb**. Wrap the @@ -405,21 +415,30 @@ html code into a ``<t>`` tag, like in this example. .. code-block:: xml - <!-- === Services Page === --> - <template name="Services page" id="website.services" page="True"> - <t t-call="website.layout"> - <div id="wrap"> - <div class="container"> - <h1>Our Services</h1> - <ul class="services"> - <li>Cloud Hosting</li> - <li>Support</li> - <li>Unlimited space</li> - </ul> - </div> - </div> - </t> - </template> + <!-- === Services Page === --> + <record id="services_page" model="website.page"> + <field name="name">Services page</field> + <field name="website_published">True</field> + <field name="url">/services</field> + <field name="type">qweb</field> + <field name="key">theme_tutorial.services_page</field> + <field name="arch" type="xml"> + <t t-name="theme_tutorial.services_page_template"> + <t t-call="website.layout"> + <div id="wrap"> + <div class="container"> + <h1>Our Services</h1> + <ul class="services"> + <li>Cloud Hosting</li> + <li>Support</li> + <li>Unlimited space</li> + </ul> + </div> + </div> + </t> + </t> + </field> + </record> Using ``<t t-call="website.layout">`` we will extend the Odoo default page layout with our code. @@ -432,33 +451,80 @@ can fill with snippets. To achieve this, just create a ``div`` with .. code-block:: xml - <?xml version="1.0" encoding="utf-8" ?> - <odoo> - - <!-- === Services Page === --> - <template name="Services page" id="website.services" page="True"> - <t t-call="website.layout"> - <div id="wrap"> - <div class="container"> - <h1>Our Services</h1> - <ul class="services"> - <li>Cloud Hosting</li> - <li>Support</li> - <li>Unlimited space</li> - </ul> - <!-- === Snippets' area === --> - <div class="oe_structure" /> - </div> - </div> - </t> - </template> - - </odoo> + <?xml version="1.0" encoding="utf-8" ?> + <odoo> + + <!-- === Services Page === --> + <record id="services_page" model="website.page"> + <field name="name">Services page</field> + <field name="website_published">True</field> + <field name="url">/services</field> + <field name="type">qweb</field> + <field name="key">theme_tutorial.services_page</field> + <field name="arch" type="xml"> + <t t-name="theme_tutorial.services_page_template"> + <t t-call="website.layout"> + <div id="wrap"> + <div class="container"> + <h1>Our Services</h1> + <ul class="services"> + <li>Cloud Hosting</li> + <li>Support</li> + <li>Unlimited space</li> + </ul> + + <!-- === Snippets' area === --> + <div class="oe_structure" /> + </div> + </div> + </t> + </t> + </field> + </record> + + </odoo> .. tip:: You can create as many snippet areas as you like and place them anywhere in your pages. +It is worth mentioning there is an alternative to create pages using the +``<template>`` directive we saw before. + +.. code-block:: xml + + <?xml version="1.0" encoding="utf-8" ?> + <odoo> + + <!-- === Services Page === --> + <template id="services_page_template"> + <t t-call="website.layout"> + <div id="wrap"> + <div class="container"> + <h1>Our Services</h1> + <ul class="services"> + <li>Cloud Hosting</li> + <li>Support</li> + <li>Unlimited space</li> + </ul> + + <!-- === Snippets' area === --> + <div class="oe_structure" /> + </div> + </div> + </t> + </template> + <record id="services_page" model="website.page"> + <field name="name">Services page</field> + <field name="website_published">True</field> + <field name="url">/services</field> + <field name="view_id" ref="services_page_template"/> + </record> + + </odoo> + +This would allow your page content to be further customized using ``<xpath>``. + Our page is almost ready. Now all we have to do is add **pages.xml** in our **__manifest__.py** file .. code-block:: python @@ -472,7 +538,7 @@ Update your theme .. image:: theme_tutorial_assets/img/restart.png -Great, our Services page is ready and you’ll be able to access it by navigating to ``/yourwebsite/page/services``. +Great, our Services page is ready and you’ll be able to access it by navigating to ``<yourwebsite>/services`` (the URL we chose above). You will notice that it's possible to drag/drop snippets underneath the *Our Services* list. @@ -487,12 +553,12 @@ copy/paste the following code. <record id="services_page_link" model="website.menu"> <field name="name">Services</field> - <field name="url">/page/services</field> + <field name="page_id" ref="services_page"/> <field name="parent_id" ref="website.main_menu" /> <field name="sequence" type="int">99</field> </record> -This code will add a link to the main menu. +This code will add a link to the main menu, referring to the page we created. .. image:: theme_tutorial_assets/img/services_page_menu.png :class: shadow-0 diff --git a/doc/reference/cmdline.rst b/doc/reference/cmdline.rst index 2f1626f6dac..4171f12c5e1 100644 --- a/doc/reference/cmdline.rst +++ b/doc/reference/cmdline.rst @@ -15,7 +15,9 @@ Running the server .. option:: -d <database>, --database <database> - database used when installing or updating modules. + database(s) used when installing or updating modules. + Providing a comma-separated list restrict access to databases provided in + list. .. option:: -i <modules>, --init <modules> @@ -165,6 +167,44 @@ database databases (so domain ``odoo.com`` using ``(?i)%d`` matches the database ``Odoo``). + Since version 11, it's also possible to restrict access to a given database + listen by using the --database parameter and specifying a comma-separated + list of databases + + When combining the two parameters, db-filter superseed the comma-separated + database list for restricting database list, while the comma-separated list + is used for performing requested operations like upgrade of modules. + + .. code-block:: bash + + odoo-bin --db-filter ^11.*$ + + Restrict access to databases whose name starts with 11 + + .. code-block:: bash + + odoo-bin --database 11firstdatabase,11seconddatabase + + Restrict access to only two databases, 11firstdatabase and 11seconddatabase + + .. code-block:: bash + + odoo-bin --database 11firstdatabase,11seconddatabase -u base + + Restrict access to only two databases, 11firstdatabase and 11seconddatabase, + and update base module on one database: 11firstdatabase + If database 11seconddatabase doesn't exist, the database is created and base modules + is installed + + .. code-block:: bash + + odoo-bin --db-filter ^11.*$ --database 11firstdatabase,11seconddatabase -u base + + Restrict access to databases whose name starts with 11, + and update base module on one database: 11firstdatabase + If database 11seconddatabase doesn't exist, the database is created and base modules + is installed + .. option:: --db-template <template> when creating new databases from the database-management screens, use the @@ -173,6 +213,13 @@ database .. option:: --no-database-list Suppresses the ability to list databases available on the system + +.. option:: --db_sslmode + + Control the SSL security of the connection between Odoo and PostgreSQL. + Value should bve one of 'disable', 'allow', 'prefer', 'require', + 'verify-ca' or 'verify-full' + Default value is 'prefer' built-in HTTP ------------- diff --git a/doc/reference/views.rst b/doc/reference/views.rst index 7337f861c9f..5920b1ff7c6 100644 --- a/doc/reference/views.rst +++ b/doc/reference/views.rst @@ -230,8 +230,7 @@ Possible children elements of the list view are: context of the current row's record, if ``True`` the corresponding attribute is set on the cell. - Possible attributes are ``invisible`` (hides the button) and - ``readonly`` (disables the button but still shows it) + Possible attribute is ``invisible`` (hides the button). ``states`` shorthand for ``invisible`` ``attrs``: a list of states, comma separated, requires that the model has a ``state`` field and that it is diff --git a/doc/setup/deploy.rst b/doc/setup/deploy.rst index 6a1e22f886c..5aea431caf4 100644 --- a/doc/setup/deploy.rst +++ b/doc/setup/deploy.rst @@ -165,6 +165,18 @@ in ``/etc/odoo.conf`` set: db_password = pwd dbfilter = ^mycompany.*$ +.. _postgresql_ssl_connect: + +SSL Between Odoo and PostgreSQL +------------------------------- + +Since Odoo 11.0, you can enforce ssl connection between Odoo and PostgreSQL. +in Odoo the db_sslmode control the ssl security of the connection +with value choosed out of 'disable', 'allow', 'prefer', 'require', 'verify-ca' +or 'verify-full' + +`PostgreSQL Doc <https://www.postgresql.org/docs/current/static/libpq-ssl.html>`_ + .. _builtin_server: Builtin server @@ -541,8 +553,8 @@ of the supported browsers by Odoo version is the following: .. _socat: http://www.dest-unreach.org/socat/ .. _PostgreSQL connection settings: .. _listen to network interfaces: - http://www.postgresql.org/docs/9.3/static/runtime-config-connection.html + http://www.postgresql.org/docs/9.6/static/runtime-config-connection.html .. _use an SSH tunnel: - http://www.postgresql.org/docs/9.3/static/ssh-tunnels.html + http://www.postgresql.org/docs/9.6/static/ssh-tunnels.html .. _WSGI: http://wsgi.readthedocs.org/ .. _POSBox: https://www.odoo.com/page/point-of-sale-hardware#part_2 diff --git a/doc/tutorials.rst b/doc/tutorials.rst index 090b82ec8c9..ee30b3c681b 100644 --- a/doc/tutorials.rst +++ b/doc/tutorials.rst @@ -9,3 +9,4 @@ Tutorials howtos/website howtos/backend howtos/web + howtos/profilecode
\ No newline at end of file diff --git a/doc/webservices.rst b/doc/webservices.rst index 41e73c7604e..3af3a363902 100644 --- a/doc/webservices.rst +++ b/doc/webservices.rst @@ -11,4 +11,4 @@ Web Services webservices/odoo webservices/iap webservices/upgrade - webservices/localization
\ No newline at end of file + webservices/localization |
