From d2a4980ac1460928e3e9c5ab77062642e65716ef Mon Sep 17 00:00:00 2001 From: Marc Durepos Date: Tue, 12 Dec 2023 21:07:33 -0500 Subject: [PATCH] more progress made getting a hierarchical tree view defined --- bemade_hierarchical_tree_view/__init__.py | 2 +- bemade_hierarchical_tree_view/__manifest__.py | 4 ++-- .../models/__init__.py | 1 + .../models/ir_ui_view.py | 18 +++++++++++++++ .../src/components/hierarchical_tree_view.js | 17 ++++++++++++++ .../hierarchical_tree_view_controller.js | 11 ++++++---- .../hierarchical_tree_view_controller.xml | 6 +++++ .../hierarchical_tree_view_renderer.js | 8 ++++++- .../views/res_partner.xml | 22 +++++++++++++++++++ 9 files changed, 81 insertions(+), 8 deletions(-) create mode 100644 bemade_hierarchical_tree_view/models/__init__.py create mode 100644 bemade_hierarchical_tree_view/models/ir_ui_view.py create mode 100644 bemade_hierarchical_tree_view/static/src/components/hierarchical_tree_view_controller.xml create mode 100644 bemade_hierarchical_tree_view/views/res_partner.xml diff --git a/bemade_hierarchical_tree_view/__init__.py b/bemade_hierarchical_tree_view/__init__.py index 8b13789..0650744 100644 --- a/bemade_hierarchical_tree_view/__init__.py +++ b/bemade_hierarchical_tree_view/__init__.py @@ -1 +1 @@ - +from . import models diff --git a/bemade_hierarchical_tree_view/__manifest__.py b/bemade_hierarchical_tree_view/__manifest__.py index 2f065d0..b2835db 100644 --- a/bemade_hierarchical_tree_view/__manifest__.py +++ b/bemade_hierarchical_tree_view/__manifest__.py @@ -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/*/**', diff --git a/bemade_hierarchical_tree_view/models/__init__.py b/bemade_hierarchical_tree_view/models/__init__.py new file mode 100644 index 0000000..81f52e3 --- /dev/null +++ b/bemade_hierarchical_tree_view/models/__init__.py @@ -0,0 +1 @@ +from . import ir_ui_view diff --git a/bemade_hierarchical_tree_view/models/ir_ui_view.py b/bemade_hierarchical_tree_view/models/ir_ui_view.py new file mode 100644 index 0000000..cd7f412 --- /dev/null +++ b/bemade_hierarchical_tree_view/models/ir_ui_view.py @@ -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'}, + ) diff --git a/bemade_hierarchical_tree_view/static/src/components/hierarchical_tree_view.js b/bemade_hierarchical_tree_view/static/src/components/hierarchical_tree_view.js index abb0456..a717c41 100644 --- a/bemade_hierarchical_tree_view/static/src/components/hierarchical_tree_view.js +++ b/bemade_hierarchical_tree_view/static/src/components/hierarchical_tree_view.js @@ -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); 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 index 1c124dc..c7530d5 100644 --- 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 @@ -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', -} \ No newline at end of file +} +HierarchicalTreeViewController.template = "web.HierarchicalTreeView"; \ No newline at end of file diff --git a/bemade_hierarchical_tree_view/static/src/components/hierarchical_tree_view_controller.xml b/bemade_hierarchical_tree_view/static/src/components/hierarchical_tree_view_controller.xml new file mode 100644 index 0000000..c787897 --- /dev/null +++ b/bemade_hierarchical_tree_view/static/src/components/hierarchical_tree_view_controller.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/bemade_hierarchical_tree_view/static/src/components/hierarchical_tree_view_renderer.js b/bemade_hierarchical_tree_view/static/src/components/hierarchical_tree_view_renderer.js index 029d418..5de3af6 100644 --- a/bemade_hierarchical_tree_view/static/src/components/hierarchical_tree_view_renderer.js +++ b/bemade_hierarchical_tree_view/static/src/components/hierarchical_tree_view_renderer.js @@ -1 +1,7 @@ -/** @odoo-module **/ \ No newline at end of file +/** @odoo-module **/ + +import { ListRenderer } from "@web/views/list/list_renderer"; + +export class HierarchicalTreeViewRenderer extends ListRenderer { + +} \ No newline at end of file diff --git a/bemade_hierarchical_tree_view/views/res_partner.xml b/bemade_hierarchical_tree_view/views/res_partner.xml new file mode 100644 index 0000000..aef4df7 --- /dev/null +++ b/bemade_hierarchical_tree_view/views/res_partner.xml @@ -0,0 +1,22 @@ + + + + res.partner.view.htree + res.partner + + + + + + + + + kanban,tree,form,activity,htree + + + + htree + + + + \ No newline at end of file