From 73a977ff27d4155b93b1053bee4478443faca340 Mon Sep 17 00:00:00 2001 From: Petar Najman Date: Fri, 23 Feb 2018 11:36:33 +0100 Subject: [PATCH 001/218] Add module web_ir_actions_act_multi --- web_ir_actions_act_multi/README.rst | 60 ++++++++++++++++++ web_ir_actions_act_multi/__init__.py | 0 web_ir_actions_act_multi/__manifest__.py | 17 +++++ .../i18n/web_ir_actions_act_multi.pot | 14 ++++ .../static/description/icon.png | Bin 0 -> 9455 bytes .../static/src/js/web_ir_actions_act_multi.js | 31 +++++++++ .../views/web_ir_actions_act_multi.xml | 14 ++++ 7 files changed, 136 insertions(+) create mode 100644 web_ir_actions_act_multi/README.rst create mode 100644 web_ir_actions_act_multi/__init__.py create mode 100644 web_ir_actions_act_multi/__manifest__.py create mode 100644 web_ir_actions_act_multi/i18n/web_ir_actions_act_multi.pot create mode 100644 web_ir_actions_act_multi/static/description/icon.png create mode 100644 web_ir_actions_act_multi/static/src/js/web_ir_actions_act_multi.js create mode 100644 web_ir_actions_act_multi/views/web_ir_actions_act_multi.xml diff --git a/web_ir_actions_act_multi/README.rst b/web_ir_actions_act_multi/README.rst new file mode 100644 index 000000000000..317b195604c1 --- /dev/null +++ b/web_ir_actions_act_multi/README.rst @@ -0,0 +1,60 @@ +.. image:: https://www.gnu.org/graphics/lgplv3-147x51.png + :target: https://www.gnu.org/licenses/lgpl-3.0.en.html + :alt: License: LGPL-v3 + +================= +Web Actions Multi +================= + +This module provides a way to trigger more than one action on ActionManager + +Usage +===== + +To use this functionality you need to return following action with list of actions to execute: + +.. code-block:: python + + @api.multi + def foo(): + self.ensure_one() + return { + 'type': 'ir.actions.act_multi', + 'actions': [ + {'type': 'ir.actions.act_window_close'}, + {'type': 'ir.actions.act_view_reload'}, + ] + } + +Bug Tracker +=========== + +Bugs are tracked on `GitHub Issues +`_. In case of trouble, please +check there if your issue has already been reported. If you spotted it first, +help us smash it by providing detailed and welcomed feedback. + +Credits +======= + +Contributors +------------ + +* Petar Najman +* Mladen Meseldzija + + +Maintainer +---------- + +.. image:: https://odoo-community.org/logo.png + :alt: Odoo Community Association + :target: https://odoo-community.org + +This module is maintained by the OCA. + +OCA, or the Odoo Community Association, is a nonprofit organization whose +mission is to support the collaborative development of Odoo features and +promote its widespread use. + +To contribute to this module, please visit https://odoo-community.org. diff --git a/web_ir_actions_act_multi/__init__.py b/web_ir_actions_act_multi/__init__.py new file mode 100644 index 000000000000..e69de29bb2d1 diff --git a/web_ir_actions_act_multi/__manifest__.py b/web_ir_actions_act_multi/__manifest__.py new file mode 100644 index 000000000000..4a7ed9d79799 --- /dev/null +++ b/web_ir_actions_act_multi/__manifest__.py @@ -0,0 +1,17 @@ +# Copyright 2017 - 2018 Modoolar +# License LGPLv3.0 or later (https://www.gnu.org/licenses/lgpl-3.0.en.html). + +{ + "name": "Web Actions Multi", + "summary": "Enables triggering of more than one action on ActionManager", + "category": "Web", + "version": "11.0.1.0.0", + "license": "LGPL-3", + "author": "Modoolar, Odoo Community Association (OCA)", + "website": "https://github.com/OCA/web/", + "depends": ["web"], + "data": [ + "views/web_ir_actions_act_multi.xml", + ], + "installable": True, +} diff --git a/web_ir_actions_act_multi/i18n/web_ir_actions_act_multi.pot b/web_ir_actions_act_multi/i18n/web_ir_actions_act_multi.pot new file mode 100644 index 000000000000..447d3bb3ca4c --- /dev/null +++ b/web_ir_actions_act_multi/i18n/web_ir_actions_act_multi.pot @@ -0,0 +1,14 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 11.0\n" +"Report-Msgid-Bugs-To: \n" +"Last-Translator: <>\n" +"Language-Team: \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: \n" +"Plural-Forms: \n" + diff --git a/web_ir_actions_act_multi/static/description/icon.png b/web_ir_actions_act_multi/static/description/icon.png new file mode 100644 index 0000000000000000000000000000000000000000..3a0328b516c4980e8e44cdb63fd945757ddd132d GIT binary patch literal 9455 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 z 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 Xviia!U7SGha1wx#SCgwmn*{w2TRX*I literal 0 HcmV?d00001 diff --git a/web_ir_actions_act_multi/static/src/js/web_ir_actions_act_multi.js b/web_ir_actions_act_multi/static/src/js/web_ir_actions_act_multi.js new file mode 100644 index 000000000000..e5c5d86e1706 --- /dev/null +++ b/web_ir_actions_act_multi/static/src/js/web_ir_actions_act_multi.js @@ -0,0 +1,31 @@ +// Copyright 2017 - 2018 Modoolar +// License LGPLv3.0 or later (https://www.gnu.org/licenses/lgpl-3.0.en.html). + +odoo.define('web_ir_actions_act_multi.ir_actions_act_multi', function (require) { +"use strict"; + + var ActionManager = require('web.ActionManager'); + + ActionManager.include({ + + execute_ir_actions_act_multi: function(actions, options, index){ + var self = this; + + if (index >= actions.length){ + return actions[actions.length-1]; + } + + return self.do_action(actions[index],options) + .then(function(){ + index++; + return self.execute_ir_actions_act_multi(actions, options, index); + }); + }, + + ir_actions_act_multi: function(action, options){ + return this.execute_ir_actions_act_multi(action.actions, options, 0); + }, + + }); + +}); diff --git a/web_ir_actions_act_multi/views/web_ir_actions_act_multi.xml b/web_ir_actions_act_multi/views/web_ir_actions_act_multi.xml new file mode 100644 index 000000000000..2df563473dc4 --- /dev/null +++ b/web_ir_actions_act_multi/views/web_ir_actions_act_multi.xml @@ -0,0 +1,14 @@ + + + + + + From 482ab37cfb9661e12cb4bd18413a6c4e0ee77ed8 Mon Sep 17 00:00:00 2001 From: "Adrien Peiffer (ACSONE)" Date: Fri, 8 Apr 2016 16:02:32 +0200 Subject: [PATCH 029/218] [IMP] web_timeline: Several improvements: * Avoid to display all items of group_by model * Remove unnecessary readgroup * Remove dependency on project. Modify module structure. Imporve readme file. * Add setup.py --- web_timeline/README.rst | 75 +++++++++++++++++++++- web_timeline/__init__.py | 6 +- web_timeline/__openerp__.py | 22 +++++-- web_timeline/ir_view.py | 40 ------------ web_timeline/models/__init__.py | 5 ++ web_timeline/models/ir_view.py | 25 ++++++++ web_timeline/project_view.xml | 24 ------- web_timeline/static/src/js/web_timeline.js | 40 +++++++----- 8 files changed, 147 insertions(+), 90 deletions(-) delete mode 100644 web_timeline/ir_view.py create mode 100644 web_timeline/models/__init__.py create mode 100644 web_timeline/models/ir_view.py delete mode 100644 web_timeline/project_view.xml diff --git a/web_timeline/README.rst b/web_timeline/README.rst index a97118b225ef..e634fd9c1bca 100755 --- a/web_timeline/README.rst +++ b/web_timeline/README.rst @@ -1,7 +1,80 @@ +.. image:: https://img.shields.io/badge/licence-AGPL--3-blue.svg + :target: http://www.gnu.org/licenses/agpl-3.0-standalone.html + :alt: License: AGPL-3 + +=============== Timeline Widget =============== -!Prototype! Define a new widget displaying events in an interactive visualization chart. + The widget is based on the external library http://visjs.org/timeline_examples.html + +Usage +===== + +Example: + + + + + + project.task.timeline + project.task + timeline + + + + + + + + + kanban,tree,form,calendar,gantt,timeline,graph + + + + +.. image:: https://odoo-community.org/website/image/ir.attachment/5784_f2813bd/datas + :alt: Try me on Runbot + :target: https://runbot.odoo-community.org/runbot/162/8.0 + +Bug Tracker +=========== + +Bugs are tracked on `GitHub Issues +`_. In case of trouble, please +check there if your issue has already been reported. If you spotted it first, +help us smashing it by providing a detailed and welcomed feedback. + +Credits +======= + +Images +------ + +* Odoo Community Association: `Icon `_. + +Contributors +------------ + +* Laurent Mignon +* Adrien Peiffer + +Maintainer +---------- + +.. image:: https://odoo-community.org/logo.png + :alt: Odoo Community Association + :target: https://odoo-community.org + +This module is maintained by the OCA. + +OCA, or the Odoo Community Association, is a nonprofit organization whose mission is to support the collaborative development of Odoo features and promote its widespread use. + +To contribute to this module, please visit https://odoo-community.org. \ No newline at end of file diff --git a/web_timeline/__init__.py b/web_timeline/__init__.py index 68f25f6bdc0a..444b39cc18c2 100644 --- a/web_timeline/__init__.py +++ b/web_timeline/__init__.py @@ -1 +1,5 @@ -from . import ir_view +# -*- coding: utf-8 -*- +# Copyright 2016 ACSONE SA/NV () +# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html). + +from . import models diff --git a/web_timeline/__openerp__.py b/web_timeline/__openerp__.py index bf2055753bbb..57ee01b07a47 100644 --- a/web_timeline/__openerp__.py +++ b/web_timeline/__openerp__.py @@ -1,16 +1,24 @@ +# -*- coding: utf-8 -*- +# Copyright 2016 ACSONE SA/NV () +# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html). + { 'name': "Web timeline", 'summary': """ - Interactive visualization chart to visualize events in time + Interactive visualization chart to visualize events in time """, - "version": "0.1", - "author": "ACSONE SA/NV", - "category": "Acsone", + "version": "8.0.1.0.0", + 'author': 'ACSONE SA/NV,' + 'Odoo Community Association (OCA)', + "category": "Tools", "website": "http://acsone.eu", - 'depends': ['web', 'project'], - 'qweb': ['static/src/xml/web_timeline.xml'], + 'depends': [ + 'web' + ], + 'qweb': [ + 'static/src/xml/web_timeline.xml', + ], 'data': [ 'views/web_timeline.xml', - 'project_view.xml', ], } diff --git a/web_timeline/ir_view.py b/web_timeline/ir_view.py deleted file mode 100644 index efbd8d67f211..000000000000 --- a/web_timeline/ir_view.py +++ /dev/null @@ -1,40 +0,0 @@ -# -*- coding: utf-8 -*- -############################################################################## -# -# Copyright 2015 ACSONE SA/NV -# -# This program is free software: you can redistribute it and/or modify -# it under the terms of the GNU Affero General Public License as -# published by the Free Software Foundation, either version 3 of the -# License, or (at your option) any later version. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU Affero General Public License for more details. -# -# You should have received a copy of the GNU Affero General Public License -# along with this program. If not, see . -# -############################################################################## -from openerp import models -from openerp import api - - -TIMELINE_VIEW = ('timeline', 'Timeline') - - -class IrUIView(models.Model): - _inherit = 'ir.ui.view' - - @api.model - def _setup_fields(self): - """Hack due since the field 'type' is not defined with the new api. - """ - cls = type(self) - type_selection = cls._fields['type'].selection - if TIMELINE_VIEW not in type_selection: - tmp = list(type_selection) - tmp.append(TIMELINE_VIEW) - cls._fields['type'].selection = tuple(set(tmp)) - super(IrUIView, self)._setup_fields() diff --git a/web_timeline/models/__init__.py b/web_timeline/models/__init__.py new file mode 100644 index 000000000000..81a27ea1f2e8 --- /dev/null +++ b/web_timeline/models/__init__.py @@ -0,0 +1,5 @@ +# -*- coding: utf-8 -*- +# © 2016 ACSONE SA/NV () +# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html). + +from . import ir_view diff --git a/web_timeline/models/ir_view.py b/web_timeline/models/ir_view.py new file mode 100644 index 000000000000..899d4873708f --- /dev/null +++ b/web_timeline/models/ir_view.py @@ -0,0 +1,25 @@ +# -*- coding: utf-8 -*- +# Copyright 2016 ACSONE SA/NV () +# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html). + +from openerp import models +from openerp import api + + +TIMELINE_VIEW = ('timeline', 'Timeline') + + +class IrUIView(models.Model): + _inherit = 'ir.ui.view' + + @api.model + def _setup_fields(self): + """Hack due since the field 'type' is not defined with the new api. + """ + cls = type(self) + type_selection = cls._fields['type'].selection + if TIMELINE_VIEW not in type_selection: + tmp = list(type_selection) + tmp.append(TIMELINE_VIEW) + cls._fields['type'].selection = tuple(set(tmp)) + super(IrUIView, self)._setup_fields() diff --git a/web_timeline/project_view.xml b/web_timeline/project_view.xml deleted file mode 100644 index 0e8e2b2135bf..000000000000 --- a/web_timeline/project_view.xml +++ /dev/null @@ -1,24 +0,0 @@ - - - - - - project.task.timeline - project.task - timeline - - - - - - - - - kanban,tree,form,calendar,gantt,timeline,graph - - - diff --git a/web_timeline/static/src/js/web_timeline.js b/web_timeline/static/src/js/web_timeline.js index 6193bde01357..7835a2131d6c 100644 --- a/web_timeline/static/src/js/web_timeline.js +++ b/web_timeline/static/src/js/web_timeline.js @@ -247,7 +247,6 @@ openerp.web_timeline = function(instance) { var self = this; self.last_domains = domains; self.last_contexts = contexts; - // self.reload_gantt(); // select the group by var n_group_bys = []; if (this.fields_view.arch.attrs.default_group_by) { @@ -263,14 +262,7 @@ openerp.web_timeline = function(instance) { })); fields = _.uniq(fields.concat(_.pluck(this.colors, "field").concat(n_group_bys))); - var group_by = self.fields[_.first(n_group_bys)] - var read_groups = new instance.web.DataSet(this, group_by.relation, group_by.context) - .name_search('', group_by.domain) - .then(function(groups){ - self.groups = groups; - }); - - return $.when(this.has_been_loaded, read_groups).then(function() { + return $.when(this.has_been_loaded).then(function() { return self.dataset.read_slice(fields, { domain: domains, context: contexts @@ -304,18 +296,33 @@ openerp.web_timeline = function(instance) { var self = this; var data = []; var groups = []; - groups.push({id:-1, content: _t('Undefined')}) _.each(tasks, function(event) { - data.push(self.event_data_transform(event)); - }); - _.each(self.groups, function(group){ - groups.push({id: group[0], content: group[1]}); + if (event[self.date_start]){ + data.push(self.event_data_transform(event)); + } }); + // get the groups + var split_groups = function(tasks, group_bys) { + if (group_bys.length === 0) + return tasks; + var groups = []; + groups.push({id:-1, content: _t('-')}) + _.each(tasks, function(task) { + var group_name = task[_.first(group_bys)]; + if (group_name) { + var group = _.find(groups, function(group) { return _.isEqual(group.id, group_name[0]); }); + if (group === undefined) { + group = {id: group_name[0], content: group_name[1]}; + groups.push(group); + } + } + }); + return groups; + } + var groups = split_groups(tasks, group_bys); this.timeline.setGroups(groups); this.timeline.setItems(data); this.timeline.setWindow(this.current_window); - //this.timeline.moveTo(new Date(), true); - //this.timeline.zoom(0.5, new Date()); }, do_show: function() { @@ -394,7 +401,6 @@ openerp.web_timeline = function(instance) { null, {readonly: true, title: title} ); - //pop.on('closed', self, self.reload); var form_controller = pop.view_form; form_controller.on("load_record", self, function() { var footer = pop.$el.closest(".modal").find(".modal-footer"); From 26424f8a53a7d9bdd8383cf0e141400f27fe4d01 Mon Sep 17 00:00:00 2001 From: Holger Brunn Date: Thu, 16 Jun 2016 14:59:28 +0200 Subject: [PATCH 030/218] [IMP] web_timeline: add few features --- web_timeline/static/src/css/web_timeline.css | 6 ++- web_timeline/static/src/js/web_timeline.js | 52 +++++++++++++++++--- 2 files changed, 50 insertions(+), 8 deletions(-) diff --git a/web_timeline/static/src/css/web_timeline.css b/web_timeline/static/src/css/web_timeline.css index 58aad0a8686e..79cbed61d189 100644 --- a/web_timeline/static/src/css/web_timeline.css +++ b/web_timeline/static/src/css/web_timeline.css @@ -35,4 +35,8 @@ .oe_chatter_toggle { padding: 15px; -} \ No newline at end of file +} + +.oe_timeline_view .vlabel .inner:hover{ + cursor: pointer; +} diff --git a/web_timeline/static/src/js/web_timeline.js b/web_timeline/static/src/js/web_timeline.js index 7835a2131d6c..6d63c6ea4aa9 100644 --- a/web_timeline/static/src/js/web_timeline.js +++ b/web_timeline/static/src/js/web_timeline.js @@ -104,6 +104,7 @@ openerp.web_timeline = function(instance) { this.name = fv.name || attrs.string; this.view_id = fv.view_id; + this.start = py.eval(attrs.start || 'None', instance.web.pyeval.context()); this.mode = attrs.mode; // one of month, week or day this.date_start = attrs.date_start; // Field name of starting // date field @@ -173,9 +174,15 @@ openerp.web_timeline = function(instance) { onUpdate: self.on_update, onRemove: self.on_remove, orientation: 'both', + start: self.start, }; - self.timeline = new vis.Timeline(self.$timeline.get(0)); + self.timeline = new vis.Timeline(self.$timeline.empty().get(0)); self.timeline.setOptions(options); + if(self.mode && self['on_scale_' + self.mode + '_clicked']) + { + self['on_scale_' + self.mode + '_clicked'](); + } + self.timeline.on('click', self.on_click); return $.when(); }, @@ -356,17 +363,14 @@ openerp.web_timeline = function(instance) { }, on_add: function(item, callback) { - var self = this; - var pop = new instance.web.form.SelectCreatePopup(this); + var self = this, + pop = new instance.web.form.SelectCreatePopup(this), + context = this.get_popup_context(item); pop.on("elements_selected", self, function(element_ids) { self.reload().then(function() { self.timeline.focus(element_ids); }); }); - context = {}; - context['default_'.concat(self.date_start)] = item.start; - context['default_'.concat(self.last_group_bys[0])] = item.group; - context['default_'.concat(self.date_stop)] = item.start.clone().addHours(this.date_delay || 1); pop.select_element( self.dataset.model, { @@ -378,6 +382,18 @@ openerp.web_timeline = function(instance) { ); }, + get_popup_context: function(item) { + var context = {}; + context['default_'.concat(this.date_start)] = item.start; + context['default_'.concat(this.date_stop)] = item.start.clone() + .addHours(this.date_delay || 1); + if(item.group != -1) + { + context['default_'.concat(this.last_group_bys[0])] = item.group; + } + return context; + }, + on_update: function(item, callback) { var self = this; var id = item.evt.id; @@ -472,6 +488,28 @@ openerp.web_timeline = function(instance) { return do_it(); }, + on_click: function(e) { + // handle a click on a group header + if(e.what == 'group-label') + { + return this.on_group_click(e); + } + }, + + on_group_click: function(e) { + if(e.group == -1) + { + return; + } + return this.do_action({ + type: 'ir.actions.act_window', + res_model: this.fields[this.last_group_bys[0]].relation, + res_id: e.group, + target: 'new', + views: [[false, 'form']], + }); + }, + on_today_clicked: function(){ this.current_window = { start: new Date(), From ab4fabdfd97b6ca37d592df4a3a898c76e4a4dc8 Mon Sep 17 00:00:00 2001 From: "Pedro M. Baeza" Date: Tue, 2 Aug 2016 00:59:05 +0200 Subject: [PATCH 031/218] [MIG] web_timeline: Migration to 9.0 --- web_timeline/README.rst | 120 +++-- .../{__openerp__.py => __manifest__.py} | 14 +- web_timeline/models/ir_view.py | 15 +- web_timeline/static/description/icon.png | Bin 0 -> 12001 bytes web_timeline/static/src/css/web_timeline.css | 28 +- web_timeline/static/src/js/web_timeline.js | 463 ++++++++---------- web_timeline/views/web_timeline.xml | 26 +- 7 files changed, 307 insertions(+), 359 deletions(-) rename web_timeline/{__openerp__.py => __manifest__.py} (63%) create mode 100644 web_timeline/static/description/icon.png diff --git a/web_timeline/README.rst b/web_timeline/README.rst index e634fd9c1bca..d16b7673f2a8 100755 --- a/web_timeline/README.rst +++ b/web_timeline/README.rst @@ -2,48 +2,106 @@ :target: http://www.gnu.org/licenses/agpl-3.0-standalone.html :alt: License: AGPL-3 -=============== -Timeline Widget -=============== +============= +Timeline view +============= -Define a new widget displaying events in an interactive visualization chart. +Define a new view displaying events in an interactive visualization chart. The widget is based on the external library http://visjs.org/timeline_examples.html -Usage -===== +Configuration +============= + +You need to define a view with the tag as base element. These are +the possible attributes for the tag: + +* date_start (required): it defines the name of the field of type date that + contains the start of the event. +* date_end (optional): it defines the name of the field of type date that + contains the end of the event. +* date_delay (optional): it defines the name of the field of type date that + contains the end of the event. +* default_group_by (required): it defines the name of the field that will be + taken as default group by when accessing the view or when no other group by + is selected. +* event_open_popup (optional): when set to true, it allows to edit the events + in a popup. If not (default value), the record is edited changing to form + view. +* colors (optional): it allows to set certain specific colors if the expressed + condition (JS syntax) is met. + +You also need to declare the view in an action window of the involved model. Example: + +.. code-block:: xml + - - - - - project.task.timeline - project.task - timeline - - - - - - - - - kanban,tree,form,calendar,gantt,timeline,graph - - - + + + project.task + timeline + + + + + + + + kanban,tree,form,calendar,gantt,timeline,graph + + + +Usage +===== + +For accessing the timeline view, you have to click on the button with the clock +icon in the view switcher. The first time you access to it, the timeline window +is zoomed to fit all the current elements, the same as when you perform a +search, filter or group by operation. + +You can use the mouse scroll to zoom in or out in the timeline, and click on +any free area and drag for panning the view in that direction. + +The records of your model will be shown as rectangles whose widths are the +duration of the event according our definition. You can select them clicking +on this rectangle. You can also use Ctrl or Shift keys for adding discrete +or range selections. Selected records are hightlighted with a different color +(but the difference will be more noticeable depending on the background color). +Once selected, you can drag and move the selected records across the timeline. + +When a record is selected, a red cross button appears on the upper left corner +that allows to remove that record. This doesn't work for multiple records +although they were selected. + +Records are grouped in different blocks depending on the group by criteria +selected (if none is specified, then the default group by is applied). +Dragging a record from one block to another change the corresponding field to +the value that represents the block. You can also click on the group name to +edit the involved record directly. + +Double-click on the record to edit it. Double-click in open area to create a +new record with the group and start date linked to the area you clicked in. + .. image:: https://odoo-community.org/website/image/ir.attachment/5784_f2813bd/datas :alt: Try me on Runbot :target: https://runbot.odoo-community.org/runbot/162/8.0 +Known issues / Roadmap +====================== + +* Implement support for vis.js timeline range item addition (with Ctrl key + pressed). +* Implement a more efficient way of refreshing timeline after a record update. + Bug Tracker =========== @@ -65,6 +123,8 @@ Contributors * Laurent Mignon * Adrien Peiffer +* Pedro M. Baeza +* Leonardo Donelli Maintainer ---------- @@ -77,4 +137,4 @@ This module is maintained by the OCA. OCA, or the Odoo Community Association, is a nonprofit organization whose mission is to support the collaborative development of Odoo features and promote its widespread use. -To contribute to this module, please visit https://odoo-community.org. \ No newline at end of file +To contribute to this module, please visit https://odoo-community.org. diff --git a/web_timeline/__openerp__.py b/web_timeline/__manifest__.py similarity index 63% rename from web_timeline/__openerp__.py rename to web_timeline/__manifest__.py index 57ee01b07a47..88b2a86091c4 100644 --- a/web_timeline/__openerp__.py +++ b/web_timeline/__manifest__.py @@ -4,16 +4,16 @@ { 'name': "Web timeline", - 'summary': """ - Interactive visualization chart to visualize events in time - """, - "version": "8.0.1.0.0", - 'author': 'ACSONE SA/NV,' + 'summary': "Interactive visualization chart to show events in time", + "version": "10.0.1.0.0", + 'author': 'ACSONE SA/NV, ' + 'Tecnativa, ' + 'Monk Software, ', 'Odoo Community Association (OCA)', - "category": "Tools", + "category": "web", "website": "http://acsone.eu", 'depends': [ - 'web' + 'web', ], 'qweb': [ 'static/src/xml/web_timeline.xml', diff --git a/web_timeline/models/ir_view.py b/web_timeline/models/ir_view.py index 899d4873708f..bbf56e9684a9 100644 --- a/web_timeline/models/ir_view.py +++ b/web_timeline/models/ir_view.py @@ -2,8 +2,7 @@ # Copyright 2016 ACSONE SA/NV () # License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html). -from openerp import models -from openerp import api +from openerp import fields, models TIMELINE_VIEW = ('timeline', 'Timeline') @@ -12,14 +11,4 @@ class IrUIView(models.Model): _inherit = 'ir.ui.view' - @api.model - def _setup_fields(self): - """Hack due since the field 'type' is not defined with the new api. - """ - cls = type(self) - type_selection = cls._fields['type'].selection - if TIMELINE_VIEW not in type_selection: - tmp = list(type_selection) - tmp.append(TIMELINE_VIEW) - cls._fields['type'].selection = tuple(set(tmp)) - super(IrUIView, self)._setup_fields() + type = fields.Selection(selection_add=[TIMELINE_VIEW]) diff --git a/web_timeline/static/description/icon.png b/web_timeline/static/description/icon.png new file mode 100644 index 0000000000000000000000000000000000000000..d01494920cc5393b0b44ccf97dc7f8be6967a2dd GIT binary patch literal 12001 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 literal 0 HcmV?d00001 diff --git a/web_timeline/static/src/css/web_timeline.css b/web_timeline/static/src/css/web_timeline.css index 79cbed61d189..a4e3bab47ffb 100644 --- a/web_timeline/static/src/css/web_timeline.css +++ b/web_timeline/static/src/css/web_timeline.css @@ -2,39 +2,19 @@ .openerp .oe_view_manager .oe_view_manager_switch .oe_vm_switch_timeline:after { content: "N"; } -.timeline-navigation-zoom-in .ui-icon{ - background: none !important; -} - -.timeline-navigation-zoom-out .ui-icon{ - background: none !important; -} -.timeline-navigation-move-left .ui-icon{ - background: none !important; -} -.timeline-navigation-move-right .ui-icon{ - background: none !important; -} -/*.vis.timeline .timeaxis .grid.odd { - background: #f5f5f5; -} */ -/* gray background in weekends, white text color */ +/* very light gray background in weekends */ .vis.timeline .timeaxis .grid.saturday, .vis.timeline .timeaxis .grid.sunday { - background: gray; + background: #DCDCDC; } -/* .vis.timeline .timeaxis .text.saturday, -.vis.timeline .timeaxis .text.sunday { - color: white; -} */ .vis.timeline .item.range .content { - overflow: visible; + overflow: visible; } .oe_chatter_toggle { - padding: 15px; + padding: 15px; } .oe_timeline_view .vlabel .inner:hover{ diff --git a/web_timeline/static/src/js/web_timeline.js b/web_timeline/static/src/js/web_timeline.js index 6d63c6ea4aa9..22107c68ede4 100644 --- a/web_timeline/static/src/js/web_timeline.js +++ b/web_timeline/static/src/js/web_timeline.js @@ -1,7 +1,7 @@ -/*--------------------------------------------------------- - * Odoo web_timeline +/* Odoo web_timeline * Copyright 2015 ACSONE SA/NV - *---------------------------------------------------------*/ + * Copyright 2016 Pedro M. Baeza + * License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). */ _.str.toBoolElse = function (str, elseValues, trueValues, falseValues) { var ret = _.str.toBool(str, trueValues, falseValues); @@ -11,61 +11,55 @@ _.str.toBoolElse = function (str, elseValues, trueValues, falseValues) { return ret; }; -openerp.web_timeline = function(instance) { - var _t = instance.web._t, - _lt = instance.web._lt, - QWeb = instance.web.qweb; +odoo.define('web_timeline.TimelineView', function (require) { + "use strict"; + + var core = require('web.core'); + var form_common = require('web.form_common'); + var Model = require('web.DataModel'); + var time = require('web.time'); + var View = require('web.View'); + var widgets = require('web_calendar.widgets'); + + var _t = core._t; + var _lt = core._lt; function isNullOrUndef(value) { return _.isUndefined(value) || _.isNull(value); } - instance.web.views.add('timeline', 'instance.web_timeline.TimelineView'); - - instance.web_timeline.TimelineView = instance.web.View.extend({ + var TimelineView = View.extend({ template: "TimelineView", display_name: _lt('Timeline'), - quick_create_instance: 'instance.web_timeline.QuickCreate', + icon: 'fa-clock-o', + quick_create_instance: widgets.QuickCreate, + init: function (parent, dataset, view_id, options) { - this._super(parent); - this.ready = $.Deferred(); this.permissions = {}; - this.set_default_options(options); - this.dataset = dataset; - this.model = dataset.model; - this.fields_view = {}; - this.view_id = view_id; - this.view_type = 'timeline'; - this.color_map = {}; - this.range_start = null; - this.range_stop = null; - this.selected_filters = []; - this.current_window = null; + return this._super.apply(this, arguments); }, get_perm: function(name){ var self = this; var promise = self.permissions[name]; - if(!promise) { - var defer = $.Deferred(); - new instance.web.Model(this.dataset.model) - .call("check_access_rights", [name, false]) - .then(function (value) { - self.permissions[name] = value; - defer.resolve(); - }); - return defer; + if (self.permissions[name]) { + return $.when(self.permissions[name]); } else { - return promise; + return new Model(this.dataset.model) + .call("check_access_rights", [name, false]) + .then(function (value) { + self.permissions[name] = value; + return value; + }); } }, - set_default_options: function(options) { - this._super(options); - _.defaults(this.options, { - confirm_on_delete: true - }); - }, + // set_default_options: function(options) { + // this._super(options); + // _.defaults(this.options, { + // confirm_on_delete: true + // }); + // }, parse_colors: function(){ if(this.fields_view.arch.attrs.colors) { @@ -77,83 +71,72 @@ openerp.web_timeline = function(instance) { } }, - view_loading: function (fv) { - /* xml view timeline options */ - var attrs = fv.arch.attrs; + start: function () { var self = this; - this.fields_view = fv; + var attrs = this.fields_view.arch.attrs; + var fv = this.fields_view; this.parse_colors(); this.$timeline = this.$el.find(".oe_timeline_widget"); - this.$el.find(".oe_timeline_button_today").click(self.on_today_clicked); - this.$el.find(".oe_timeline_button_scale_day").click(self.on_scale_day_clicked); - this.$el.find(".oe_timeline_button_scale_week").click(self.on_scale_week_clicked); - this.$el.find(".oe_timeline_button_scale_month").click(self.on_scale_month_clicked); - this.$el.find(".oe_timeline_button_scale_year").click(self.on_scale_year_clicked); + this.$(".oe_timeline_button_today").click( + this.proxy(this.on_today_clicked)); + this.$(".oe_timeline_button_scale_day").click( + this.proxy(this.on_scale_day_clicked)); + this.$(".oe_timeline_button_scale_week").click( + this.proxy(this.on_scale_week_clicked)); + this.$(".oe_timeline_button_scale_month").click( + this.proxy(this.on_scale_month_clicked)); + this.$(".oe_timeline_button_scale_year").click( + this.proxy(this.on_scale_year_clicked)); this.current_window = { - start: new Date(), - end : new Date().addHours(24), - } + start: new moment(), + end : new moment().add(24, 'hours') + }; + + this.$el.addClass(attrs['class']); + this.info_fields = []; + this.mode = attrs.mode; if (!attrs.date_start) { throw new Error(_t("Timeline view has not defined 'date_start' attribute.")); } - - this.$el.addClass(attrs['class']); - - this.name = fv.name || attrs.string; - this.view_id = fv.view_id; - - this.start = py.eval(attrs.start || 'None', instance.web.pyeval.context()); - this.mode = attrs.mode; // one of month, week or day - this.date_start = attrs.date_start; // Field name of starting - // date field + this.date_start = attrs.date_start; this.date_stop = attrs.date_stop; - + if (!isNullOrUndef(attrs.quick_create_instance)) { self.quick_create_instance = 'instance.' + attrs.quick_create_instance; } - // If this field is set ot true, we don't open the event in form + // If this field is set ot true, we don't open the event in form // view, but in a popup with the view_id passed by this parameter if (isNullOrUndef(attrs.event_open_popup) || !_.str.toBoolElse(attrs.event_open_popup, true)) { this.open_popup_action = false; } else { this.open_popup_action = attrs.event_open_popup; } - + this.fields = fv.fields; for (var fld = 0; fld < fv.arch.children.length; fld++) { this.info_fields.push(fv.arch.children[fld].attrs.name); } - var fields_get = new instance.web.Model(this.dataset.model) - .call('fields_get') - .then(function (fields) { - self.fields = fields; - }); - var unlink_check = new instance.web.Model(this.dataset.model) - .call("check_access_rights", ["unlink", false]) - .then(function (unlink_right) { - self.unlink_right = unlink_right; - }); - var edit_check = new instance.web.Model(this.dataset.model) - .call("check_access_rights", ["write", false]) - .then(function (write_right) { - self.write_right = write_right; - - }); - var init = function () { - self.init_timeline().then(function() { - $(window).trigger('resize'); - self.trigger('timeline_view_loaded', fv); - self.ready.resolve(); + var fields_get = new Model(this.dataset.model) + .call('fields_get') + .then(function (fields) { + self.fields = fields; }); - }; - - var test = $.when(self.fields_get, self.get_perm('unlink'), self.get_perm('write'), self.get_perm('create')); - return $.when(test).then(init); + this._super.apply(this, self); + return $.when( + self.fields_get, + self.get_perm('unlink'), + self.get_perm('write'), + self.get_perm('create') + ).then(function() { + self.init_timeline(); + $(window).trigger('resize'); + self.trigger('timeline_view_loaded', fv); + }); }, init_timeline: function() { @@ -161,10 +144,14 @@ openerp.web_timeline = function(instance) { var options = { groupOrder: self.group_order, editable: { - add: self.permissions['create'], // add new items by double tapping - updateTime: self.permissions['write'], // drag items horizontally - updateGroup: self.permissions['write'], // drag items from one group to another - remove: self.permissions['unlink'], // delete an item by tapping the delete button top right + // add new items by double tapping + add: self.permissions['create'], + // drag items horizontally + updateTime: self.permissions['write'], + // drag items from one group to another + updateGroup: self.permissions['write'], + // delete an item by tapping the delete button top right + remove: self.permissions['unlink'] }, orientation: 'both', selectable: true, @@ -173,17 +160,13 @@ openerp.web_timeline = function(instance) { onMove: self.on_move, onUpdate: self.on_update, onRemove: self.on_remove, - orientation: 'both', - start: self.start, }; self.timeline = new vis.Timeline(self.$timeline.empty().get(0)); self.timeline.setOptions(options); - if(self.mode && self['on_scale_' + self.mode + '_clicked']) - { + if (self.mode && self['on_scale_' + self.mode + '_clicked']) { self['on_scale_' + self.mode + '_clicked'](); } self.timeline.on('click', self.on_click); - return $.when(); }, group_order: function(grp1, grp2) { @@ -195,14 +178,14 @@ openerp.web_timeline = function(instance) { return +1; } return grp1.content - grp2.content; - + }, - /** - * Transform OpenERP event object to timeline event object - */ + /* Transform Odoo event object to timeline event object */ event_data_transform: function(evt) { var self = this; + var date_start = new moment(); + var date_stop = new moment(); var date_delay = evt[this.date_delay] || 1.0, all_day = this.all_day ? evt[this.all_day] : false, @@ -211,19 +194,19 @@ openerp.web_timeline = function(instance) { attendees = []; if (!all_day) { - date_start = instance.web.auto_str_to_date(evt[this.date_start]); - date_stop = this.date_stop ? instance.web.auto_str_to_date(evt[this.date_stop]) : null; + date_start = time.auto_str_to_date(evt[this.date_start]); + date_stop = this.date_stop ? time.auto_str_to_date(evt[this.date_stop]) : null; } else { - date_start = instance.web.auto_str_to_date(evt[this.date_start].split(' ')[0],'start'); - date_stop = this.date_stop ? instance.web.auto_str_to_date(evt[this.date_stop].split(' ')[0],'stop') : null; + date_start = time.auto_str_to_date(evt[this.date_start].split(' ')[0],'start'); + date_stop = this.date_stop ? time.auto_str_to_date(evt[this.date_stop].split(' ')[0],'stop') : null; } - + if (!date_start){ - date_start = new Date(); + date_start = new moment(); } if(!date_stop) { - date_stop = date_start.clone().addHours(date_delay); + date_stop = moment(date_start).add(date_delay, 'hours').toDate(); } var group = evt[self.last_group_bys[0]]; if (group){ @@ -238,17 +221,15 @@ openerp.web_timeline = function(instance) { var r = { 'start': date_start, 'end': date_stop, - 'content': evt.__name, + 'content': evt.__name != undefined ? evt.__name : evt.display_name, 'id': evt.id, 'group': group, 'evt': evt, - 'style': 'background-color: ' + self.color + ';', - + 'style': 'background-color: ' + self.color + ';' }; self.color = undefined; return r; }, - do_search: function (domains, contexts, group_bys) { var self = this; @@ -279,7 +260,6 @@ openerp.web_timeline = function(instance) { }); }, - reload: function() { var self = this; if (this.last_domains !== undefined){ @@ -288,34 +268,34 @@ openerp.web_timeline = function(instance) { } }, - on_data_loaded: function(tasks, group_bys) { + on_data_loaded: function(events, group_bys) { var self = this; - var ids = _.pluck(tasks, "id"); + var ids = _.pluck(events, "id"); return this.dataset.name_get(ids).then(function(names) { - var ntasks = _.map(tasks, function(task) { - return _.extend({__name: _.detect(names, function(name) { return name[0] == task.id; })[1]}, task); + var nevents = _.map(events, function(event) { + return _.extend({__name: _.detect(names, function(name) { return name[0] == event.id; })[1]}, event); }); - return self.on_data_loaded_2(ntasks, group_bys); + return self.on_data_loaded_2(nevents, group_bys); }); }, - on_data_loaded_2: function(tasks, group_bys) { + on_data_loaded_2: function(events, group_bys) { var self = this; var data = []; var groups = []; - _.each(tasks, function(event) { + _.each(events, function(event) { if (event[self.date_start]){ data.push(self.event_data_transform(event)); } }); - // get the groups - var split_groups = function(tasks, group_bys) { + // get the groups + var split_groups = function(events, group_bys) { if (group_bys.length === 0) - return tasks; + return events; var groups = []; groups.push({id:-1, content: _t('-')}) - _.each(tasks, function(task) { - var group_name = task[_.first(group_bys)]; + _.each(events, function(event) { + var group_name = event[_.first(group_bys)]; if (group_name) { var group = _.find(groups, function(group) { return _.isEqual(group.id, group_name[0]); }); if (group === undefined) { @@ -326,10 +306,10 @@ openerp.web_timeline = function(instance) { }); return groups; } - var groups = split_groups(tasks, group_bys); + var groups = split_groups(events, group_bys); this.timeline.setGroups(groups); this.timeline.setItems(data); - this.timeline.setWindow(this.current_window); + this.timeline.fit(); }, do_show: function() { @@ -343,55 +323,46 @@ openerp.web_timeline = function(instance) { } return this._super(action); }, - /** - * Handles a newly created record - * - * @param {id} id of the newly created record - */ - quick_created: function (id) { - - /** - * Note: it's of the most utter importance NOT to use inplace - * modification on this.dataset.ids as reference to this data is - * spread out everywhere in the various widget. Some of these - * reference includes values that should trigger action upon - * modification. - */ + + create_completed: function(id) { + var self = this; this.dataset.ids = this.dataset.ids.concat([id]); this.dataset.trigger("dataset_changed", id); - this.refresh_event(id); + this.dataset.read_ids([id], this.fields).done(function(records) { + var new_event = self.event_data_transform(records[0]); + var items = self.timeline.itemsData; + items.add(new_event); + self.timeline.setItems(items); + }); }, on_add: function(item, callback) { - var self = this, - pop = new instance.web.form.SelectCreatePopup(this), - context = this.get_popup_context(item); - pop.on("elements_selected", self, function(element_ids) { - self.reload().then(function() { - self.timeline.focus(element_ids); - }); - }); - pop.select_element( - self.dataset.model, - { - title: _t("Create"), - initial_view: "form", - }, - null, - context - ); + var self = this; + var context = this.dataset.get_context(); + // Initialize default values for creation + var default_context = {}; + default_context['default_'.concat(this.date_start)] = item.start; + default_context['default_'.concat(this.date_stop)] = moment(item.start).add(1, 'hours').toDate(); + if (item.group > 0) { + default_context['default_'.concat(this.last_group_bys[0])] = item.group; + } + context.add(default_context); + // Show popup + var dialog = new form_common.FormViewDialog(this, { + res_model: this.dataset.model, + res_id: null, + context: context, + view_id: +this.open_popup_action + }).open(); + dialog.on('create_completed', this, this.create_completed); + return false; }, - get_popup_context: function(item) { - var context = {}; - context['default_'.concat(this.date_start)] = item.start; - context['default_'.concat(this.date_stop)] = item.start.clone() - .addHours(this.date_delay || 1); - if(item.group != -1) - { - context['default_'.concat(this.last_group_bys[0])] = item.group; - } - return context; + write_completed: function(id) { + this.dataset.trigger("dataset_changed", id); + this.current_window = this.timeline.getWindow(); + this.reload(); + this.timeline.setWindow(this.current_window); }, on_update: function(item, callback) { @@ -408,47 +379,14 @@ openerp.web_timeline = function(instance) { } } else { - var id_cast = parseInt(id).toString() == id ? parseInt(id) : id; - var pop = new instance.web.form.FormOpenPopup(self); - pop.on('write_completed', self, self.reload); - pop.show_element( - self.dataset.model, - id_cast, - null, - {readonly: true, title: title} - ); - var form_controller = pop.view_form; - form_controller.on("load_record", self, function() { - var footer = pop.$el.closest(".modal").find(".modal-footer"); - footer.find('.oe_form_button_edit,.oe_form_button_save').remove(); - footer.find(".oe_form_button_cancel").prev().remove(); - footer.find('.oe_form_button_cancel').before(" or "); - button_edit = _.str.sprintf("",_t("Edit")); - button_save = _.str.sprintf("",_t("Save")); - footer.prepend(button_edit + button_save); - footer.find('.oe_form_button_save').hide(); - footer.find('.oe_form_button_edit').on('click', function() { - form_controller.to_edit_mode(); - footer.find('.oe_form_button_edit,.oe_form_button_save').toggle(); - }); - footer.find('.oe_form_button_save').on('click', function() { - form_controller.save(); - form_controller.to_view_mode(); - footer.find('.oe_form_button_edit,.oe_form_button_save').toggle(); - }); - var chatter = pop.$el.closest(".modal").find(".oe_chatter"); - if(chatter.length){ - var chatter_toggler = $($.parseHTML(_.str.sprintf('
%s
', _t("Messages")))); - chatter.before(chatter_toggler) - var chatter_content = chatter_toggler.find(".oe_chatter_content"); - chatter_content.prepend(chatter); - chatter_content.toggle(); - chatter_toggler.click(function(){ - chatter_content.toggle(); - chatter_toggler.toggleClass('fa-plus-circle fa-minus-circle'); - }); - } - }); + var dialog = new form_common.FormViewDialog(this, { + res_model: this.dataset.model, + res_id: parseInt(id).toString() == id ? parseInt(id) : id, + context: this.dataset.get_context(), + title: title, + view_id: +this.open_popup_action + }).open(); + dialog.on('write_completed', this, this.write_completed); } return false; }, @@ -463,14 +401,12 @@ openerp.web_timeline = function(instance) { } var data = {}; data[self.fields_view.arch.attrs.date_start] = - instance.web.auto_date_to_str(start, self.fields[self.fields_view.arch.attrs.date_start].type); - data[self.fields_view.arch.attrs.date_stop] = - instance.web.auto_date_to_str(end, self.fields[self.fields_view.arch.attrs.date_stop].type); - data[self.fields_view.arch.attrs.default_group_by] = group; + time.auto_date_to_str(start, self.fields[self.fields_view.arch.attrs.date_start].type); + data[self.fields_view.arch.attrs.date_stop] = + time.auto_date_to_str(end, self.fields[self.fields_view.arch.attrs.date_stop].type); + data[self.fields_view.arch.attrs.default_group_by] = group; var id = item.evt.id; - this.dataset.write(id, data).then(function() { - self.reload(); - }); + this.dataset.write(id, data); }, on_remove: function(item, callback) { @@ -490,15 +426,13 @@ openerp.web_timeline = function(instance) { on_click: function(e) { // handle a click on a group header - if(e.what == 'group-label') - { + if (e.what == 'group-label') { return this.on_group_click(e); } }, on_group_click: function(e) { - if(e.group == -1) - { + if (e.group == -1) { return; } return this.do_action({ @@ -506,59 +440,46 @@ openerp.web_timeline = function(instance) { res_model: this.fields[this.last_group_bys[0]].relation, res_id: e.group, target: 'new', - views: [[false, 'form']], + views: [[false, 'form']] }); }, + scale_current_window: function(factor){ + if (this.timeline){ + this.current_window = this.timeline.getWindow(); + this.current_window.end = moment(this.current_window.start).add(factor, 'hours'); + this.timeline.setWindow(this.current_window); + } + }, + on_today_clicked: function(){ this.current_window = { - start: new Date(), - end : new Date().addHours(24), - } - - if (this.timeline){ - this.timeline.setWindow(this.current_window); - } + start: new moment(), + end : new moment().add(24, 'hours') + }; + + if (this.timeline) { + this.timeline.setWindow(this.current_window); + } + }, + + on_scale_day_clicked: function() { + this.scale_current_window(24); }, - - get_middel_date: function(start, end){ - //Get 1 hour in milliseconds - var one_hour=1000*60*60; - - // Convert both dates to milliseconds - var date1_ms = start.getTime(); - var date2_ms = end.getTime(); - - // Calculate the difference in milliseconds - var difference_ms = date2_ms - date1_ms; - - // Convert back to days and return - nb_hours = Math.round(difference_ms/one_hour); - return start.clone().addHours(nb_hours/2) - }, - - scale_current_window: function(factor){ - if (this.timeline){ - this.current_window = this.timeline.getWindow(); - this.current_window.end = this.current_window.start.clone().addHours(factor); - this.timeline.setWindow(this.current_window); - } - }, - - on_scale_day_clicked: function(){ - this.scale_current_window(24); - }, - - on_scale_week_clicked: function(){ - this.scale_current_window(24 * 7); - }, - - on_scale_month_clicked: function(){ - this.scale_current_window(24 * 30); - }, - on_scale_year_clicked: function(){ - this.scale_current_window(24 * 365); - }, + on_scale_week_clicked: function() { + this.scale_current_window(24 * 7); + }, + + on_scale_month_clicked: function() { + this.scale_current_window(24 * 30); + }, + + on_scale_year_clicked: function() { + this.scale_current_window(24 * 365); + } }); -}; + + core.view_registry.add('timeline', TimelineView); + return TimelineView; +}); diff --git a/web_timeline/views/web_timeline.xml b/web_timeline/views/web_timeline.xml index 4291e25a657d..95f6367aae44 100644 --- a/web_timeline/views/web_timeline.xml +++ b/web_timeline/views/web_timeline.xml @@ -1,16 +1,14 @@ - - - - - - +
From 8a94d691127f4bb2c287c49fbca94fc2c978cde1 Mon Sep 17 00:00:00 2001 From: Ediz Duman Date: Mon, 6 Mar 2023 18:53:16 +0000 Subject: [PATCH 179/218] Added translation using Weblate (Turkish) --- web_chatter_position/i18n/tr.po | 42 +++++++++++++++++++++++++++++++++ 1 file changed, 42 insertions(+) create mode 100644 web_chatter_position/i18n/tr.po diff --git a/web_chatter_position/i18n/tr.po b/web_chatter_position/i18n/tr.po new file mode 100644 index 000000000000..82517e292985 --- /dev/null +++ b/web_chatter_position/i18n/tr.po @@ -0,0 +1,42 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * web_chatter_position +# +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 16.0\n" +"Report-Msgid-Bugs-To: \n" +"PO-Revision-Date: 2023-03-06 20:08+0000\n" +"Last-Translator: Ediz Duman \n" +"Language-Team: none\n" +"Language: tr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: \n" +"Plural-Forms: nplurals=2; plural=n != 1;\n" +"X-Generator: Weblate 4.14.1\n" + +#. module: web_chatter_position +#: model:ir.model.fields.selection,name:web_chatter_position.selection__res_users__chatter_position__bottom +msgid "Bottom" +msgstr "Alt" + +#. module: web_chatter_position +#: model:ir.model.fields,field_description:web_chatter_position.field_res_users__chatter_position +msgid "Chatter Position" +msgstr "Sohbet Pozisyonu" + +#. module: web_chatter_position +#: model:ir.model.fields.selection,name:web_chatter_position.selection__res_users__chatter_position__auto +msgid "Responsive" +msgstr "Esnek" + +#. module: web_chatter_position +#: model:ir.model.fields.selection,name:web_chatter_position.selection__res_users__chatter_position__sided +msgid "Sided" +msgstr "" + +#. module: web_chatter_position +#: model:ir.model,name:web_chatter_position.model_res_users +msgid "User" +msgstr "Kullanıcı" From 6a1911f4c52d995efbf6a5629e1a2124f97f6b76 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=A9mi?= Date: Mon, 13 Mar 2023 11:28:08 +0000 Subject: [PATCH 180/218] Added translation using Weblate (French) --- web_chatter_position/i18n/fr.po | 42 +++++++++++++++++++++++++++++++++ 1 file changed, 42 insertions(+) create mode 100644 web_chatter_position/i18n/fr.po diff --git a/web_chatter_position/i18n/fr.po b/web_chatter_position/i18n/fr.po new file mode 100644 index 000000000000..3e1076c82061 --- /dev/null +++ b/web_chatter_position/i18n/fr.po @@ -0,0 +1,42 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * web_chatter_position +# +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 16.0\n" +"Report-Msgid-Bugs-To: \n" +"PO-Revision-Date: 2023-03-13 14:23+0000\n" +"Last-Translator: Rémi \n" +"Language-Team: none\n" +"Language: fr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: \n" +"Plural-Forms: nplurals=2; plural=n > 1;\n" +"X-Generator: Weblate 4.14.1\n" + +#. module: web_chatter_position +#: model:ir.model.fields.selection,name:web_chatter_position.selection__res_users__chatter_position__bottom +msgid "Bottom" +msgstr "En bas" + +#. module: web_chatter_position +#: model:ir.model.fields,field_description:web_chatter_position.field_res_users__chatter_position +msgid "Chatter Position" +msgstr "Position du Chatter" + +#. module: web_chatter_position +#: model:ir.model.fields.selection,name:web_chatter_position.selection__res_users__chatter_position__auto +msgid "Responsive" +msgstr "Automatique" + +#. module: web_chatter_position +#: model:ir.model.fields.selection,name:web_chatter_position.selection__res_users__chatter_position__sided +msgid "Sided" +msgstr "A droite" + +#. module: web_chatter_position +#: model:ir.model,name:web_chatter_position.model_res_users +msgid "User" +msgstr "Utilisateur" From 9a83798e910143a9cf41f3fe829c29d35ce65bb8 Mon Sep 17 00:00:00 2001 From: Bole Date: Mon, 3 Apr 2023 10:53:13 +0000 Subject: [PATCH 181/218] Added translation using Weblate (Croatian) --- web_chatter_position/i18n/hr.po | 43 +++++++++++++++++++++++++++++++++ 1 file changed, 43 insertions(+) create mode 100644 web_chatter_position/i18n/hr.po diff --git a/web_chatter_position/i18n/hr.po b/web_chatter_position/i18n/hr.po new file mode 100644 index 000000000000..1cd041315cc5 --- /dev/null +++ b/web_chatter_position/i18n/hr.po @@ -0,0 +1,43 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * web_chatter_position +# +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 16.0\n" +"Report-Msgid-Bugs-To: \n" +"PO-Revision-Date: 2023-04-03 13:22+0000\n" +"Last-Translator: Bole \n" +"Language-Team: none\n" +"Language: hr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: \n" +"Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && n" +"%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n" +"X-Generator: Weblate 4.14.1\n" + +#. module: web_chatter_position +#: model:ir.model.fields.selection,name:web_chatter_position.selection__res_users__chatter_position__bottom +msgid "Bottom" +msgstr "Na dnu" + +#. module: web_chatter_position +#: model:ir.model.fields,field_description:web_chatter_position.field_res_users__chatter_position +msgid "Chatter Position" +msgstr "Pozicija razgovora" + +#. module: web_chatter_position +#: model:ir.model.fields.selection,name:web_chatter_position.selection__res_users__chatter_position__auto +msgid "Responsive" +msgstr "Responzivno" + +#. module: web_chatter_position +#: model:ir.model.fields.selection,name:web_chatter_position.selection__res_users__chatter_position__sided +msgid "Sided" +msgstr "Sa strane" + +#. module: web_chatter_position +#: model:ir.model,name:web_chatter_position.model_res_users +msgid "User" +msgstr "Korisnik" From d80197c0f470aad970366a29b72a3ba736c3a8ea Mon Sep 17 00:00:00 2001 From: kikopeiro Date: Thu, 20 Jul 2023 07:35:21 +0000 Subject: [PATCH 182/218] Added translation using Weblate (Spanish) --- web_chatter_position/i18n/es.po | 42 +++++++++++++++++++++++++++++++++ 1 file changed, 42 insertions(+) create mode 100644 web_chatter_position/i18n/es.po diff --git a/web_chatter_position/i18n/es.po b/web_chatter_position/i18n/es.po new file mode 100644 index 000000000000..b617d1100827 --- /dev/null +++ b/web_chatter_position/i18n/es.po @@ -0,0 +1,42 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * web_chatter_position +# +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 16.0\n" +"Report-Msgid-Bugs-To: \n" +"PO-Revision-Date: 2023-07-20 10:15+0000\n" +"Last-Translator: kikopeiro \n" +"Language-Team: none\n" +"Language: es\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: \n" +"Plural-Forms: nplurals=2; plural=n != 1;\n" +"X-Generator: Weblate 4.17\n" + +#. module: web_chatter_position +#: model:ir.model.fields.selection,name:web_chatter_position.selection__res_users__chatter_position__bottom +msgid "Bottom" +msgstr "Abajo" + +#. module: web_chatter_position +#: model:ir.model.fields,field_description:web_chatter_position.field_res_users__chatter_position +msgid "Chatter Position" +msgstr "Posición del historial de comunicación" + +#. module: web_chatter_position +#: model:ir.model.fields.selection,name:web_chatter_position.selection__res_users__chatter_position__auto +msgid "Responsive" +msgstr "Adaptativo" + +#. module: web_chatter_position +#: model:ir.model.fields.selection,name:web_chatter_position.selection__res_users__chatter_position__sided +msgid "Sided" +msgstr "Lateral" + +#. module: web_chatter_position +#: model:ir.model,name:web_chatter_position.model_res_users +msgid "User" +msgstr "Usuario" From 2ea07f67611f52f14622d37514df18d4df938d78 Mon Sep 17 00:00:00 2001 From: Jose Montero Date: Tue, 25 Jul 2023 01:38:31 +0200 Subject: [PATCH 183/218] Fixed JS assuming "o_form_sheet_bg" is always found --- web_chatter_position/static/src/js/web_chatter_position.esm.js | 3 +++ 1 file changed, 3 insertions(+) diff --git a/web_chatter_position/static/src/js/web_chatter_position.esm.js b/web_chatter_position/static/src/js/web_chatter_position.esm.js index 3c648ce0f886..6e323db077ee 100644 --- a/web_chatter_position/static/src/js/web_chatter_position.esm.js +++ b/web_chatter_position/static/src/js/web_chatter_position.esm.js @@ -126,6 +126,9 @@ patch(FormCompiler.prototype, "web_chatter_position", { chatterContainerHookXml.setAttribute("t-if", false); } else { const formSheetBgXml = res.querySelector(".o_form_sheet_bg"); + if (!formSheetBgXml) { + return res; + } const sheetBgChatterContainerHookXml = chatterContainerHookXml.cloneNode(true); sheetBgChatterContainerHookXml.classList.add("o-isInFormSheetBg"); From a9fe1192ad7be39db58359aa393e48e1ce389b55 Mon Sep 17 00:00:00 2001 From: "Jan Tapper [Onestein]" Date: Mon, 7 Aug 2023 13:35:22 +0000 Subject: [PATCH 184/218] Added translation using Weblate (Dutch) --- web_chatter_position/README.rst | 15 ++++--- web_chatter_position/__manifest__.py | 2 +- web_chatter_position/i18n/nl.po | 42 +++++++++++++++++++ .../static/description/index.html | 38 +++++++++-------- 4 files changed, 72 insertions(+), 25 deletions(-) create mode 100644 web_chatter_position/i18n/nl.po diff --git a/web_chatter_position/README.rst b/web_chatter_position/README.rst index 498ffa83bcae..fa584e705ae3 100644 --- a/web_chatter_position/README.rst +++ b/web_chatter_position/README.rst @@ -2,10 +2,13 @@ Chatter Position ================ -.. !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! +.. + !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! !! This file is generated by oca-gen-addon-readme !! !! changes will be overwritten. !! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! + !! source digest: sha256:5d3f60eeecdac91c06a5eefec0c19386e9913235723472b54a3dd73cf4aac596 + !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! .. |badge1| image:: https://img.shields.io/badge/maturity-Beta-yellow.png :target: https://odoo-community.org/page/development-status @@ -19,11 +22,11 @@ Chatter Position .. |badge4| image:: https://img.shields.io/badge/weblate-Translate%20me-F47D42.png :target: https://translation.odoo-community.org/projects/web-16-0/web-16-0-web_chatter_position :alt: Translate me on Weblate -.. |badge5| image:: https://img.shields.io/badge/runbot-Try%20me-875A7B.png - :target: https://runbot.odoo-community.org/runbot/162/16.0 - :alt: Try me on Runbot +.. |badge5| image:: https://img.shields.io/badge/runboat-Try%20me-875A7B.png + :target: https://runboat.odoo-community.org/builds?repo=OCA/web&target_branch=16.0 + :alt: Try me on Runboat -|badge1| |badge2| |badge3| |badge4| |badge5| +|badge1| |badge2| |badge3| |badge4| |badge5| Configurable chatter position from the user preferences. @@ -45,7 +48,7 @@ Bug Tracker Bugs are tracked on `GitHub Issues `_. In case of trouble, please check there if your issue has already been reported. -If you spotted it first, help us smashing it by providing a detailed and welcomed +If you spotted it first, help us to smash it by providing a detailed and welcomed `feedback `_. Do not contact contributors directly about support or help with technical issues. diff --git a/web_chatter_position/__manifest__.py b/web_chatter_position/__manifest__.py index 2fbc833b0a45..763e36cf4d07 100644 --- a/web_chatter_position/__manifest__.py +++ b/web_chatter_position/__manifest__.py @@ -4,7 +4,7 @@ { "name": "Chatter Position", "summary": "Add an option to change the chatter position", - "version": "16.0.1.0.0", + "version": "16.0.1.0.1", "author": "Hynsys Technologies, Camptocamp, Odoo Community Association (OCA)", "website": "https://github.com/OCA/web", "license": "LGPL-3", diff --git a/web_chatter_position/i18n/nl.po b/web_chatter_position/i18n/nl.po new file mode 100644 index 000000000000..4754101653d0 --- /dev/null +++ b/web_chatter_position/i18n/nl.po @@ -0,0 +1,42 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * web_chatter_position +# +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 16.0\n" +"Report-Msgid-Bugs-To: \n" +"PO-Revision-Date: 2023-08-07 16:10+0000\n" +"Last-Translator: \"Jan Tapper [Onestein]\" \n" +"Language-Team: none\n" +"Language: nl\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: \n" +"Plural-Forms: nplurals=2; plural=n != 1;\n" +"X-Generator: Weblate 4.17\n" + +#. module: web_chatter_position +#: model:ir.model.fields.selection,name:web_chatter_position.selection__res_users__chatter_position__bottom +msgid "Bottom" +msgstr "Onderkant" + +#. module: web_chatter_position +#: model:ir.model.fields,field_description:web_chatter_position.field_res_users__chatter_position +msgid "Chatter Position" +msgstr "Chatter-positie" + +#. module: web_chatter_position +#: model:ir.model.fields.selection,name:web_chatter_position.selection__res_users__chatter_position__auto +msgid "Responsive" +msgstr "Snel reagerend" + +#. module: web_chatter_position +#: model:ir.model.fields.selection,name:web_chatter_position.selection__res_users__chatter_position__sided +msgid "Sided" +msgstr "Zijdelings" + +#. module: web_chatter_position +#: model:ir.model,name:web_chatter_position.model_res_users +msgid "User" +msgstr "Gebruiker" diff --git a/web_chatter_position/static/description/index.html b/web_chatter_position/static/description/index.html index 2605c74c2730..fac0d24defc1 100644 --- a/web_chatter_position/static/description/index.html +++ b/web_chatter_position/static/description/index.html @@ -1,20 +1,20 @@ - + - + Chatter Position -
-

