diff --git a/bemade_hierarchical_tree_view/__manifest__.py b/bemade_hierarchical_tree_view/__manifest__.py index 46aa198..2f065d0 100644 --- a/bemade_hierarchical_tree_view/__manifest__.py +++ b/bemade_hierarchical_tree_view/__manifest__.py @@ -28,7 +28,7 @@ 'data': [], 'assets': { 'web.assets_backend': [ - 'bemade_hierarchical_tree_view/src/*/**', + 'bemade_hierarchical_tree_view/static/src/*/**', ] }, 'installable': True, diff --git a/bemade_hierarchical_tree_view/src/components/hierarchical_tree_view_controller.js b/bemade_hierarchical_tree_view/src/components/hierarchical_tree_view_controller.js deleted file mode 100644 index e9284fe..0000000 --- a/bemade_hierarchical_tree_view/src/components/hierarchical_tree_view_controller.js +++ /dev/null @@ -1,8 +0,0 @@ -/** @odoo-module **/ - -import { ListController } from "@web/views/list/list_controller"; -import { ListRenderer } from "@web/views/list/list_renderer"; - -export class HierarchicalTreeViewController extends ListController { - -} \ No newline at end of file diff --git a/bemade_hierarchical_tree_view/src/components/hierarchical_tree_view.js b/bemade_hierarchical_tree_view/static/src/components/hierarchical_tree_view.js similarity index 100% rename from bemade_hierarchical_tree_view/src/components/hierarchical_tree_view.js rename to bemade_hierarchical_tree_view/static/src/components/hierarchical_tree_view.js diff --git a/bemade_hierarchical_tree_view/static/src/components/hierarchical_tree_view_controller.js b/bemade_hierarchical_tree_view/static/src/components/hierarchical_tree_view_controller.js new file mode 100644 index 0000000..1c124dc --- /dev/null +++ b/bemade_hierarchical_tree_view/static/src/components/hierarchical_tree_view_controller.js @@ -0,0 +1,18 @@ +/** @odoo-module **/ + +import { ListController } from "@web/views/list/list_controller"; + +export class HierarchicalTreeViewController extends ListController { + +} + +HierarchicalTreeViewController.props = { + ...ListController.props, + parentField: String, + childField: String, +} +HierarchicalTreeViewController.defaultProps = { + ...ListController.defaultProps, + parentField: 'parent_id', + childField: 'child_id', +} \ No newline at end of file diff --git a/bemade_hierarchical_tree_view/src/components/hierarchical_tree_view_renderer.js b/bemade_hierarchical_tree_view/static/src/components/hierarchical_tree_view_renderer.js similarity index 100% rename from bemade_hierarchical_tree_view/src/components/hierarchical_tree_view_renderer.js rename to bemade_hierarchical_tree_view/static/src/components/hierarchical_tree_view_renderer.js diff --git a/bemade_hierarchical_tree_view/static/src/components/with_search.js b/bemade_hierarchical_tree_view/static/src/components/with_search.js new file mode 100644 index 0000000..23ff743 --- /dev/null +++ b/bemade_hierarchical_tree_view/static/src/components/with_search.js @@ -0,0 +1,34 @@ +/** @odoo-module **/ + +import {patch} from "@web/core/utils/patch"; +import {WithSearch} from "@web/search/with_search/with_search"; +import {onWillRender} from "@odoo/owl"; +import {HierarchicalTreeViewController} from "./hierarchical_tree_view_controller"; + +patch(WithSearch.prototype, "bemade_hierarchical_tree_view/with_search", { + setup() { + onWillRender(() => { + let children = Object.hasOwn(this.__owl__, 'children') ? this.__owl__.children : null; + if (children && Object.keys(children).length !== 0) { + for (let childProp in children) { + let child = children[childProp]; + if (Object.hasOwn(child, 'component')) { + let childComponent = child.component; + if (childComponent.prototype == HierarchicalTreeViewController.prototype) { + let parentField, childField = (childComponent.parentField, childComponent.childField) + let parentIndex = this.groupBy.indexOf(parentField); + let childIndex = this.groupBy.indexOf(childField); + if (parentIndex) { + this.groupBy.splice(parentField, 1); + } + if (childField) { + this.groupBy.splice(childField, 1); + } + } + } + } + } + }); + this._super(); + } +}); \ No newline at end of file