more progress made getting a hierarchical tree view defined

This commit is contained in:
Marc Durepos 2023-12-12 21:07:33 -05:00
parent 43d2ed0172
commit d2a4980ac1
9 changed files with 81 additions and 8 deletions

View file

@ -1 +1 @@
from . import models

View file

@ -24,8 +24,8 @@
'author': 'Bemade Inc.',
'website': 'http://www.bemade.org',
'license': 'OPL-1',
'depends': ['web'],
'data': [],
'depends': ['web', 'contacts'],
'data': ['views/res_partner.xml'],
'assets': {
'web.assets_backend': [
'bemade_hierarchical_tree_view/static/src/*/**',

View file

@ -0,0 +1 @@
from . import ir_ui_view

View file

@ -0,0 +1,18 @@
from odoo import models, fields
class View(models.Model):
_inherit = "ir.ui.view"
type = fields.Selection(
selection_add=[('htree', 'Hierarchical Tree')]
)
class ActionView(models.Model):
_inherit = "ir.actions.act_window.view"
view_mode = fields.Selection(
selection_add=[('htree', 'Hierarchical Tree')],
ondelete={'htree': 'cascade'},
)

View file

@ -1 +1,18 @@
/** @odoo-module **/
import { listView } from "@web/views/list/list_view";
import { HierarchicalTreeViewController } from "./hierarchical_tree_view_controller";
import { HierarchicalTreeViewRenderer } from "./hierarchical_tree_view_renderer";
import { registry } from "@web/core/registry";
const HierarchicalTreeView = {
...listView,
type: "htree",
display_name: "Hierarchical Tree",
icon: "fa fa-sitemap",
accessKey: "h",
Controller: HierarchicalTreeViewController,
Renderer: HierarchicalTreeViewRenderer,
}
registry.category("views").add("htree", HierarchicalTreeView);

View file

@ -3,16 +3,19 @@
import { ListController } from "@web/views/list/list_controller";
export class HierarchicalTreeViewController extends ListController {
setup() {
super.setup();
}
}
HierarchicalTreeViewController.props = {
...ListController.props,
parentField: String,
childField: String,
parentField: {type: String, optional: true},
childField: {type: String, optional: true},
}
HierarchicalTreeViewController.defaultProps = {
...ListController.defaultProps,
parentField: 'parent_id',
childField: 'child_id',
}
}
HierarchicalTreeViewController.template = "web.HierarchicalTreeView";

View file

@ -0,0 +1,6 @@
<?xml version="1.0" encoding="UTF-8" ?>
<templates xml:space="preserve">
<t t-name="web.HierarchicalTreeView" owl="1" t-inherit="web.ListView" t-inherit-mode="primary">
</t>
</templates>

View file

@ -1 +1,7 @@
/** @odoo-module **/
/** @odoo-module **/
import { ListRenderer } from "@web/views/list/list_renderer";
export class HierarchicalTreeViewRenderer extends ListRenderer {
}

View file

@ -0,0 +1,22 @@
<?xml version="1.0" encoding="utf-8" ?>
<odoo>
<record id="res_partner_view_htree" model="ir.ui.view">
<field name="name">res.partner.view.htree</field>
<field name="model">res.partner</field>
<field name="arch" type="xml">
<htree>
<field name="name"/>
<field name="email" widget="email"/>
</htree>
</field>
</record>
<record id="contacts.action_contacts" model="ir.actions.act_window">
<field name="view_mode">kanban,tree,form,activity,htree</field>
</record>
<record id="action_contacts_view_htree" model="ir.actions.act_window.view">
<field name="sequence" eval="5"/>
<field name="view_mode">htree</field>
<field name="view_id" ref="res_partner_view_htree"/>
<field name="act_window_id" ref="contacts.action_contacts"/>
</record>
</odoo>