Chatter Position

+
+ + +Odoo Community Association + +
+

Chatter Position

-

Beta License: LGPL-3 OCA/web Translate me on Weblate Try me on Runboat

+

Beta License: LGPL-3 OCA/web Translate me on Weblate Try me on Runboat

Configurable chatter position from the user preferences.

Supports Both Community & Enterprise Edition.

Extends the functionality of the web client to get full width in the @@ -388,22 +393,22 @@

Chatter Position

-

Usage

+

Usage

#. There’s a Chatter Position option in User Preferences, where you can choose between auto, bottom and sided.

-

Bug Tracker

+

Bug Tracker

Bugs are tracked on GitHub Issues. In case of trouble, please check there if your issue has already been reported. If you spotted it first, help us to smash it by providing a detailed and welcomed -feedback.

+feedback.

Do not contact contributors directly about support or help with technical issues.

-

Credits

+

Credits

-

Authors

+

Authors

  • Hynsys Technologies
  • Camptocamp
  • @@ -411,7 +416,7 @@

    Authors

-

Contributors

+

Contributors

+
  • Heliconia Solutions Pvt. Ltd.
      +
    • Bhavesh Heliconia
    • +
    +
  • -

    Maintainers

    +

    Maintainers

    This module is maintained by the OCA.

    Odoo Community Association @@ -440,10 +449,11 @@

    Maintainers

    promote its widespread use.

    Current maintainer:

    trisdoan

    -

    This module is part of the OCA/web project on GitHub.

    +

    This module is part of the OCA/web project on GitHub.

    You are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute.

    +
    diff --git a/web_chatter_position/static/src/js/web_chatter_position.esm.js b/web_chatter_position/static/src/js/web_chatter_position.esm.js index 214705d3368c..d332d1e3aa20 100644 --- a/web_chatter_position/static/src/js/web_chatter_position.esm.js +++ b/web_chatter_position/static/src/js/web_chatter_position.esm.js @@ -24,10 +24,6 @@ patch(FormCompiler.prototype, { // No chatter, keep the result as it is return res; } - const chatterContainerXml = chatterContainerHookXml.querySelector( - "t[t-component='__comp__.mailComponents.Chatter']" - ); - // Const chatterParent = chatterContainerXml.parentNode; const formSheetBgXml = res.querySelector(".o_form_sheet_bg"); const parentXml = formSheetBgXml && formSheetBgXml.parentNode; if (!parentXml) { @@ -40,17 +36,6 @@ patch(FormCompiler.prototype, { return res; // For "sided", we have to remote the bottom chatter // (except if there is an attachment viewer, as we have to force bottom) - } else if (odoo.web_chatter_position === "sided") { - setAttributes(chatterContainerXml, { - isInFormSheetBg: `__comp__.uiService.size < ${SIZES.XXL}`, - isChatterAside: `__comp__.uiService.size >= ${SIZES.XXL}`, - }); - setAttributes(chatterContainerHookXml, { - class: "o-mail-ChatterContainer o-mail-Form-chatter o-aside w-print-100", - }); - // For "bottom", we keep the chatter in the form sheet - // (the one used for the attachment viewer case) - // If it's not there, we create it. } else if (odoo.web_chatter_position === "bottom") { // Force full width form view if chatter is set to bottom manually formSheetBgXml.classList.add("o_fullwidth"); @@ -75,14 +60,6 @@ patch(FormCompiler.prototype, { }) ? "o-aside" : "mt-4 mt-md-0" }}`, }); append(formSheetBgXml, sheetBgChatterContainerHookXml); - const sheetBgChatterContainerXml = - sheetBgChatterContainerHookXml.querySelector( - "t[t-component='__comp__.mailComponents.Chatter']" - ); - - setAttributes(sheetBgChatterContainerXml, { - isInFormSheetBg: "true", - }); setAttributes(chatterContainerHookXml, { "t-if": "false", }); diff --git a/web_chatter_position/views/res_users.xml b/web_chatter_position/views/res_users.xml index 0cf19ea22b8b..583eb9f31436 100644 --- a/web_chatter_position/views/res_users.xml +++ b/web_chatter_position/views/res_users.xml @@ -4,7 +4,7 @@ res.users - + From bfdf87ecc6ece9e918e4774d108ad000240656c4 Mon Sep 17 00:00:00 2001 From: oca-ci Date: Tue, 9 Jun 2026 09:12:15 +0000 Subject: [PATCH 198/218] [UPD] Update web_chatter_position.pot --- web_chatter_position/i18n/web_chatter_position.pot | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/web_chatter_position/i18n/web_chatter_position.pot b/web_chatter_position/i18n/web_chatter_position.pot index 325998ef5264..c5c6cf212de3 100644 --- a/web_chatter_position/i18n/web_chatter_position.pot +++ b/web_chatter_position/i18n/web_chatter_position.pot @@ -4,7 +4,7 @@ # msgid "" msgstr "" -"Project-Id-Version: Odoo Server 18.0\n" +"Project-Id-Version: Odoo Server 19.0\n" "Report-Msgid-Bugs-To: \n" "Last-Translator: \n" "Language-Team: \n" @@ -23,6 +23,16 @@ msgstr "" msgid "Chatter Position" msgstr "" +#. module: web_chatter_position +#: model:ir.model.fields,field_description:web_chatter_position.field_res_users__display_name +msgid "Display Name" +msgstr "" + +#. module: web_chatter_position +#: model:ir.model.fields,field_description:web_chatter_position.field_res_users__id +msgid "ID" +msgstr "" + #. module: web_chatter_position #: model:ir.model.fields.selection,name:web_chatter_position.selection__res_users__chatter_position__auto msgid "Responsive" From a3672b29de8e64f7d239dac60107675c0c016591 Mon Sep 17 00:00:00 2001 From: OCA-git-bot Date: Tue, 9 Jun 2026 09:15:57 +0000 Subject: [PATCH 199/218] [BOT] post-merge updates --- README.md | 1 + setup/_metapackage/pyproject.toml | 3 ++- web_chatter_position/README.rst | 2 +- web_chatter_position/static/description/index.html | 2 +- 4 files changed, 5 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index 95366ad9a42b..b27b102d96d9 100644 --- a/README.md +++ b/README.md @@ -22,6 +22,7 @@ Available addons addon | version | maintainers | summary --- | --- | --- | --- [web_calendar_slot_duration](web_calendar_slot_duration/) | 19.0.1.0.0 | Yajo | Customizable calendar slot durations +[web_chatter_position](web_chatter_position/) | 19.0.1.0.0 | trisdoan | Add an option to change the chatter position [web_dark_mode](web_dark_mode/) | 19.0.1.0.0 | | Enabled Dark Mode for the Odoo Backend [web_date_format_numeric](web_date_format_numeric/) | 19.0.1.0.0 | | Display all date/datetime fields in numeric format [web_dialog_size](web_dialog_size/) | 19.0.1.0.0 | | A module that lets the user expand a dialog box to the full screen width. diff --git a/setup/_metapackage/pyproject.toml b/setup/_metapackage/pyproject.toml index 8d80714ea41b..f9cb4d96f309 100644 --- a/setup/_metapackage/pyproject.toml +++ b/setup/_metapackage/pyproject.toml @@ -1,8 +1,9 @@ [project] name = "odoo-addons-oca-web" -version = "19.0.20260601.0" +version = "19.0.20260609.0" dependencies = [ "odoo-addon-web_calendar_slot_duration==19.0.*", + "odoo-addon-web_chatter_position==19.0.*", "odoo-addon-web_dark_mode==19.0.*", "odoo-addon-web_date_format_numeric==19.0.*", "odoo-addon-web_dialog_size==19.0.*", diff --git a/web_chatter_position/README.rst b/web_chatter_position/README.rst index 5871e58eba78..ea02f243ad96 100644 --- a/web_chatter_position/README.rst +++ b/web_chatter_position/README.rst @@ -11,7 +11,7 @@ Chatter Position !! This file is generated by oca-gen-addon-readme !! !! changes will be overwritten. !! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! - !! source digest: sha256:e33413122157ba2ff757406238003dd54b6addf92731eec4bce8bfcb899309c9 + !! source digest: sha256:83e45f7147e5ef37d3b63106b80b6dd4e5820a1f32f3b4b308c400cca0cfc21e !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! .. |badge1| image:: https://img.shields.io/badge/maturity-Beta-yellow.png diff --git a/web_chatter_position/static/description/index.html b/web_chatter_position/static/description/index.html index bb580fe87f8b..e0edde707086 100644 --- a/web_chatter_position/static/description/index.html +++ b/web_chatter_position/static/description/index.html @@ -372,7 +372,7 @@

    Chatter Position

    !! This file is generated by oca-gen-addon-readme !! !! changes will be overwritten. !! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! -!! source digest: sha256:e33413122157ba2ff757406238003dd54b6addf92731eec4bce8bfcb899309c9 +!! source digest: sha256:83e45f7147e5ef37d3b63106b80b6dd4e5820a1f32f3b4b308c400cca0cfc21e !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! -->

    Beta License: LGPL-3 OCA/web Translate me on Weblate Try me on Runboat

    Configurable chatter position from the user preferences.

    From a4f519d3762c8446b953b864ebfd217e7101283d Mon Sep 17 00:00:00 2001 From: oca-ci Date: Wed, 10 Jun 2026 07:18:33 +0000 Subject: [PATCH 200/218] [UPD] Update web_widget_product_label_section_and_note_name_visibility.pot --- ...eb_widget_product_label_section_and_note_name_visibility.pot | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/web_widget_product_label_section_and_note_name_visibility/i18n/web_widget_product_label_section_and_note_name_visibility.pot b/web_widget_product_label_section_and_note_name_visibility/i18n/web_widget_product_label_section_and_note_name_visibility.pot index e15f86c1c61f..8da45a59f8c8 100644 --- a/web_widget_product_label_section_and_note_name_visibility/i18n/web_widget_product_label_section_and_note_name_visibility.pot +++ b/web_widget_product_label_section_and_note_name_visibility/i18n/web_widget_product_label_section_and_note_name_visibility.pot @@ -4,7 +4,7 @@ # msgid "" msgstr "" -"Project-Id-Version: Odoo Server 18.0\n" +"Project-Id-Version: Odoo Server 19.0\n" "Report-Msgid-Bugs-To: \n" "Last-Translator: \n" "Language-Team: \n" From e1a6026b30c3b59aa290b5b39e09af59059a7e3c Mon Sep 17 00:00:00 2001 From: OCA-git-bot Date: Wed, 10 Jun 2026 07:22:00 +0000 Subject: [PATCH 201/218] [BOT] post-merge updates --- README.md | 1 + setup/_metapackage/pyproject.toml | 3 ++- .../README.rst | 2 +- .../static/description/index.html | 2 +- 4 files changed, 5 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index b27b102d96d9..0a25acc4ee4c 100644 --- a/README.md +++ b/README.md @@ -43,6 +43,7 @@ addon | version | maintainers | summary [web_tree_many2one_clickable](web_tree_many2one_clickable/) | 19.0.1.0.0 | | Open the linked resource when clicking on their name [web_widget_bokeh_chart](web_widget_bokeh_chart/) | 19.0.1.0.1 | LoisRForgeFlow JasminSForgeFlow | This widget allows to display charts using Bokeh library. [web_widget_product_label_section_and_note_full_label](web_widget_product_label_section_and_note_full_label/) | 19.0.1.0.0 | | Display the full label in the product_label_section_and_note widget. +[web_widget_product_label_section_and_note_name_visibility](web_widget_product_label_section_and_note_name_visibility/) | 19.0.1.0.0 | carlos-lopez-tecnativa | Alternate the visibility of the product and description. [//]: # (end addons) diff --git a/setup/_metapackage/pyproject.toml b/setup/_metapackage/pyproject.toml index f9cb4d96f309..cdbd73fa2109 100644 --- a/setup/_metapackage/pyproject.toml +++ b/setup/_metapackage/pyproject.toml @@ -1,6 +1,6 @@ [project] name = "odoo-addons-oca-web" -version = "19.0.20260609.0" +version = "19.0.20260610.0" dependencies = [ "odoo-addon-web_calendar_slot_duration==19.0.*", "odoo-addon-web_chatter_position==19.0.*", @@ -24,6 +24,7 @@ dependencies = [ "odoo-addon-web_tree_many2one_clickable==19.0.*", "odoo-addon-web_widget_bokeh_chart==19.0.*", "odoo-addon-web_widget_product_label_section_and_note_full_label==19.0.*", + "odoo-addon-web_widget_product_label_section_and_note_name_visibility==19.0.*", ] classifiers=[ "Programming Language :: Python", diff --git a/web_widget_product_label_section_and_note_name_visibility/README.rst b/web_widget_product_label_section_and_note_name_visibility/README.rst index f386f18bbe59..7a33dd2e760a 100644 --- a/web_widget_product_label_section_and_note_name_visibility/README.rst +++ b/web_widget_product_label_section_and_note_name_visibility/README.rst @@ -11,7 +11,7 @@ Web widget product label section and note !! This file is generated by oca-gen-addon-readme !! !! changes will be overwritten. !! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! - !! source digest: sha256:4c8ff177dd08e3c63b37a6d3912b38e75ea786c15250679acf3b73e4460e7b07 + !! source digest: sha256:5150b92f7174597e5d029dbd4e84276395ab2a46c1ee8e76871602fc90a1cd35 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! .. |badge1| image:: https://img.shields.io/badge/maturity-Beta-yellow.png diff --git a/web_widget_product_label_section_and_note_name_visibility/static/description/index.html b/web_widget_product_label_section_and_note_name_visibility/static/description/index.html index cd9396de4049..4d7044e594f1 100644 --- a/web_widget_product_label_section_and_note_name_visibility/static/description/index.html +++ b/web_widget_product_label_section_and_note_name_visibility/static/description/index.html @@ -372,7 +372,7 @@

    Web widget product label section and note

    !! This file is generated by oca-gen-addon-readme !! !! changes will be overwritten. !! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! -!! source digest: sha256:4c8ff177dd08e3c63b37a6d3912b38e75ea786c15250679acf3b73e4460e7b07 +!! source digest: sha256:5150b92f7174597e5d029dbd4e84276395ab2a46c1ee8e76871602fc90a1cd35 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! -->

    Beta License: AGPL-3 OCA/web Translate me on Weblate Try me on Runboat

    This module extends the Odoo feature introduced in V18 to allow the user From 1efe30a5641371b26d5cc0a88b4fc80d97564b0a Mon Sep 17 00:00:00 2001 From: dufresnedavid Date: Tue, 20 Dec 2016 18:23:36 -0500 Subject: [PATCH 202/218] [10.0] Add module web_no_bubble --- web_no_bubble/README.rst | 50 ++++++++++++++++++ web_no_bubble/__init__.py | 3 ++ web_no_bubble/__manifest__.py | 23 ++++++++ web_no_bubble/static/description/icon.png | Bin 0 -> 9455 bytes .../static/src/css/web_no_bubble.css | 3 ++ web_no_bubble/views/web_no_bubble.xml | 10 ++++ 6 files changed, 89 insertions(+) create mode 100644 web_no_bubble/README.rst create mode 100644 web_no_bubble/__init__.py create mode 100644 web_no_bubble/__manifest__.py create mode 100644 web_no_bubble/static/description/icon.png create mode 100644 web_no_bubble/static/src/css/web_no_bubble.css create mode 100644 web_no_bubble/views/web_no_bubble.xml diff --git a/web_no_bubble/README.rst b/web_no_bubble/README.rst new file mode 100644 index 000000000000..04ca99ecfb68 --- /dev/null +++ b/web_no_bubble/README.rst @@ -0,0 +1,50 @@ +.. image:: https://img.shields.io/badge/licence-AGPL--3-blue.svg + :target: http://www.gnu.org/licenses/agpl-3.0-standalone.html + :alt: License: AGPL-3 + +============= +Web No Bubble +============= + +This module removes from the web interface the bubbles introduced in the version 10.0. +The help boxes are not removed though. + +.. image:: https://odoo-community.org/website/image/ir.attachment/5784_f2813bd/datas + :alt: Try me on Runbot + :target: https://runbot.odoo-community.org/runbot/162/10.0 + +Bug Tracker +=========== + +Bugs are tracked on `GitHub Issues +`_. In case of trouble, please +check there if your issue has already been reported. If you spotted it first, +help us smashing it by providing a detailed and welcomed feedback. + +Credits +======= + +Images +------ + +* Odoo Community Association: `Icon `_. + +Contributors +------------ + +* David Dufresne (david.dufresne@savoirfairelinux.com) + +Maintainer +---------- + +.. image:: https://odoo-community.org/logo.png + :alt: Odoo Community Association + :target: https://odoo-community.org + +This module is maintained by the OCA. + +OCA, or the Odoo Community Association, is a nonprofit organization whose +mission is to support the collaborative development of Odoo features and +promote its widespread use. + +To contribute to this module, please visit https://odoo-community.org. \ No newline at end of file diff --git a/web_no_bubble/__init__.py b/web_no_bubble/__init__.py new file mode 100644 index 000000000000..bdac23ab9454 --- /dev/null +++ b/web_no_bubble/__init__.py @@ -0,0 +1,3 @@ +# -*- coding: utf-8 -*- +# © 2016 Savoir-faire Linux +# License LGPL-3.0 or later (http://www.gnu.org/licenses/lgpl). diff --git a/web_no_bubble/__manifest__.py b/web_no_bubble/__manifest__.py new file mode 100644 index 000000000000..103b3d08698a --- /dev/null +++ b/web_no_bubble/__manifest__.py @@ -0,0 +1,23 @@ +# -*- coding: utf-8 -*- +# © 2016 Savoir-faire Linux +# License LGPL-3.0 or later (http://www.gnu.org/licenses/lgpl). + +{ + 'name': 'Web No Bubble', + 'version': '10.0.1.0.0', + 'author': 'Savoir-faire Linux', + 'maintainer': ( + 'Savoir-faire Linux,' + 'Odoo Community Association (OCA)' + ), + 'website': 'https://www.savoirfairelinux.com', + 'license': 'AGPL-3', + 'category': 'Web', + 'summary': 'Remove the bubbles from the web interface', + 'depends': ['web'], + 'data': [ + 'views/web_no_bubble.xml', + ], + 'installable': True, + 'application': False, +} diff --git a/web_no_bubble/static/description/icon.png b/web_no_bubble/static/description/icon.png new file mode 100644 index 0000000000000000000000000000000000000000..3a0328b516c4980e8e44cdb63fd945757ddd132d GIT binary patch literal 9455 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 z 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 Xviia!U7SGha1wx#SCgwmn*{w2TRX*I literal 0 HcmV?d00001 diff --git a/web_no_bubble/static/src/css/web_no_bubble.css b/web_no_bubble/static/src/css/web_no_bubble.css new file mode 100644 index 000000000000..d878e58cdc29 --- /dev/null +++ b/web_no_bubble/static/src/css/web_no_bubble.css @@ -0,0 +1,3 @@ +.o_tooltip.o_animated { + display: none; +} diff --git a/web_no_bubble/views/web_no_bubble.xml b/web_no_bubble/views/web_no_bubble.xml new file mode 100644 index 000000000000..d10c7793fd05 --- /dev/null +++ b/web_no_bubble/views/web_no_bubble.xml @@ -0,0 +1,10 @@ + + + + + + From 05046b09bf0b5c16645fa2aff4b06ad6097afc57 Mon Sep 17 00:00:00 2001 From: oihane Date: Thu, 19 Oct 2017 15:00:02 +0200 Subject: [PATCH 203/218] [MIG] web_no_bubble: Migration to 11.0 --- web_no_bubble/README.rst | 2 +- web_no_bubble/__manifest__.py | 11 ++++------- web_no_bubble/i18n/web_no_bubble.pot | 14 ++++++++++++++ web_no_bubble/views/web_no_bubble.xml | 4 ++-- 4 files changed, 21 insertions(+), 10 deletions(-) create mode 100644 web_no_bubble/i18n/web_no_bubble.pot diff --git a/web_no_bubble/README.rst b/web_no_bubble/README.rst index 04ca99ecfb68..8622baaa78c2 100644 --- a/web_no_bubble/README.rst +++ b/web_no_bubble/README.rst @@ -11,7 +11,7 @@ The help boxes are not removed though. .. image:: https://odoo-community.org/website/image/ir.attachment/5784_f2813bd/datas :alt: Try me on Runbot - :target: https://runbot.odoo-community.org/runbot/162/10.0 + :target: https://runbot.odoo-community.org/runbot/162/11.0 Bug Tracker =========== diff --git a/web_no_bubble/__manifest__.py b/web_no_bubble/__manifest__.py index 103b3d08698a..1d2774eeb27f 100644 --- a/web_no_bubble/__manifest__.py +++ b/web_no_bubble/__manifest__.py @@ -4,13 +4,10 @@ { 'name': 'Web No Bubble', - 'version': '10.0.1.0.0', - 'author': 'Savoir-faire Linux', - 'maintainer': ( - 'Savoir-faire Linux,' - 'Odoo Community Association (OCA)' - ), - 'website': 'https://www.savoirfairelinux.com', + 'version': '11.0.1.0.0', + 'author': 'Savoir-faire Linux, ' + 'Odoo Community Association (OCA)', + 'website': 'https://github.com/OCA/web', 'license': 'AGPL-3', 'category': 'Web', 'summary': 'Remove the bubbles from the web interface', diff --git a/web_no_bubble/i18n/web_no_bubble.pot b/web_no_bubble/i18n/web_no_bubble.pot new file mode 100644 index 000000000000..447d3bb3ca4c --- /dev/null +++ b/web_no_bubble/i18n/web_no_bubble.pot @@ -0,0 +1,14 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 11.0\n" +"Report-Msgid-Bugs-To: \n" +"Last-Translator: <>\n" +"Language-Team: \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: \n" +"Plural-Forms: \n" + diff --git a/web_no_bubble/views/web_no_bubble.xml b/web_no_bubble/views/web_no_bubble.xml index d10c7793fd05..9c9c3bef54fe 100644 --- a/web_no_bubble/views/web_no_bubble.xml +++ b/web_no_bubble/views/web_no_bubble.xml @@ -1,5 +1,5 @@ - + - + From f9148e869eb662d13d94a19188123ffc0670ad93 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Alexandre=20D=C3=ADaz?= Date: Wed, 19 Jun 2019 19:55:23 +0200 Subject: [PATCH 204/218] [MIG] web_no_bubble: Migration to 12.0 --- web_no_bubble/README.rst | 65 ++- web_no_bubble/__init__.py | 3 - web_no_bubble/__manifest__.py | 5 +- web_no_bubble/i18n/fr_FR.po | 14 + web_no_bubble/i18n/hr.po | 15 + web_no_bubble/i18n/web_no_bubble.pot | 2 +- web_no_bubble/i18n/zh_CN.po | 14 + web_no_bubble/readme/CONTRIBUTORS.rst | 2 + web_no_bubble/readme/DESCRIPTION.rst | 2 + web_no_bubble/static/description/index.html | 421 ++++++++++++++++++ .../static/src/css/web_no_bubble.css | 3 - .../static/src/css/web_no_bubble.scss | 5 + web_no_bubble/views/web_no_bubble.xml | 2 +- 13 files changed, 522 insertions(+), 31 deletions(-) create mode 100644 web_no_bubble/i18n/fr_FR.po create mode 100644 web_no_bubble/i18n/hr.po create mode 100644 web_no_bubble/i18n/zh_CN.po create mode 100644 web_no_bubble/readme/CONTRIBUTORS.rst create mode 100644 web_no_bubble/readme/DESCRIPTION.rst create mode 100644 web_no_bubble/static/description/index.html delete mode 100644 web_no_bubble/static/src/css/web_no_bubble.css create mode 100644 web_no_bubble/static/src/css/web_no_bubble.scss diff --git a/web_no_bubble/README.rst b/web_no_bubble/README.rst index 8622baaa78c2..10df77d52f0d 100644 --- a/web_no_bubble/README.rst +++ b/web_no_bubble/README.rst @@ -1,50 +1,75 @@ -.. image:: https://img.shields.io/badge/licence-AGPL--3-blue.svg - :target: http://www.gnu.org/licenses/agpl-3.0-standalone.html - :alt: License: AGPL-3 - ============= Web No Bubble ============= +.. !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! + !! This file is generated by oca-gen-addon-readme !! + !! changes will be overwritten. !! + !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! + +.. |badge1| image:: https://img.shields.io/badge/maturity-Beta-yellow.png + :target: https://odoo-community.org/page/development-status + :alt: Beta +.. |badge2| image:: https://img.shields.io/badge/licence-AGPL--3-blue.png + :target: http://www.gnu.org/licenses/agpl-3.0-standalone.html + :alt: License: AGPL-3 +.. |badge3| image:: https://img.shields.io/badge/github-OCA%2Fweb-lightgray.png?logo=github + :target: https://github.com/OCA/web/tree/12.0/web_no_bubble + :alt: OCA/web +.. |badge4| image:: https://img.shields.io/badge/weblate-Translate%20me-F47D42.png + :target: https://translation.odoo-community.org/projects/web-12-0/web-12-0-web_no_bubble + :alt: Translate me on Weblate +.. |badge5| image:: https://img.shields.io/badge/runbot-Try%20me-875A7B.png + :target: https://runbot.odoo-community.org/runbot/162/12.0 + :alt: Try me on Runbot + +|badge1| |badge2| |badge3| |badge4| |badge5| + This module removes from the web interface the bubbles introduced in the version 10.0. The help boxes are not removed though. -.. image:: https://odoo-community.org/website/image/ir.attachment/5784_f2813bd/datas - :alt: Try me on Runbot - :target: https://runbot.odoo-community.org/runbot/162/11.0 +**Table of contents** + +.. contents:: + :local: Bug Tracker =========== -Bugs are tracked on `GitHub Issues -`_. In case of trouble, please -check there if your issue has already been reported. If you spotted it first, -help us smashing it by providing a detailed and welcomed feedback. +Bugs are tracked on `GitHub Issues `_. +In case of trouble, please check there if your issue has already been reported. +If you spotted it first, help us smashing it by providing a detailed and welcomed +`feedback `_. + +Do not contact contributors directly about support or help with technical issues. Credits ======= -Images ------- +Authors +~~~~~~~ -* Odoo Community Association: `Icon `_. +* Savoir-faire Linux Contributors ------------- +~~~~~~~~~~~~ * David Dufresne (david.dufresne@savoirfairelinux.com) +* Alexandre Díaz (alexandre.diaz@tecnativa.com) -Maintainer ----------- +Maintainers +~~~~~~~~~~~ + +This module is maintained by the OCA. .. image:: https://odoo-community.org/logo.png :alt: Odoo Community Association :target: https://odoo-community.org -This module is maintained by the OCA. - OCA, or the Odoo Community Association, is a nonprofit organization whose mission is to support the collaborative development of Odoo features and promote its widespread use. -To contribute to this module, please visit https://odoo-community.org. \ No newline at end of file +This module is part of the `OCA/web `_ project on GitHub. + +You are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute. diff --git a/web_no_bubble/__init__.py b/web_no_bubble/__init__.py index bdac23ab9454..e69de29bb2d1 100644 --- a/web_no_bubble/__init__.py +++ b/web_no_bubble/__init__.py @@ -1,3 +0,0 @@ -# -*- coding: utf-8 -*- -# © 2016 Savoir-faire Linux -# License LGPL-3.0 or later (http://www.gnu.org/licenses/lgpl). diff --git a/web_no_bubble/__manifest__.py b/web_no_bubble/__manifest__.py index 1d2774eeb27f..3db3b6aa92bf 100644 --- a/web_no_bubble/__manifest__.py +++ b/web_no_bubble/__manifest__.py @@ -1,10 +1,9 @@ -# -*- coding: utf-8 -*- -# © 2016 Savoir-faire Linux +# Copyright 2016 Savoir-faire Linux # License LGPL-3.0 or later (http://www.gnu.org/licenses/lgpl). { 'name': 'Web No Bubble', - 'version': '11.0.1.0.0', + 'version': '12.0.1.0.0', 'author': 'Savoir-faire Linux, ' 'Odoo Community Association (OCA)', 'website': 'https://github.com/OCA/web', diff --git a/web_no_bubble/i18n/fr_FR.po b/web_no_bubble/i18n/fr_FR.po new file mode 100644 index 000000000000..45e1d47a3238 --- /dev/null +++ b/web_no_bubble/i18n/fr_FR.po @@ -0,0 +1,14 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 12.0\n" +"Report-Msgid-Bugs-To: \n" +"Last-Translator: Automatically generated\n" +"Language-Team: none\n" +"Language: fr_FR\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: \n" +"Plural-Forms: nplurals=2; plural=n > 1;\n" diff --git a/web_no_bubble/i18n/hr.po b/web_no_bubble/i18n/hr.po new file mode 100644 index 000000000000..62cb4ae999e4 --- /dev/null +++ b/web_no_bubble/i18n/hr.po @@ -0,0 +1,15 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 12.0\n" +"Report-Msgid-Bugs-To: \n" +"Last-Translator: Automatically generated\n" +"Language-Team: none\n" +"Language: hr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: \n" +"Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=" +"4 && (n%100<10 || n%100>=20) ? 1 : 2;\n" diff --git a/web_no_bubble/i18n/web_no_bubble.pot b/web_no_bubble/i18n/web_no_bubble.pot index 447d3bb3ca4c..d2e396f159e1 100644 --- a/web_no_bubble/i18n/web_no_bubble.pot +++ b/web_no_bubble/i18n/web_no_bubble.pot @@ -3,7 +3,7 @@ # msgid "" msgstr "" -"Project-Id-Version: Odoo Server 11.0\n" +"Project-Id-Version: Odoo Server 12.0\n" "Report-Msgid-Bugs-To: \n" "Last-Translator: <>\n" "Language-Team: \n" diff --git a/web_no_bubble/i18n/zh_CN.po b/web_no_bubble/i18n/zh_CN.po new file mode 100644 index 000000000000..4159be77e050 --- /dev/null +++ b/web_no_bubble/i18n/zh_CN.po @@ -0,0 +1,14 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 12.0\n" +"Report-Msgid-Bugs-To: \n" +"Last-Translator: Automatically generated\n" +"Language-Team: none\n" +"Language: zh_CN\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: \n" +"Plural-Forms: nplurals=1; plural=0;\n" diff --git a/web_no_bubble/readme/CONTRIBUTORS.rst b/web_no_bubble/readme/CONTRIBUTORS.rst new file mode 100644 index 000000000000..78fa1bbc5f4f --- /dev/null +++ b/web_no_bubble/readme/CONTRIBUTORS.rst @@ -0,0 +1,2 @@ +* David Dufresne (david.dufresne@savoirfairelinux.com) +* Alexandre Díaz (alexandre.diaz@tecnativa.com) diff --git a/web_no_bubble/readme/DESCRIPTION.rst b/web_no_bubble/readme/DESCRIPTION.rst new file mode 100644 index 000000000000..54b336dd5784 --- /dev/null +++ b/web_no_bubble/readme/DESCRIPTION.rst @@ -0,0 +1,2 @@ +This module removes from the web interface the bubbles introduced in the version 10.0. +The help boxes are not removed though. diff --git a/web_no_bubble/static/description/index.html b/web_no_bubble/static/description/index.html new file mode 100644 index 000000000000..522bc239135d --- /dev/null +++ b/web_no_bubble/static/description/index.html @@ -0,0 +1,421 @@ + + + + + + +Web No Bubble + + + +

    +

    Web No Bubble

    + + +

    Beta License: AGPL-3 OCA/web Translate me on Weblate Try me on Runbot

    +

    This module removes from the web interface the bubbles introduced in the version 10.0. +The help boxes are not removed though.

    +

    Table of contents

    + +
    +

    Bug Tracker

    +

    Bugs are tracked on GitHub Issues. +In case of trouble, please check there if your issue has already been reported. +If you spotted it first, help us smashing it by providing a detailed and welcomed +feedback.

    +

    Do not contact contributors directly about support or help with technical issues.

    +
    +
    +

    Credits

    +
    +

    Authors

    +
      +
    • Savoir-faire Linux
    • +
    +
    + +
    +

    Maintainers

    +

    This module is maintained by the OCA.

    +Odoo Community Association +

    OCA, or the Odoo Community Association, is a nonprofit organization whose +mission is to support the collaborative development of Odoo features and +promote its widespread use.

    +

    This module is part of the OCA/web project on GitHub.

    +

    You are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute.

    +
    +
    +
    + + diff --git a/web_no_bubble/static/src/css/web_no_bubble.css b/web_no_bubble/static/src/css/web_no_bubble.css deleted file mode 100644 index d878e58cdc29..000000000000 --- a/web_no_bubble/static/src/css/web_no_bubble.css +++ /dev/null @@ -1,3 +0,0 @@ -.o_tooltip.o_animated { - display: none; -} diff --git a/web_no_bubble/static/src/css/web_no_bubble.scss b/web_no_bubble/static/src/css/web_no_bubble.scss new file mode 100644 index 000000000000..42efdde41b56 --- /dev/null +++ b/web_no_bubble/static/src/css/web_no_bubble.scss @@ -0,0 +1,5 @@ +.o_tooltip { + &.o_animated { + display: none; + } +} diff --git a/web_no_bubble/views/web_no_bubble.xml b/web_no_bubble/views/web_no_bubble.xml index 9c9c3bef54fe..d95f888c8291 100644 --- a/web_no_bubble/views/web_no_bubble.xml +++ b/web_no_bubble/views/web_no_bubble.xml @@ -3,7 +3,7 @@ From d0a244a4d123f1e7738a78ddcb54c0f8d147b530 Mon Sep 17 00:00:00 2001 From: BT-nstuder Date: Mon, 20 Jan 2020 12:35:58 +0100 Subject: [PATCH 205/218] [IMP] web_no_bubble: black, isort --- web_no_bubble/__manifest__.py | 25 +++++++++++-------------- 1 file changed, 11 insertions(+), 14 deletions(-) diff --git a/web_no_bubble/__manifest__.py b/web_no_bubble/__manifest__.py index 3db3b6aa92bf..a35f27d5a66a 100644 --- a/web_no_bubble/__manifest__.py +++ b/web_no_bubble/__manifest__.py @@ -2,18 +2,15 @@ # License LGPL-3.0 or later (http://www.gnu.org/licenses/lgpl). { - 'name': 'Web No Bubble', - 'version': '12.0.1.0.0', - 'author': 'Savoir-faire Linux, ' - 'Odoo Community Association (OCA)', - 'website': 'https://github.com/OCA/web', - 'license': 'AGPL-3', - 'category': 'Web', - 'summary': 'Remove the bubbles from the web interface', - 'depends': ['web'], - 'data': [ - 'views/web_no_bubble.xml', - ], - 'installable': True, - 'application': False, + "name": "Web No Bubble", + "version": "12.0.1.0.0", + "author": "Savoir-faire Linux, " "Odoo Community Association (OCA)", + "website": "https://github.com/OCA/web", + "license": "AGPL-3", + "category": "Web", + "summary": "Remove the bubbles from the web interface", + "depends": ["web"], + "data": ["views/web_no_bubble.xml"], + "installable": True, + "application": False, } From f2c16892fdede18dd913128b890ec985ce03dc59 Mon Sep 17 00:00:00 2001 From: BT-nstuder Date: Mon, 20 Jan 2020 12:44:57 +0100 Subject: [PATCH 206/218] [MIG] web_no_bubble: Migration to 13.0 --- web_no_bubble/README.rst | 10 +++++----- web_no_bubble/__manifest__.py | 2 +- web_no_bubble/i18n/fr_FR.po | 2 +- web_no_bubble/i18n/hr.po | 2 +- web_no_bubble/i18n/web_no_bubble.pot | 5 ++--- web_no_bubble/i18n/zh_CN.po | 2 +- web_no_bubble/static/description/index.html | 6 +++--- 7 files changed, 14 insertions(+), 15 deletions(-) diff --git a/web_no_bubble/README.rst b/web_no_bubble/README.rst index 10df77d52f0d..d76ffa1cdcaf 100644 --- a/web_no_bubble/README.rst +++ b/web_no_bubble/README.rst @@ -14,13 +14,13 @@ Web No Bubble :target: http://www.gnu.org/licenses/agpl-3.0-standalone.html :alt: License: AGPL-3 .. |badge3| image:: https://img.shields.io/badge/github-OCA%2Fweb-lightgray.png?logo=github - :target: https://github.com/OCA/web/tree/12.0/web_no_bubble + :target: https://github.com/OCA/web/tree/13.0/web_no_bubble :alt: OCA/web .. |badge4| image:: https://img.shields.io/badge/weblate-Translate%20me-F47D42.png - :target: https://translation.odoo-community.org/projects/web-12-0/web-12-0-web_no_bubble + :target: https://translation.odoo-community.org/projects/web-13-0/web-13-0-web_no_bubble :alt: Translate me on Weblate .. |badge5| image:: https://img.shields.io/badge/runbot-Try%20me-875A7B.png - :target: https://runbot.odoo-community.org/runbot/162/12.0 + :target: https://runbot.odoo-community.org/runbot/162/13.0 :alt: Try me on Runbot |badge1| |badge2| |badge3| |badge4| |badge5| @@ -39,7 +39,7 @@ Bug Tracker Bugs are tracked on `GitHub Issues `_. In case of trouble, please check there if your issue has already been reported. If you spotted it first, help us smashing it by providing a detailed and welcomed -`feedback `_. +`feedback `_. Do not contact contributors directly about support or help with technical issues. @@ -70,6 +70,6 @@ OCA, or the Odoo Community Association, is a nonprofit organization whose mission is to support the collaborative development of Odoo features and promote its widespread use. -This module is part of the `OCA/web `_ project on GitHub. +This module is part of the `OCA/web `_ project on GitHub. You are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute. diff --git a/web_no_bubble/__manifest__.py b/web_no_bubble/__manifest__.py index a35f27d5a66a..7b7eb50d0c0e 100644 --- a/web_no_bubble/__manifest__.py +++ b/web_no_bubble/__manifest__.py @@ -3,7 +3,7 @@ { "name": "Web No Bubble", - "version": "12.0.1.0.0", + "version": "13.0.1.0.0", "author": "Savoir-faire Linux, " "Odoo Community Association (OCA)", "website": "https://github.com/OCA/web", "license": "AGPL-3", diff --git a/web_no_bubble/i18n/fr_FR.po b/web_no_bubble/i18n/fr_FR.po index 45e1d47a3238..70349008ff27 100644 --- a/web_no_bubble/i18n/fr_FR.po +++ b/web_no_bubble/i18n/fr_FR.po @@ -3,7 +3,7 @@ # msgid "" msgstr "" -"Project-Id-Version: Odoo Server 12.0\n" +"Project-Id-Version: Odoo Server 13.0\n" "Report-Msgid-Bugs-To: \n" "Last-Translator: Automatically generated\n" "Language-Team: none\n" diff --git a/web_no_bubble/i18n/hr.po b/web_no_bubble/i18n/hr.po index 62cb4ae999e4..4f0b6f3cb697 100644 --- a/web_no_bubble/i18n/hr.po +++ b/web_no_bubble/i18n/hr.po @@ -3,7 +3,7 @@ # msgid "" msgstr "" -"Project-Id-Version: Odoo Server 12.0\n" +"Project-Id-Version: Odoo Server 13.0\n" "Report-Msgid-Bugs-To: \n" "Last-Translator: Automatically generated\n" "Language-Team: none\n" diff --git a/web_no_bubble/i18n/web_no_bubble.pot b/web_no_bubble/i18n/web_no_bubble.pot index d2e396f159e1..cc93d01ee547 100644 --- a/web_no_bubble/i18n/web_no_bubble.pot +++ b/web_no_bubble/i18n/web_no_bubble.pot @@ -3,12 +3,11 @@ # msgid "" msgstr "" -"Project-Id-Version: Odoo Server 12.0\n" +"Project-Id-Version: Odoo Server 13.0\n" "Report-Msgid-Bugs-To: \n" -"Last-Translator: <>\n" +"Last-Translator: \n" "Language-Team: \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: \n" "Plural-Forms: \n" - diff --git a/web_no_bubble/i18n/zh_CN.po b/web_no_bubble/i18n/zh_CN.po index 4159be77e050..b8cb4812f147 100644 --- a/web_no_bubble/i18n/zh_CN.po +++ b/web_no_bubble/i18n/zh_CN.po @@ -3,7 +3,7 @@ # msgid "" msgstr "" -"Project-Id-Version: Odoo Server 12.0\n" +"Project-Id-Version: Odoo Server 13.0\n" "Report-Msgid-Bugs-To: \n" "Last-Translator: Automatically generated\n" "Language-Team: none\n" diff --git a/web_no_bubble/static/description/index.html b/web_no_bubble/static/description/index.html index 522bc239135d..d809eaed06ae 100644 --- a/web_no_bubble/static/description/index.html +++ b/web_no_bubble/static/description/index.html @@ -367,7 +367,7 @@

    Web No Bubble

    !! This file is generated by oca-gen-addon-readme !! !! changes will be overwritten. !! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! --> -

    Beta License: AGPL-3 OCA/web Translate me on Weblate Try me on Runbot

    +

    Beta License: AGPL-3 OCA/web Translate me on Weblate Try me on Runbot

    This module removes from the web interface the bubbles introduced in the version 10.0. The help boxes are not removed though.

    Table of contents

    @@ -387,7 +387,7 @@

    Bug Tracker

    Bugs are tracked on GitHub Issues. In case of trouble, please check there if your issue has already been reported. If you spotted it first, help us smashing it by providing a detailed and welcomed -feedback.

    +feedback.

    Do not contact contributors directly about support or help with technical issues.

    @@ -412,7 +412,7 @@

    Maintainers

    OCA, or the Odoo Community Association, is a nonprofit organization whose mission is to support the collaborative development of Odoo features and promote its widespread use.

    -

    This module is part of the OCA/web project on GitHub.

    +

    This module is part of the OCA/web project on GitHub.

    You are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute.

    From d229751d1cea07edb6f97c190e2df9207eb8e876 Mon Sep 17 00:00:00 2001 From: Jairo Llopis Date: Fri, 24 Jan 2020 13:45:39 +0000 Subject: [PATCH 207/218] [IMP] pre-commit run after update Includes some manual fixes to silent ESLint warnings. --- web_no_bubble/static/src/css/web_no_bubble.scss | 6 +++--- web_no_bubble/views/web_no_bubble.xml | 13 ++++++++++--- 2 files changed, 13 insertions(+), 6 deletions(-) diff --git a/web_no_bubble/static/src/css/web_no_bubble.scss b/web_no_bubble/static/src/css/web_no_bubble.scss index 42efdde41b56..d4ec228365bb 100644 --- a/web_no_bubble/static/src/css/web_no_bubble.scss +++ b/web_no_bubble/static/src/css/web_no_bubble.scss @@ -1,5 +1,5 @@ .o_tooltip { - &.o_animated { - display: none; - } + &.o_animated { + display: none; + } } diff --git a/web_no_bubble/views/web_no_bubble.xml b/web_no_bubble/views/web_no_bubble.xml index d95f888c8291..76d4e2946584 100644 --- a/web_no_bubble/views/web_no_bubble.xml +++ b/web_no_bubble/views/web_no_bubble.xml @@ -1,9 +1,16 @@ - + - + From 7c3f831e105f5061bf00a272890b34188db9a784 Mon Sep 17 00:00:00 2001 From: Thanakrit Pintana Date: Fri, 26 Nov 2021 11:13:26 +0700 Subject: [PATCH 210/218] [MIG] web_no_bubble: Migration to 15.0 --- web_no_bubble/README.rst | 11 ++++---- web_no_bubble/__manifest__.py | 7 +++-- web_no_bubble/i18n/fr_FR.po | 14 ---------- web_no_bubble/i18n/hr.po | 15 ----------- web_no_bubble/i18n/web_no_bubble.pot | 2 +- web_no_bubble/i18n/zh_CN.po | 14 ---------- web_no_bubble/readme/CONTRIBUTORS.rst | 1 + web_no_bubble/static/description/index.html | 7 ++--- web_no_bubble/views/web_no_bubble.xml | 29 --------------------- 9 files changed, 17 insertions(+), 83 deletions(-) delete mode 100644 web_no_bubble/views/web_no_bubble.xml diff --git a/web_no_bubble/README.rst b/web_no_bubble/README.rst index 605ed137c27f..f99b583dceb0 100644 --- a/web_no_bubble/README.rst +++ b/web_no_bubble/README.rst @@ -14,13 +14,13 @@ Web No Bubble :target: http://www.gnu.org/licenses/agpl-3.0-standalone.html :alt: License: AGPL-3 .. |badge3| image:: https://img.shields.io/badge/github-OCA%2Fweb-lightgray.png?logo=github - :target: https://github.com/OCA/web/tree/14.0/web_no_bubble + :target: https://github.com/OCA/web/tree/15.0/web_no_bubble :alt: OCA/web .. |badge4| image:: https://img.shields.io/badge/weblate-Translate%20me-F47D42.png - :target: https://translation.odoo-community.org/projects/web-14-0/web-14-0-web_no_bubble + :target: https://translation.odoo-community.org/projects/web-15-0/web-15-0-web_no_bubble :alt: Translate me on Weblate .. |badge5| image:: https://img.shields.io/badge/runbot-Try%20me-875A7B.png - :target: https://runbot.odoo-community.org/runbot/162/14.0 + :target: https://runbot.odoo-community.org/runbot/162/15.0 :alt: Try me on Runbot |badge1| |badge2| |badge3| |badge4| |badge5| @@ -39,7 +39,7 @@ Bug Tracker Bugs are tracked on `GitHub Issues `_. In case of trouble, please check there if your issue has already been reported. If you spotted it first, help us smashing it by providing a detailed and welcomed -`feedback `_. +`feedback `_. Do not contact contributors directly about support or help with technical issues. @@ -57,6 +57,7 @@ Contributors * David Dufresne (david.dufresne@savoirfairelinux.com) * Alexandre Díaz (alexandre.diaz@tecnativa.com) * Elliott Bristow - Glodo (elliott@glo.systems) +* Thanakrit Pintana (thanakrit.p39@gmail.com) Maintainers ~~~~~~~~~~~ @@ -71,6 +72,6 @@ OCA, or the Odoo Community Association, is a nonprofit organization whose mission is to support the collaborative development of Odoo features and promote its widespread use. -This module is part of the `OCA/web `_ project on GitHub. +This module is part of the `OCA/web `_ project on GitHub. You are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute. diff --git a/web_no_bubble/__manifest__.py b/web_no_bubble/__manifest__.py index b328eb17f4b9..b23661ee17f5 100644 --- a/web_no_bubble/__manifest__.py +++ b/web_no_bubble/__manifest__.py @@ -3,14 +3,17 @@ { "name": "Web No Bubble", - "version": "14.0.1.0.0", + "version": "15.0.1.0.0", "author": "Savoir-faire Linux, " "Odoo Community Association (OCA)", "website": "https://github.com/OCA/web", "license": "AGPL-3", "category": "Web", "summary": "Remove the bubbles from the web interface", "depends": ["web"], - "data": ["views/web_no_bubble.xml"], "installable": True, "application": False, + "assets": { + "web.assets_backend": ["web_no_bubble/static/src/css/web_no_bubble.scss"], + "web.assets_frontend": ["web_no_bubble/static/src/css/web_no_bubble.scss"], + }, } diff --git a/web_no_bubble/i18n/fr_FR.po b/web_no_bubble/i18n/fr_FR.po index 70349008ff27..e69de29bb2d1 100644 --- a/web_no_bubble/i18n/fr_FR.po +++ b/web_no_bubble/i18n/fr_FR.po @@ -1,14 +0,0 @@ -# Translation of Odoo Server. -# This file contains the translation of the following modules: -# -msgid "" -msgstr "" -"Project-Id-Version: Odoo Server 13.0\n" -"Report-Msgid-Bugs-To: \n" -"Last-Translator: Automatically generated\n" -"Language-Team: none\n" -"Language: fr_FR\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: \n" -"Plural-Forms: nplurals=2; plural=n > 1;\n" diff --git a/web_no_bubble/i18n/hr.po b/web_no_bubble/i18n/hr.po index 4f0b6f3cb697..e69de29bb2d1 100644 --- a/web_no_bubble/i18n/hr.po +++ b/web_no_bubble/i18n/hr.po @@ -1,15 +0,0 @@ -# Translation of Odoo Server. -# This file contains the translation of the following modules: -# -msgid "" -msgstr "" -"Project-Id-Version: Odoo Server 13.0\n" -"Report-Msgid-Bugs-To: \n" -"Last-Translator: Automatically generated\n" -"Language-Team: none\n" -"Language: hr\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: \n" -"Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=" -"4 && (n%100<10 || n%100>=20) ? 1 : 2;\n" diff --git a/web_no_bubble/i18n/web_no_bubble.pot b/web_no_bubble/i18n/web_no_bubble.pot index 4d8b20f912ff..a11baf5cd77c 100644 --- a/web_no_bubble/i18n/web_no_bubble.pot +++ b/web_no_bubble/i18n/web_no_bubble.pot @@ -3,7 +3,7 @@ # msgid "" msgstr "" -"Project-Id-Version: Odoo Server 14.0\n" +"Project-Id-Version: Odoo Server 15.0\n" "Report-Msgid-Bugs-To: \n" "Last-Translator: \n" "Language-Team: \n" diff --git a/web_no_bubble/i18n/zh_CN.po b/web_no_bubble/i18n/zh_CN.po index b8cb4812f147..e69de29bb2d1 100644 --- a/web_no_bubble/i18n/zh_CN.po +++ b/web_no_bubble/i18n/zh_CN.po @@ -1,14 +0,0 @@ -# Translation of Odoo Server. -# This file contains the translation of the following modules: -# -msgid "" -msgstr "" -"Project-Id-Version: Odoo Server 13.0\n" -"Report-Msgid-Bugs-To: \n" -"Last-Translator: Automatically generated\n" -"Language-Team: none\n" -"Language: zh_CN\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: \n" -"Plural-Forms: nplurals=1; plural=0;\n" diff --git a/web_no_bubble/readme/CONTRIBUTORS.rst b/web_no_bubble/readme/CONTRIBUTORS.rst index 38d3717cf2c7..a9f4d97327a9 100644 --- a/web_no_bubble/readme/CONTRIBUTORS.rst +++ b/web_no_bubble/readme/CONTRIBUTORS.rst @@ -1,3 +1,4 @@ * David Dufresne (david.dufresne@savoirfairelinux.com) * Alexandre Díaz (alexandre.diaz@tecnativa.com) * Elliott Bristow - Glodo (elliott@glo.systems) +* Thanakrit Pintana (thanakrit.p39@gmail.com) diff --git a/web_no_bubble/static/description/index.html b/web_no_bubble/static/description/index.html index 4f0dd11a680b..7a5e835ee1a8 100644 --- a/web_no_bubble/static/description/index.html +++ b/web_no_bubble/static/description/index.html @@ -367,7 +367,7 @@

    Web No Bubble

    !! This file is generated by oca-gen-addon-readme !! !! changes will be overwritten. !! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! --> -

    Beta License: AGPL-3 OCA/web Translate me on Weblate Try me on Runbot

    +

    Beta License: AGPL-3 OCA/web Translate me on Weblate Try me on Runbot

    This module removes from the web interface the bubbles introduced in the version 10.0. The help boxes are not removed though.

    Table of contents

    @@ -387,7 +387,7 @@

    Bug Tracker

    Bugs are tracked on GitHub Issues. In case of trouble, please check there if your issue has already been reported. If you spotted it first, help us smashing it by providing a detailed and welcomed -feedback.

    +feedback.

    Do not contact contributors directly about support or help with technical issues.

    @@ -404,6 +404,7 @@

    Contributors

  • David Dufresne (david.dufresne@savoirfairelinux.com)
  • Alexandre Díaz (alexandre.diaz@tecnativa.com)
  • Elliott Bristow - Glodo (elliott@glo.systems)
  • +
  • Thanakrit Pintana (thanakrit.p39@gmail.com)
  • @@ -413,7 +414,7 @@

    Maintainers

    OCA, or the Odoo Community Association, is a nonprofit organization whose mission is to support the collaborative development of Odoo features and promote its widespread use.

    -

    This module is part of the OCA/web project on GitHub.

    +

    This module is part of the OCA/web project on GitHub.

    You are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute.

    diff --git a/web_no_bubble/views/web_no_bubble.xml b/web_no_bubble/views/web_no_bubble.xml deleted file mode 100644 index 164d0160cc3c..000000000000 --- a/web_no_bubble/views/web_no_bubble.xml +++ /dev/null @@ -1,29 +0,0 @@ - - - - - - - From 65b6571404e6a70d7d701947c1d8d325d60e3852 Mon Sep 17 00:00:00 2001 From: Andrea Stirpe Date: Tue, 21 Mar 2023 14:25:18 +0100 Subject: [PATCH 211/218] [16.0][MIG] web_no_bubble --- web_no_bubble/README.rst | 23 ++++++----- web_no_bubble/__manifest__.py | 2 +- web_no_bubble/i18n/web_no_bubble.pot | 2 +- web_no_bubble/static/description/index.html | 38 ++++++++++--------- .../static/src/css/web_no_bubble.scss | 4 +- 5 files changed, 36 insertions(+), 33 deletions(-) diff --git a/web_no_bubble/README.rst b/web_no_bubble/README.rst index f99b583dceb0..ea4eecfebda3 100644 --- a/web_no_bubble/README.rst +++ b/web_no_bubble/README.rst @@ -2,10 +2,13 @@ Web No Bubble ============= -.. !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! +.. + !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! !! This file is generated by oca-gen-addon-readme !! !! changes will be overwritten. !! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! + !! source digest: sha256:b4869caf35d7916b11025aba76e24bd48c42bee3dab33aca8586027ea3ba0ffc + !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! .. |badge1| image:: https://img.shields.io/badge/maturity-Beta-yellow.png :target: https://odoo-community.org/page/development-status @@ -14,16 +17,16 @@ Web No Bubble :target: http://www.gnu.org/licenses/agpl-3.0-standalone.html :alt: License: AGPL-3 .. |badge3| image:: https://img.shields.io/badge/github-OCA%2Fweb-lightgray.png?logo=github - :target: https://github.com/OCA/web/tree/15.0/web_no_bubble + :target: https://github.com/OCA/web/tree/16.0/web_no_bubble :alt: OCA/web .. |badge4| image:: https://img.shields.io/badge/weblate-Translate%20me-F47D42.png - :target: https://translation.odoo-community.org/projects/web-15-0/web-15-0-web_no_bubble + :target: https://translation.odoo-community.org/projects/web-16-0/web-16-0-web_no_bubble :alt: Translate me on Weblate -.. |badge5| image:: https://img.shields.io/badge/runbot-Try%20me-875A7B.png - :target: https://runbot.odoo-community.org/runbot/162/15.0 - :alt: Try me on Runbot +.. |badge5| image:: https://img.shields.io/badge/runboat-Try%20me-875A7B.png + :target: https://runboat.odoo-community.org/builds?repo=OCA/web&target_branch=16.0 + :alt: Try me on Runboat -|badge1| |badge2| |badge3| |badge4| |badge5| +|badge1| |badge2| |badge3| |badge4| |badge5| This module removes from the web interface the bubbles introduced in the version 10.0. The help boxes are not removed though. @@ -38,8 +41,8 @@ Bug Tracker Bugs are tracked on `GitHub Issues `_. In case of trouble, please check there if your issue has already been reported. -If you spotted it first, help us smashing it by providing a detailed and welcomed -`feedback `_. +If you spotted it first, help us to smash it by providing a detailed and welcomed +`feedback `_. Do not contact contributors directly about support or help with technical issues. @@ -72,6 +75,6 @@ OCA, or the Odoo Community Association, is a nonprofit organization whose mission is to support the collaborative development of Odoo features and promote its widespread use. -This module is part of the `OCA/web `_ project on GitHub. +This module is part of the `OCA/web `_ project on GitHub. You are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute. diff --git a/web_no_bubble/__manifest__.py b/web_no_bubble/__manifest__.py index b23661ee17f5..e0e2e987e0ab 100644 --- a/web_no_bubble/__manifest__.py +++ b/web_no_bubble/__manifest__.py @@ -3,7 +3,7 @@ { "name": "Web No Bubble", - "version": "15.0.1.0.0", + "version": "16.0.1.0.0", "author": "Savoir-faire Linux, " "Odoo Community Association (OCA)", "website": "https://github.com/OCA/web", "license": "AGPL-3", diff --git a/web_no_bubble/i18n/web_no_bubble.pot b/web_no_bubble/i18n/web_no_bubble.pot index a11baf5cd77c..78d58d53fe07 100644 --- a/web_no_bubble/i18n/web_no_bubble.pot +++ b/web_no_bubble/i18n/web_no_bubble.pot @@ -3,7 +3,7 @@ # msgid "" msgstr "" -"Project-Id-Version: Odoo Server 15.0\n" +"Project-Id-Version: Odoo Server 16.0\n" "Report-Msgid-Bugs-To: \n" "Last-Translator: \n" "Language-Team: \n" diff --git a/web_no_bubble/static/description/index.html b/web_no_bubble/static/description/index.html index 7a5e835ee1a8..60f1a9973c0d 100644 --- a/web_no_bubble/static/description/index.html +++ b/web_no_bubble/static/description/index.html @@ -1,20 +1,20 @@ - + - + Web No Bubble -
    -

    Web No Bubble

    +
    + + +Odoo Community Association + +
    +

    Web No Bubble

    -

    Beta License: AGPL-3 OCA/web Translate me on Weblate Try me on Runboat

    +

    Beta License: AGPL-3 OCA/web Translate me on Weblate Try me on Runboat

    This module removes from the web interface the bubbles introduced in the version 10.0. The help boxes are not removed though.

    Table of contents

    @@ -385,23 +390,23 @@

    Web No Bubble

    -

    Bug Tracker

    +

    Bug Tracker

    Bugs are tracked on GitHub Issues. In case of trouble, please check there if your issue has already been reported. If you spotted it first, help us to smash it by providing a detailed and welcomed -feedback.

    +feedback.

    Do not contact contributors directly about support or help with technical issues.

    -

    Credits

    +

    Credits

    -

    Authors

    +

    Authors

    • Savoir-faire Linux
    -

    Contributors

    +

    Contributors

    -

    Maintainers

    +

    Maintainers

    This module is maintained by the OCA.

    Odoo Community Association @@ -422,10 +427,11 @@

    Maintainers

    OCA, or the Odoo Community Association, is a nonprofit organization whose mission is to support the collaborative development of Odoo features and promote its widespread use.

    -

    This module is part of the OCA/web project on GitHub.

    +

    This module is part of the OCA/web project on GitHub.

    You are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute.

    +
    From 897f601af36b7760ad5ed6fdd261fc8b9e5aa25e Mon Sep 17 00:00:00 2001 From: oca-ci Date: Wed, 24 Jun 2026 08:41:21 +0000 Subject: [PATCH 217/218] [UPD] Update web_no_bubble.pot --- web_no_bubble/i18n/web_no_bubble.pot | 14 +------------- 1 file changed, 1 insertion(+), 13 deletions(-) diff --git a/web_no_bubble/i18n/web_no_bubble.pot b/web_no_bubble/i18n/web_no_bubble.pot index aadee09bfeda..73e76416e0ee 100644 --- a/web_no_bubble/i18n/web_no_bubble.pot +++ b/web_no_bubble/i18n/web_no_bubble.pot @@ -1,13 +1 @@ -# Translation of Odoo Server. -# This file contains the translation of the following modules: -# -msgid "" -msgstr "" -"Project-Id-Version: Odoo Server 18.0\n" -"Report-Msgid-Bugs-To: \n" -"Last-Translator: \n" -"Language-Team: \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: \n" -"Plural-Forms: \n" +# No translations. From 9f6b546487c2844aa5b58e45b48a6db0564836ce Mon Sep 17 00:00:00 2001 From: OCA-git-bot Date: Wed, 24 Jun 2026 08:44:57 +0000 Subject: [PATCH 218/218] [BOT] post-merge updates --- README.md | 1 + setup/_metapackage/pyproject.toml | 3 ++- web_no_bubble/README.rst | 2 +- web_no_bubble/static/description/index.html | 2 +- 4 files changed, 5 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index 0a25acc4ee4c..a86d5ab40c60 100644 --- a/README.md +++ b/README.md @@ -34,6 +34,7 @@ addon | version | maintainers | summary [web_ir_actions_act_window_message](web_ir_actions_act_window_message/) | 19.0.1.0.0 | hbrunn | Show a message box to users [web_m2x_options](web_m2x_options/) | 19.0.1.0.1 | | web_m2x_options [web_m2x_options_manager](web_m2x_options_manager/) | 19.0.1.0.0 | | Adds an interface to manage the "Create" and "Create and Edit" options for specific models and fields. +[web_no_bubble](web_no_bubble/) | 19.0.1.0.0 | | Remove the bubbles from the web interface [web_pwa_customize](web_pwa_customize/) | 19.0.1.0.0 | victoralmau | Web Pwa Customize [web_refresher](web_refresher/) | 19.0.1.0.0 | | Web Refresher [web_remember_tree_column_width](web_remember_tree_column_width/) | 19.0.1.0.0 | frahikLV luisg123v cuongnmtm | Remember the tree columns' widths across sessions. diff --git a/setup/_metapackage/pyproject.toml b/setup/_metapackage/pyproject.toml index cdbd73fa2109..e2aae6f0658c 100644 --- a/setup/_metapackage/pyproject.toml +++ b/setup/_metapackage/pyproject.toml @@ -1,6 +1,6 @@ [project] name = "odoo-addons-oca-web" -version = "19.0.20260610.0" +version = "19.0.20260624.0" dependencies = [ "odoo-addon-web_calendar_slot_duration==19.0.*", "odoo-addon-web_chatter_position==19.0.*", @@ -15,6 +15,7 @@ dependencies = [ "odoo-addon-web_ir_actions_act_window_message==19.0.*", "odoo-addon-web_m2x_options==19.0.*", "odoo-addon-web_m2x_options_manager==19.0.*", + "odoo-addon-web_no_bubble==19.0.*", "odoo-addon-web_pwa_customize==19.0.*", "odoo-addon-web_refresher==19.0.*", "odoo-addon-web_remember_tree_column_width==19.0.*", diff --git a/web_no_bubble/README.rst b/web_no_bubble/README.rst index ffe3b5b7e247..e0c195b9910c 100644 --- a/web_no_bubble/README.rst +++ b/web_no_bubble/README.rst @@ -11,7 +11,7 @@ Web No Bubble !! This file is generated by oca-gen-addon-readme !! !! changes will be overwritten. !! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! - !! source digest: sha256:0835bc6f5f1cdb425084196fbb9d69bad1f9de8bdebbb041db27416bb0a7c18f + !! source digest: sha256:f5f7fe2e99275dd3cdb70b6f84f13e3d2b5343261e86ef3bcb918ad3335f1ab6 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! .. |badge1| image:: https://img.shields.io/badge/maturity-Beta-yellow.png diff --git a/web_no_bubble/static/description/index.html b/web_no_bubble/static/description/index.html index 309eac980d43..05a35b018fbc 100644 --- a/web_no_bubble/static/description/index.html +++ b/web_no_bubble/static/description/index.html @@ -372,7 +372,7 @@

    Web No Bubble

    !! This file is generated by oca-gen-addon-readme !! !! changes will be overwritten. !! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! -!! source digest: sha256:0835bc6f5f1cdb425084196fbb9d69bad1f9de8bdebbb041db27416bb0a7c18f +!! source digest: sha256:f5f7fe2e99275dd3cdb70b6f84f13e3d2b5343261e86ef3bcb918ad3335f1ab6 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! -->

    Beta License: AGPL-3 OCA/web Translate me on Weblate Try me on Runboat

    This module removes from the web interface the bubbles introduced in the