Get rid of with_search, use view.js instead.
This commit is contained in:
parent
75d7cecec8
commit
2412827811
2 changed files with 35 additions and 34 deletions
35
bemade_hierarchical_tree_view/static/src/components/view.js
Normal file
35
bemade_hierarchical_tree_view/static/src/components/view.js
Normal file
|
|
@ -0,0 +1,35 @@
|
||||||
|
/** @odoo-module **/
|
||||||
|
|
||||||
|
import { View } from "@web/views/view";
|
||||||
|
import { patch } from "@web/core/utils/patch";
|
||||||
|
import { HierarchicalTreeViewController } from "./hierarchical_tree_view_controller";
|
||||||
|
import { onWillRender } from "@odoo/owl";
|
||||||
|
|
||||||
|
patch(View.prototype, "bemade_hierarchical_tree_view.View", {
|
||||||
|
setup() {
|
||||||
|
this._super();
|
||||||
|
/*
|
||||||
|
If we're rendering a hierarchical tree view, we need to remove the parent and
|
||||||
|
child fields from the groupBy parameters we pass down through the component
|
||||||
|
tree. This is necessary since this view type will treat the parent and child
|
||||||
|
groupings differently. We do it here instead of doing it in the controller
|
||||||
|
because the Controller would have to either modify its props or seriously
|
||||||
|
redefine the data used within the template, which we are trying to avoid for
|
||||||
|
code duplication reasons.
|
||||||
|
*/
|
||||||
|
if ( this.Controller.prototype === HierarchicalTreeViewController.prototype ) {
|
||||||
|
onWillRender(() => {
|
||||||
|
let parentField = this.Controller.parentField
|
||||||
|
let childField = this.Controller.childField
|
||||||
|
let parentIndex = this.groupBy.indexOf(parentField);
|
||||||
|
let childIndex = this.groupBy.indexOf(childField);
|
||||||
|
if (parentIndex) {
|
||||||
|
this.groupBy.splice(parentIndex, 1);
|
||||||
|
}
|
||||||
|
if (childField) {
|
||||||
|
this.groupBy.splice(childIndex, 1);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
},
|
||||||
|
});
|
||||||
|
|
@ -1,34 +0,0 @@
|
||||||
/** @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();
|
|
||||||
}
|
|
||||||
});
|
|
||||||
Loading…
Reference in a new issue