diff --git a/web_group_expand/README.rst b/web_group_expand/README.rst new file mode 100644 index 00000000..01793c07 --- /dev/null +++ b/web_group_expand/README.rst @@ -0,0 +1,59 @@ +.. image:: https://img.shields.io/badge/licence-AGPL--3-blue.svg + :alt: License: AGPL-3 + +==================== +Group Expand Buttons +==================== + +A group by list can be expanded and collapased with buttons + +You'll see two buttons appear on top right corner of the list when you perform +a group by with which you can expand and collapse grouped records by level. + + +Usage +===== + +.. 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 + +For further information, please visit: + +* https://www.odoo.com/forum/help-1 + + +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 +`here `_. + + +Credits +======= + +Contributors +------------ + +* Mantavya Gajjar +* Oihane Crucelaegui +* Pedro Baeza + +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 http://odoo-community.org. + diff --git a/web_group_expand/__init__.py b/web_group_expand/__init__.py new file mode 100644 index 00000000..e69de29b diff --git a/web_group_expand/__openerp__.py b/web_group_expand/__openerp__.py new file mode 100644 index 00000000..468a0606 --- /dev/null +++ b/web_group_expand/__openerp__.py @@ -0,0 +1,19 @@ +{ + "name": "Group Expand Buttons", + "category": "Web", + "version": "1.0", + "author": "OpenERP SA, " + "AvanzOSC, " + "Serv. Tecnol. Avanzados - Pedro M. Baeza, " + "Odoo Community Association (OCA)", + "depends": [ + "web" + ], + "qweb": [ + "static/src/xml/expand_buttons.xml", + ], + "data": [ + "views/templates.xml", + ], + "installable": True, +} diff --git a/web_group_expand/static/description/icon.png b/web_group_expand/static/description/icon.png new file mode 100644 index 00000000..9eb607c3 Binary files /dev/null and b/web_group_expand/static/description/icon.png differ diff --git a/web_group_expand/static/src/css/expand_buttons.css b/web_group_expand/static/src/css/expand_buttons.css new file mode 100644 index 00000000..e02cfec5 --- /dev/null +++ b/web_group_expand/static/src/css/expand_buttons.css @@ -0,0 +1,8 @@ + +.openerp ul#oe_group_by li.oe_group_expand{ + line-height: 25px; +} +.openerp .fa-expand, .openerp .fa-compress { + font-size:15px; + font-weight:bold; +} diff --git a/web_group_expand/static/src/js/web_group_expand.js b/web_group_expand/static/src/js/web_group_expand.js new file mode 100644 index 00000000..37bee516 --- /dev/null +++ b/web_group_expand/static/src/js/web_group_expand.js @@ -0,0 +1,44 @@ +"use strict"; +openerp.web_group_expand = function(openerp) { + var QWeb = openerp.web.qweb; + openerp.web.ViewManager.include({ + switch_mode: function(view_type, no_store, view_options) { + if (view_type != 'list' && view_type != 'tree' ) { + this.$el.find("ul#oe_group_by").remove(); + } + if(view_type == 'tree'){ + this.load_expand_buttons(); + this.$ExpandButtons.find("a#oe_group_by_reset").click(function(){ + $('.oe_open .treeview-tr.oe-treeview-first').filter(function(){return ($(this).parents('tr').attr('data-level') == 1)}).click() + }); + this.$ExpandButtons.find("a#oe_group_by_expand").click(function(){ + $('.treeview-tr.oe-treeview-first').filter(function(){return (!$(this).parents().is('.oe_open')) & ($(this).parents().css( "display" ) != 'none')}).click(); + }); + } + return this._super.apply(this, arguments); + }, + expand: function(domains, contexts, groupbys) { + this.$el.find("ul#oe_group_by").remove(); + if(groupbys.length && this.active_view == 'list') { + this.load_expand_buttons(); + this.$el.find("a#oe_group_by_reset").click(function(){ + $('span.ui-icon-triangle-1-s').click() + }); + this.$el.find("a#oe_group_by_expand").click(function(){ + $('span.ui-icon-triangle-1-e').click() + }); + } + }, + load_expand_buttons:function() { + var self = this; + this.$ExpandButtons = $(QWeb.render("GroupExpand.Buttons", {'widget':self})); + this.$el.find("ul.oe_view_manager_switch.oe_button_group.oe_right").before(this.$ExpandButtons); + }, + setup_search_view: function(view_id, search_defaults) { + var self = this; + var res = this._super.apply(this, arguments); + this.searchview.on('search_data', self, this.expand); + return res + }, + }) +} \ No newline at end of file diff --git a/web_group_expand/static/src/xml/expand_buttons.xml b/web_group_expand/static/src/xml/expand_buttons.xml new file mode 100644 index 00000000..27d3a50a --- /dev/null +++ b/web_group_expand/static/src/xml/expand_buttons.xml @@ -0,0 +1,11 @@ + + + +
+
    +
  • +
  • +
+
+
+
diff --git a/web_group_expand/views/templates.xml b/web_group_expand/views/templates.xml new file mode 100644 index 00000000..e5326153 --- /dev/null +++ b/web_group_expand/views/templates.xml @@ -0,0 +1,11 @@ + + + + + +