diff --git a/app_company_chart_hierarchy/__init__.py b/app_company_chart_hierarchy/__init__.py new file mode 100644 index 00000000..cde864ba --- /dev/null +++ b/app_company_chart_hierarchy/__init__.py @@ -0,0 +1,3 @@ +# -*- coding: utf-8 -*- + +from . import models diff --git a/app_company_chart_hierarchy/__manifest__.py b/app_company_chart_hierarchy/__manifest__.py new file mode 100644 index 00000000..f304632b --- /dev/null +++ b/app_company_chart_hierarchy/__manifest__.py @@ -0,0 +1,71 @@ +# -*- coding: utf-8 -*- + +# Created on 2019-01-04 +# author: 广州尚鹏,https://www.sunpop.cn +# email: 300883@qq.com +# resource of Sunpop +# License LGPL-3.0 or later (http://www.gnu.org/licenses/lgpl). + +# Odoo12在线用户手册(长期更新) +# https://www.sunpop.cn/documentation/user/12.0/en/index.html + +# Odoo12在线开发者手册(长期更新) +# https://www.sunpop.cn/documentation/12.0/index.html + +# Odoo10在线中文用户手册(长期更新) +# https://www.sunpop.cn/documentation/user/10.0/zh_CN/index.html + +# Odoo10离线中文用户手册下载 +# https://www.sunpop.cn/odoo10_user_manual_document_offline/ +# Odoo10离线开发手册下载-含python教程,jquery参考,Jinja2模板,PostgresSQL参考(odoo开发必备) +# https://www.sunpop.cn/odoo10_developer_document_offline/ + + +{ + 'name': 'Company Multi Level Chart Hierarchy, 多层级公司', + 'version': '13.19.11.12', + 'author': 'Sunpop.cn', + 'category': 'Sales', + 'website': 'https://www.sunpop.cn', + 'license': 'LGPL-3', + 'sequence': 2, + 'summary': """ + Chart Hierarchy Widget. Hierarchy Chart, Hierarchy Tree for multi level Parent Children relation tree. + Free for category Hierarchy chart, stock Hierarchy chart. account chart. user multi level chart. + """, + 'description': """ +This module extend to show a Hierarchy chart. +(N+1, N+2, direct subordinates) +image: image_field, +desc: descript_field, +direct_sub: children_field, must be one2many, +child_all_count: child_all_count field, count of direct and indirect children. + """, + 'price': 0.00, + 'currency': 'EUR', + 'depends': [ + 'base', + ], + 'images': ['static/description/banner.png'], + 'data': [ + 'security/res_group.xml', + 'views/res_company_views.xml', + ], + 'demo': [ + ], + 'test': [ + ], + 'css': [ + ], + 'qweb': [ + 'static/src/xml/*.xml', + ], + 'js': [ + ], + 'post_load': None, + 'post_init_hook': None, + 'installable': True, + 'application': True, + 'auto_install': False, +} + diff --git a/app_company_chart_hierarchy/controllers/__init__.py b/app_company_chart_hierarchy/controllers/__init__.py new file mode 100644 index 00000000..7ec351fe --- /dev/null +++ b/app_company_chart_hierarchy/controllers/__init__.py @@ -0,0 +1,2 @@ +# -*- coding: utf-8 -* + diff --git a/app_company_chart_hierarchy/i18n/zh_CN.po b/app_company_chart_hierarchy/i18n/zh_CN.po new file mode 100644 index 00000000..c664e321 --- /dev/null +++ b/app_company_chart_hierarchy/i18n/zh_CN.po @@ -0,0 +1,112 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * app_users_chart_hierarchy +# +# Translators: +# Martin Trigaux, 2018 +# 珠海-杜哥 , 2018 +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server saas~11.5\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2018-09-18 09:49+0000\n" +"PO-Revision-Date: 2018-09-18 09:49+0000\n" +"Last-Translator: 珠海-杜哥 , 2018\n" +"Language-Team: Chinese (China) (https://www.transifex.com/odoo/teams/41243/zh_CN/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: \n" +"Language: zh_CN\n" +"Plural-Forms: nplurals=1; plural=0;\n" + +#. module: app_users_chart_hierarchy +#. openerp-web +#: code:addons/app_users_chart_hierarchy/static/src/js/app_users_chart_hierarchy.js:137 +#, python-format +msgid "Direct Subordinates of %s" +msgstr "%s的直接下属" + +#. module: app_users_chart_hierarchy +#. openerp-web +#: code:addons/app_users_chart_hierarchy/static/src/xml/app_users_chart_hierarchy.xml:126 +#, python-format +msgid "Direct subordinates" +msgstr "直接下属" + +#. module: app_users_chart_hierarchy +#: model:ir.model,name:app_users_chart_hierarchy.model_product.category +msgid "node" +msgstr "员工" + +#. module: app_users_chart_hierarchy +#. openerp-web +#: code:addons/app_users_chart_hierarchy/static/src/xml/app_users_chart_hierarchy.xml:89 +#, python-format +msgid "In order to get an organigram, set a parent and save the record." +msgstr "为了获取组织图,请设置一个上司然后保存" + +#. module: app_users_chart_hierarchy +#. openerp-web +#: code:addons/app_users_chart_hierarchy/static/src/js/app_users_chart_hierarchy.js:147 +#, python-format +msgid "Indirect Subordinates of %s" +msgstr "%s的非直接下属" + +#. module: app_users_chart_hierarchy +#: model:ir.model.fields,field_description:app_users_chart_hierarchy.field_product.category__child_all_count +msgid "Indirect Surbordinates Count" +msgstr "非直接下属数量" + +#. module: app_users_chart_hierarchy +#. openerp-web +#: code:addons/app_users_chart_hierarchy/static/src/xml/app_users_chart_hierarchy.xml:136 +#, python-format +msgid "Indirect subordinates" +msgstr "非直接下属" + +#. module: app_users_chart_hierarchy +#. openerp-web +#: code:addons/app_users_chart_hierarchy/static/src/xml/app_users_chart_hierarchy.xml:66 +#, python-format +msgid "More parents" +msgstr "更多管理员" + +#. module: app_users_chart_hierarchy +#. openerp-web +#: code:addons/app_users_chart_hierarchy/static/src/xml/app_users_chart_hierarchy.xml:87 +#, python-format +msgid "No hierarchy position." +msgstr "没有层级位置" + +#. module: app_users_chart_hierarchy +#: model_terms:ir.ui.view,arch_db:app_users_chart_hierarchy.product.category_view_form_inherit_chart_hierarchy +msgid "Organization Chart" +msgstr "组织图表" + +#. module: app_users_chart_hierarchy +#. openerp-web +#: code:addons/app_users_chart_hierarchy/static/src/xml/app_users_chart_hierarchy.xml:155 +#, python-format +msgid "Redirect" +msgstr "重定向" + +#. module: app_users_chart_hierarchy +#. openerp-web +#: code:addons/app_users_chart_hierarchy/static/src/js/app_users_chart_hierarchy.js:140 +#, python-format +msgid "Subordinates of %s" +msgstr "%s的下属" + +#. module: app_users_chart_hierarchy +#. openerp-web +#: code:addons/app_users_chart_hierarchy/static/src/xml/app_users_chart_hierarchy.xml:88 +#, python-format +msgid "This employee has no parent or subordinate." +msgstr "该员工没有上司或下属" + +#. module: app_users_chart_hierarchy +#. openerp-web +#: code:addons/app_users_chart_hierarchy/static/src/xml/app_users_chart_hierarchy.xml:144 +#, python-format +msgid "Total" +msgstr "合计" diff --git a/app_company_chart_hierarchy/models/__init__.py b/app_company_chart_hierarchy/models/__init__.py new file mode 100644 index 00000000..e759f74f --- /dev/null +++ b/app_company_chart_hierarchy/models/__init__.py @@ -0,0 +1,3 @@ +# -*- coding: utf-8 -*- + +from . import res_company diff --git a/app_company_chart_hierarchy/models/res_company.py b/app_company_chart_hierarchy/models/res_company.py new file mode 100644 index 00000000..1df073fc --- /dev/null +++ b/app_company_chart_hierarchy/models/res_company.py @@ -0,0 +1,11 @@ +# -*- coding: utf-8 -*- + +from odoo import api, fields, models, tools, _ + + +class Company(models.Model): + _inherit = "res.company" + + # 注意,res.partner 有 parent_id 和 child_ids + _parent_name = "parent_id" + diff --git a/app_company_chart_hierarchy/security/res_group.xml b/app_company_chart_hierarchy/security/res_group.xml new file mode 100644 index 00000000..9e24c066 --- /dev/null +++ b/app_company_chart_hierarchy/security/res_group.xml @@ -0,0 +1,13 @@ + + + + + + + + + + \ No newline at end of file diff --git a/app_company_chart_hierarchy/static/description/banner.gif b/app_company_chart_hierarchy/static/description/banner.gif new file mode 100644 index 00000000..60fbd472 Binary files /dev/null and b/app_company_chart_hierarchy/static/description/banner.gif differ diff --git a/app_company_chart_hierarchy/static/description/banner.png b/app_company_chart_hierarchy/static/description/banner.png new file mode 100644 index 00000000..91d2f883 Binary files /dev/null and b/app_company_chart_hierarchy/static/description/banner.png differ diff --git a/app_company_chart_hierarchy/static/description/demo1.jpg b/app_company_chart_hierarchy/static/description/demo1.jpg new file mode 100644 index 00000000..03fb1e02 Binary files /dev/null and b/app_company_chart_hierarchy/static/description/demo1.jpg differ diff --git a/app_company_chart_hierarchy/static/description/demo2.jpg b/app_company_chart_hierarchy/static/description/demo2.jpg new file mode 100644 index 00000000..632e5db3 Binary files /dev/null and b/app_company_chart_hierarchy/static/description/demo2.jpg differ diff --git a/app_company_chart_hierarchy/static/description/demo4.jpg b/app_company_chart_hierarchy/static/description/demo4.jpg new file mode 100644 index 00000000..99cec169 Binary files /dev/null and b/app_company_chart_hierarchy/static/description/demo4.jpg differ diff --git a/app_company_chart_hierarchy/static/description/demo5.jpg b/app_company_chart_hierarchy/static/description/demo5.jpg new file mode 100644 index 00000000..de5add33 Binary files /dev/null and b/app_company_chart_hierarchy/static/description/demo5.jpg differ diff --git a/app_company_chart_hierarchy/static/description/demo6.jpg b/app_company_chart_hierarchy/static/description/demo6.jpg new file mode 100644 index 00000000..533468d7 Binary files /dev/null and b/app_company_chart_hierarchy/static/description/demo6.jpg differ diff --git a/app_company_chart_hierarchy/static/description/demo7.jpg b/app_company_chart_hierarchy/static/description/demo7.jpg new file mode 100644 index 00000000..4673c00e Binary files /dev/null and b/app_company_chart_hierarchy/static/description/demo7.jpg differ diff --git a/app_company_chart_hierarchy/static/description/demo9.jpg b/app_company_chart_hierarchy/static/description/demo9.jpg new file mode 100644 index 00000000..41c9d853 Binary files /dev/null and b/app_company_chart_hierarchy/static/description/demo9.jpg differ diff --git a/app_company_chart_hierarchy/static/description/demoa.jpg b/app_company_chart_hierarchy/static/description/demoa.jpg new file mode 100644 index 00000000..133082c4 Binary files /dev/null and b/app_company_chart_hierarchy/static/description/demoa.jpg differ diff --git a/app_company_chart_hierarchy/static/description/icon.png b/app_company_chart_hierarchy/static/description/icon.png new file mode 100644 index 00000000..a5a31dfd Binary files /dev/null and b/app_company_chart_hierarchy/static/description/icon.png differ diff --git a/app_company_chart_hierarchy/static/description/index.html b/app_company_chart_hierarchy/static/description/index.html new file mode 100644 index 00000000..ac378b8e --- /dev/null +++ b/app_company_chart_hierarchy/static/description/index.html @@ -0,0 +1,212 @@ +
+
+

Company Multi Level Chart Hierarchy

+

Very useful for show parent child relationship, like product category, stock location, hr department

+
+
+
+
+
+
+ Key features: +
    +
  • + + Easy to make show parent children Chart Hierarchy. +
  • +
  • + + Free to Use in product category. +
  • +
  • + + Free to Use in stock location. +
  • +
  • + + Free to Use in hr department, employee. +
  • +
  • + + Free to Use in Account chart. +
  • +
  • + + Free to Use in User Alliance Distribution Multi level. +
  • +
  • + + Free to Use in Company Multi Level Chart Hierarchy. +
  • +
  • + + It's a widget, you can use it in anywhere in odoo. +
  • +
+
+ +

Buy + + this 1 chart hierarchy + + in odoo Store. Get free 6 related free apps. + +

+
+ +
+ + +
+
+
+ +
+
+

 

+

Company Multi Level Chart Hierarchy

+
+ +
+
+
+ +
+
+

 

+

Product category Chart Hierarchy

+
+ +
+

Show sub category and quick access category

+
+ +
+
+
+ +
+
+

 

+

Stock Location Chart Hierarchy

+
+ +
+
+
+ +
+
+

 

+

HR Department Chart Hierarchy

+
+ +
+

HR Emploee Chart Hierarchy (this is include in odoo)

+
+ +
+
+
+
+
+

 

+

Account Chart Hierarchy

+
+ +
+
+
+ +
+
+

 

+

User Alliance Distribution Multi level

+
+ +
+
+
+ +
+
+

Easy to setup just use widget='web_chart_hierarchy'. like this

+
+ +
+

Also need to change view for better ui

+
+ +
+


Use follow param to setup widget:

+

image: --the field of image.

+

desc: --the field of subtitle.

+

direct_sub: --the field of sub node.

+

child_all_count: --the field of node count.

+
+
+ +
+
+
+

Technical Help & Support

+
+
+
+

+ For any type of technical help & support requests, Feel free to contact us

+ + guohuadeng@hotmail.com +

+ Via QQ: 300883

+ + 300883@qq.com +
+
+

+ Visit our website for more support.

+ + https://www.sunpop.cn +
+
+
+
+ diff --git a/app_company_chart_hierarchy/static/description/setup1.jpg b/app_company_chart_hierarchy/static/description/setup1.jpg new file mode 100644 index 00000000..310b1e36 Binary files /dev/null and b/app_company_chart_hierarchy/static/description/setup1.jpg differ diff --git a/app_company_chart_hierarchy/static/description/setup2.jpg b/app_company_chart_hierarchy/static/description/setup2.jpg new file mode 100644 index 00000000..0eb197c6 Binary files /dev/null and b/app_company_chart_hierarchy/static/description/setup2.jpg differ diff --git a/app_company_chart_hierarchy/views/res_company_views.xml b/app_company_chart_hierarchy/views/res_company_views.xml new file mode 100644 index 00000000..caf75e3f --- /dev/null +++ b/app_company_chart_hierarchy/views/res_company_views.xml @@ -0,0 +1,37 @@ + + + + app.res.company.form + res.company + + + +
+
+ + + +
+
+

Hierarchy Chart

+ +
+
+
+ + + + + + + + + +
+
+
diff --git a/app_hr_department_chart/__init__.py b/app_hr_department_chart/__init__.py new file mode 100644 index 00000000..cde864ba --- /dev/null +++ b/app_hr_department_chart/__init__.py @@ -0,0 +1,3 @@ +# -*- coding: utf-8 -*- + +from . import models diff --git a/app_hr_department_chart/__manifest__.py b/app_hr_department_chart/__manifest__.py new file mode 100644 index 00000000..579d47cc --- /dev/null +++ b/app_hr_department_chart/__manifest__.py @@ -0,0 +1,70 @@ +# -*- coding: utf-8 -*- + +# Created on 2019-01-04 +# author: 广州尚鹏,https://www.sunpop.cn +# email: 300883@qq.com +# resource of Sunpop +# License LGPL-3.0 or later (http://www.gnu.org/licenses/lgpl). + +# Odoo12在线用户手册(长期更新) +# https://www.sunpop.cn/documentation/user/12.0/en/index.html + +# Odoo12在线开发者手册(长期更新) +# https://www.sunpop.cn/documentation/12.0/index.html + +# Odoo10在线中文用户手册(长期更新) +# https://www.sunpop.cn/documentation/user/10.0/zh_CN/index.html + +# Odoo10离线中文用户手册下载 +# https://www.sunpop.cn/odoo10_user_manual_document_offline/ +# Odoo10离线开发手册下载-含python教程,jquery参考,Jinja2模板,PostgresSQL参考(odoo开发必备) +# https://www.sunpop.cn/odoo10_developer_document_offline/ + + +{ + 'name': 'Hr Department Chart Hierarchy, 员工部门多层级结构图', + 'version': '13.19.11.12', + 'author': 'Sunpop.cn', + 'category': 'Account', + 'website': 'https://www.sunpop.cn', + 'license': 'LGPL-3', + 'sequence': 2, + 'summary': """ + Chart Hierarchy Widget. Hierarchy Chart, Hierarchy Tree for multi level Parent Children relation tree. + Free for category Hierarchy chart, stock Hierarchy chart. account chart. + """, + 'description': """ +This module extend to show a Hierarchy chart. +(N+1, N+2, direct subordinates) +image: image_field, +desc: descript_field, +direct_sub: children_field, must be one2many, +child_all_count: child_all_count field, count of direct and indirect children. + """, + 'price': 0.00, + 'currency': 'EUR', + 'depends': [ + 'hr_org_chart', + ], + 'images': ['static/description/banner.gif'], + 'data': [ + 'views/hr_department_views.xml', + ], + 'demo': [ + ], + 'test': [ + ], + 'css': [ + ], + 'qweb': [ + 'static/src/xml/*.xml', + ], + 'js': [ + ], + 'post_load': None, + 'post_init_hook': None, + 'installable': True, + 'application': True, + 'auto_install': False, +} + diff --git a/app_hr_department_chart/controllers/__init__.py b/app_hr_department_chart/controllers/__init__.py new file mode 100644 index 00000000..7ec351fe --- /dev/null +++ b/app_hr_department_chart/controllers/__init__.py @@ -0,0 +1,2 @@ +# -*- coding: utf-8 -* + diff --git a/app_hr_department_chart/i18n/zh_CN.po b/app_hr_department_chart/i18n/zh_CN.po new file mode 100644 index 00000000..93cfbf6d --- /dev/null +++ b/app_hr_department_chart/i18n/zh_CN.po @@ -0,0 +1,67 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * app_product_category_chart +# +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 12.0+e-20190301\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2019-04-09 00:38+0000\n" +"PO-Revision-Date: 2019-04-09 00:38+0000\n" +"Last-Translator: <>\n" +"Language-Team: \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: \n" +"Plural-Forms: \n" + +#. module: app_product_category_chart +#: model_terms:ir.ui.view,arch_db:app_product_category_chart.app_product_category_form_view +msgid "Hierarchy Chart" +msgstr "目录结构图" + +#. module: app_product_category_chart +#: model:ir.model.fields,field_description:app_product_category_chart.field_product_category__image +msgid "Image" +msgstr "图像" + +#. module: app_product_category_chart +#: model:ir.model.fields,field_description:app_product_category_chart.field_product_category__child_all_count +msgid "Indirect Surbordinates Count" +msgstr "非直接下属数量" + +#. module: app_product_category_chart +#: model:ir.model.fields,field_description:app_product_category_chart.field_product_category__image_medium +msgid "Medium-sized image" +msgstr "中等尺寸图像" + +#. module: app_product_category_chart +#: model:ir.model.fields,help:app_product_category_chart.field_product_category__image_medium +msgid "Medium-sized image of this Category. It is automatically resized as a 128x128px image, with aspect ratio preserved. Use this field in form views or some kanban views." +msgstr "" + +#. module: app_product_category_chart +#: model_terms:ir.ui.view,arch_db:app_product_category_chart.app_product_category_form_view +msgid "Please get widget from https://apps.odoo.com/apps/modules/13.0/app_web_chart_hierarchy/" +msgstr "" + +#. module: app_product_category_chart +#: model:ir.model,name:app_product_category_chart.model_product_category +msgid "Product Category" +msgstr "产品种类" + +#. module: app_product_category_chart +#: model:ir.model.fields,field_description:app_product_category_chart.field_product_category__image_small +msgid "Small-sized image" +msgstr "小尺寸图像" + +#. module: app_product_category_chart +#: model:ir.model.fields,help:app_product_category_chart.field_product_category__image_small +msgid "Small-sized image of this Category. It is automatically resized as a 64x64px image, with aspect ratio preserved. Use this field anywhere a small image is required." +msgstr "" + +#. module: app_product_category_chart +#: model:ir.model.fields,help:app_product_category_chart.field_product_category__image +msgid "This field holds the image used as avatar for this category, limited to 1024x1024px" +msgstr "目录图像最大为 1024x1024px" + diff --git a/app_hr_department_chart/models/__init__.py b/app_hr_department_chart/models/__init__.py new file mode 100644 index 00000000..51fb735b --- /dev/null +++ b/app_hr_department_chart/models/__init__.py @@ -0,0 +1,3 @@ +# -*- coding: utf-8 -*- + +from . import hr_department diff --git a/app_hr_department_chart/models/hr_department.py b/app_hr_department_chart/models/hr_department.py new file mode 100644 index 00000000..a60fcfbc --- /dev/null +++ b/app_hr_department_chart/models/hr_department.py @@ -0,0 +1,23 @@ +# -*- coding: utf-8 -*- + +from odoo import api, fields, models, tools, _ + + +class Department(models.Model): + # 目录图片,可显示小图标, + _name = "hr.department" + _inherit = ['hr.department', 'image.mixin'] + + # 目录图片,可显示小图标,odoo13 在 mixin 中处理了 + + + child_all_count = fields.Integer( + 'Indirect Surbordinates Count', + compute='_compute_child_all_count', store=False) + + manager_name = fields.Char(related="manager_id.name", store=True) + + @api.depends('child_ids.child_all_count') + def _compute_child_all_count(self): + for rec in self: + rec.child_all_count = len(rec.child_ids) + sum(child.child_all_count for child in rec.child_ids) diff --git a/app_hr_department_chart/static/description/banner.gif b/app_hr_department_chart/static/description/banner.gif new file mode 100644 index 00000000..54fb9413 Binary files /dev/null and b/app_hr_department_chart/static/description/banner.gif differ diff --git a/app_hr_department_chart/static/description/banner.png b/app_hr_department_chart/static/description/banner.png new file mode 100644 index 00000000..a83464d6 Binary files /dev/null and b/app_hr_department_chart/static/description/banner.png differ diff --git a/app_hr_department_chart/static/description/demo1.jpg b/app_hr_department_chart/static/description/demo1.jpg new file mode 100644 index 00000000..03fb1e02 Binary files /dev/null and b/app_hr_department_chart/static/description/demo1.jpg differ diff --git a/app_hr_department_chart/static/description/demo2.jpg b/app_hr_department_chart/static/description/demo2.jpg new file mode 100644 index 00000000..632e5db3 Binary files /dev/null and b/app_hr_department_chart/static/description/demo2.jpg differ diff --git a/app_hr_department_chart/static/description/demo4.jpg b/app_hr_department_chart/static/description/demo4.jpg new file mode 100644 index 00000000..99cec169 Binary files /dev/null and b/app_hr_department_chart/static/description/demo4.jpg differ diff --git a/app_hr_department_chart/static/description/demo5.jpg b/app_hr_department_chart/static/description/demo5.jpg new file mode 100644 index 00000000..de5add33 Binary files /dev/null and b/app_hr_department_chart/static/description/demo5.jpg differ diff --git a/app_hr_department_chart/static/description/demo6.jpg b/app_hr_department_chart/static/description/demo6.jpg new file mode 100644 index 00000000..533468d7 Binary files /dev/null and b/app_hr_department_chart/static/description/demo6.jpg differ diff --git a/app_hr_department_chart/static/description/demo7.jpg b/app_hr_department_chart/static/description/demo7.jpg new file mode 100644 index 00000000..4673c00e Binary files /dev/null and b/app_hr_department_chart/static/description/demo7.jpg differ diff --git a/app_hr_department_chart/static/description/demo9.jpg b/app_hr_department_chart/static/description/demo9.jpg new file mode 100644 index 00000000..41c9d853 Binary files /dev/null and b/app_hr_department_chart/static/description/demo9.jpg differ diff --git a/app_hr_department_chart/static/description/icon.png b/app_hr_department_chart/static/description/icon.png new file mode 100644 index 00000000..a5a31dfd Binary files /dev/null and b/app_hr_department_chart/static/description/icon.png differ diff --git a/app_hr_department_chart/static/description/index.html b/app_hr_department_chart/static/description/index.html new file mode 100644 index 00000000..fc4fe981 --- /dev/null +++ b/app_hr_department_chart/static/description/index.html @@ -0,0 +1,190 @@ +
+
+

HR Department Chart Hierarchy for Multi Level

+

Very useful for show parent child relationship, like product category, stock location, hr department

+
+
+
+
+
+
+ Key features: +
    +
  • + + Easy to make show parent children Chart Hierarchy. +
  • +
  • + + Free to Use in product category. +
  • +
  • + + Free to Use in stock location. +
  • +
  • + + Free to Use in hr department, employee. +
  • +
  • + + Free to Use in Account chart. +
  • +
  • + + Free to Use in User Alliance Distribution Multi level. +
  • +
  • + + It's a widget, you can use it in anywhere in odoo. +
  • +
+
+ +

Buy + + this 1 chart hierarchy + + in odoo Store. Get free 5 related free apps. + +

+
+ +
+ + +
+
+
+ +
+
+

 

+

Product category Chart Hierarchy

+
+ +
+

Show sub category and quick access category

+
+ +
+
+
+ +
+
+

 

+

Stock Location Chart Hierarchy

+
+ +
+
+
+ +
+
+

 

+

HR Department Chart Hierarchy

+
+ +
+

HR Emploee Chart Hierarchy (this is include in odoo)

+
+ +
+
+
+
+
+

 

+

Account Chart Hierarchy

+
+ +
+
+
+ +
+
+

 

+

User Alliance Distribution Multi level

+
+ +
+
+
+ +
+
+

Easy to setup just use widget='web_chart_hierarchy'. like this

+
+ +
+

Also need to change view for better ui

+
+ +
+


Use follow param to setup widget:

+

image: --the field of image.

+

desc: --the field of subtitle.

+

direct_sub: --the field of sub node.

+

child_all_count: --the field of node count.

+
+
+ +
+
+
+

Technical Help & Support

+
+
+
+

+ For any type of technical help & support requests, Feel free to contact us

+ + guohuadeng@hotmail.com +

+ Via QQ: 300883

+ + 300883@qq.com +
+
+

+ Visit our website for more support.

+ + https://www.sunpop.cn +
+
+
+
+ diff --git a/app_hr_department_chart/static/description/setup1.jpg b/app_hr_department_chart/static/description/setup1.jpg new file mode 100644 index 00000000..310b1e36 Binary files /dev/null and b/app_hr_department_chart/static/description/setup1.jpg differ diff --git a/app_hr_department_chart/static/description/setup2.jpg b/app_hr_department_chart/static/description/setup2.jpg new file mode 100644 index 00000000..0eb197c6 Binary files /dev/null and b/app_hr_department_chart/static/description/setup2.jpg differ diff --git a/app_hr_department_chart/views/hr_department_views.xml b/app_hr_department_chart/views/hr_department_views.xml new file mode 100644 index 00000000..9d63465a --- /dev/null +++ b/app_hr_department_chart/views/hr_department_views.xml @@ -0,0 +1,32 @@ + + + + app.hr.department.form + hr.department + + + +
+
+ + +
+
+

Hierarchy Chart

+ +
+
+
+ + + +
+
+
diff --git a/app_product_category_chart/__init__.py b/app_product_category_chart/__init__.py new file mode 100644 index 00000000..cde864ba --- /dev/null +++ b/app_product_category_chart/__init__.py @@ -0,0 +1,3 @@ +# -*- coding: utf-8 -*- + +from . import models diff --git a/app_product_category_chart/__manifest__.py b/app_product_category_chart/__manifest__.py new file mode 100644 index 00000000..aaf6b725 --- /dev/null +++ b/app_product_category_chart/__manifest__.py @@ -0,0 +1,69 @@ +# -*- coding: utf-8 -*- + +# Created on 2019-01-04 +# author: 广州尚鹏,https://www.sunpop.cn +# email: 300883@qq.com +# resource of Sunpop +# License LGPL-3.0 or later (http://www.gnu.org/licenses/lgpl). + +# Odoo12在线用户手册(长期更新) +# https://www.sunpop.cn/documentation/user/12.0/en/index.html + +# Odoo12在线开发者手册(长期更新) +# https://www.sunpop.cn/documentation/12.0/index.html + +# Odoo10在线中文用户手册(长期更新) +# https://www.sunpop.cn/documentation/user/10.0/zh_CN/index.html + +# Odoo10离线中文用户手册下载 +# https://www.sunpop.cn/odoo10_user_manual_document_offline/ +# Odoo10离线开发手册下载-含python教程,jquery参考,Jinja2模板,PostgresSQL参考(odoo开发必备) +# https://www.sunpop.cn/odoo10_developer_document_offline/ + + +{ + 'name': 'Category Chart Hierarchy, 产品目录多层级结构图', + 'version': '12.19.04.19', + 'author': 'Sunpop.cn', + 'category': 'Base', + 'website': 'https://www.sunpop.cn', + 'license': 'LGPL-3', + 'sequence': 2, + 'summary': """ + Chart Hierarchy Widget. Hierarchy Chart, Hierarchy Tree for multi level Parent Children relation tree. + Free for category Hierarchy chart, stock Hierarchy chart. account chart. + """, + 'description': """ +This module extend to show a Hierarchy chart. +(N+1, N+2, direct subordinates) +image: image_field, +desc: descript_field, +direct_sub: children_field, must be one2many, +child_all_count: child_all_count field, count of direct and indirect children. + """, + 'price': 0.00, + 'currency': 'EUR', + 'depends': [ + 'product', + ], + 'images': ['static/description/banner.gif'], + 'data': [ + 'views/product_category_views.xml', + ], + 'demo': [ + ], + 'test': [ + ], + 'css': [ + ], + 'qweb': [ + 'static/src/xml/*.xml', + ], + 'js': [ + ], + 'post_load': None, + 'post_init_hook': None, + 'installable': True, + 'application': True, + 'auto_install': False, +} diff --git a/app_product_category_chart/controllers/__init__.py b/app_product_category_chart/controllers/__init__.py new file mode 100644 index 00000000..7ec351fe --- /dev/null +++ b/app_product_category_chart/controllers/__init__.py @@ -0,0 +1,2 @@ +# -*- coding: utf-8 -* + diff --git a/app_product_category_chart/i18n/zh_CN.po b/app_product_category_chart/i18n/zh_CN.po new file mode 100644 index 00000000..93cfbf6d --- /dev/null +++ b/app_product_category_chart/i18n/zh_CN.po @@ -0,0 +1,67 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * app_product_category_chart +# +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 12.0+e-20190301\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2019-04-09 00:38+0000\n" +"PO-Revision-Date: 2019-04-09 00:38+0000\n" +"Last-Translator: <>\n" +"Language-Team: \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: \n" +"Plural-Forms: \n" + +#. module: app_product_category_chart +#: model_terms:ir.ui.view,arch_db:app_product_category_chart.app_product_category_form_view +msgid "Hierarchy Chart" +msgstr "目录结构图" + +#. module: app_product_category_chart +#: model:ir.model.fields,field_description:app_product_category_chart.field_product_category__image +msgid "Image" +msgstr "图像" + +#. module: app_product_category_chart +#: model:ir.model.fields,field_description:app_product_category_chart.field_product_category__child_all_count +msgid "Indirect Surbordinates Count" +msgstr "非直接下属数量" + +#. module: app_product_category_chart +#: model:ir.model.fields,field_description:app_product_category_chart.field_product_category__image_medium +msgid "Medium-sized image" +msgstr "中等尺寸图像" + +#. module: app_product_category_chart +#: model:ir.model.fields,help:app_product_category_chart.field_product_category__image_medium +msgid "Medium-sized image of this Category. It is automatically resized as a 128x128px image, with aspect ratio preserved. Use this field in form views or some kanban views." +msgstr "" + +#. module: app_product_category_chart +#: model_terms:ir.ui.view,arch_db:app_product_category_chart.app_product_category_form_view +msgid "Please get widget from https://apps.odoo.com/apps/modules/13.0/app_web_chart_hierarchy/" +msgstr "" + +#. module: app_product_category_chart +#: model:ir.model,name:app_product_category_chart.model_product_category +msgid "Product Category" +msgstr "产品种类" + +#. module: app_product_category_chart +#: model:ir.model.fields,field_description:app_product_category_chart.field_product_category__image_small +msgid "Small-sized image" +msgstr "小尺寸图像" + +#. module: app_product_category_chart +#: model:ir.model.fields,help:app_product_category_chart.field_product_category__image_small +msgid "Small-sized image of this Category. It is automatically resized as a 64x64px image, with aspect ratio preserved. Use this field anywhere a small image is required." +msgstr "" + +#. module: app_product_category_chart +#: model:ir.model.fields,help:app_product_category_chart.field_product_category__image +msgid "This field holds the image used as avatar for this category, limited to 1024x1024px" +msgstr "目录图像最大为 1024x1024px" + diff --git a/app_product_category_chart/models/__init__.py b/app_product_category_chart/models/__init__.py new file mode 100644 index 00000000..d488dbed --- /dev/null +++ b/app_product_category_chart/models/__init__.py @@ -0,0 +1,3 @@ +# -*- coding: utf-8 -*- + +from . import product_category diff --git a/app_product_category_chart/models/product_category.py b/app_product_category_chart/models/product_category.py new file mode 100644 index 00000000..44c17686 --- /dev/null +++ b/app_product_category_chart/models/product_category.py @@ -0,0 +1,19 @@ +# -*- coding: utf-8 -*- + +from odoo import api, fields, models, tools, _ + + +class ProductCategory(models.Model): + _name = "product.category" + _inherit = ['product.category', 'image.mixin'] + + # 目录图片,可显示小图标,odoo13 在 mixin 中处理了 + + child_all_count = fields.Integer( + 'Indirect Surbordinates Count', + compute='_compute_child_all_count', store=False) + + @api.depends('child_id.child_all_count') + def _compute_child_all_count(self): + for rec in self: + rec.child_all_count = len(rec.child_id) + sum(child.child_all_count for child in rec.child_id) diff --git a/app_product_category_chart/static/description/banner.gif b/app_product_category_chart/static/description/banner.gif new file mode 100644 index 00000000..54fb9413 Binary files /dev/null and b/app_product_category_chart/static/description/banner.gif differ diff --git a/app_product_category_chart/static/description/banner.png b/app_product_category_chart/static/description/banner.png new file mode 100644 index 00000000..a83464d6 Binary files /dev/null and b/app_product_category_chart/static/description/banner.png differ diff --git a/app_product_category_chart/static/description/demo1.jpg b/app_product_category_chart/static/description/demo1.jpg new file mode 100644 index 00000000..03fb1e02 Binary files /dev/null and b/app_product_category_chart/static/description/demo1.jpg differ diff --git a/app_product_category_chart/static/description/demo2.jpg b/app_product_category_chart/static/description/demo2.jpg new file mode 100644 index 00000000..632e5db3 Binary files /dev/null and b/app_product_category_chart/static/description/demo2.jpg differ diff --git a/app_product_category_chart/static/description/demo4.jpg b/app_product_category_chart/static/description/demo4.jpg new file mode 100644 index 00000000..99cec169 Binary files /dev/null and b/app_product_category_chart/static/description/demo4.jpg differ diff --git a/app_product_category_chart/static/description/demo5.jpg b/app_product_category_chart/static/description/demo5.jpg new file mode 100644 index 00000000..de5add33 Binary files /dev/null and b/app_product_category_chart/static/description/demo5.jpg differ diff --git a/app_product_category_chart/static/description/demo6.jpg b/app_product_category_chart/static/description/demo6.jpg new file mode 100644 index 00000000..533468d7 Binary files /dev/null and b/app_product_category_chart/static/description/demo6.jpg differ diff --git a/app_product_category_chart/static/description/demo7.jpg b/app_product_category_chart/static/description/demo7.jpg new file mode 100644 index 00000000..4673c00e Binary files /dev/null and b/app_product_category_chart/static/description/demo7.jpg differ diff --git a/app_product_category_chart/static/description/demo9.jpg b/app_product_category_chart/static/description/demo9.jpg new file mode 100644 index 00000000..41c9d853 Binary files /dev/null and b/app_product_category_chart/static/description/demo9.jpg differ diff --git a/app_product_category_chart/static/description/icon.png b/app_product_category_chart/static/description/icon.png new file mode 100644 index 00000000..a5a31dfd Binary files /dev/null and b/app_product_category_chart/static/description/icon.png differ diff --git a/app_product_category_chart/static/description/index.html b/app_product_category_chart/static/description/index.html new file mode 100644 index 00000000..3c5ca9a9 --- /dev/null +++ b/app_product_category_chart/static/description/index.html @@ -0,0 +1,190 @@ +
+
+

Product Category Chart Hierarchy

+

Very useful for show parent child relationship, like product category, stock location, hr department

+
+
+
+
+
+
+ Key features: +
    +
  • + + Easy to make show parent children Chart Hierarchy. +
  • +
  • + + Free to Use in product category. +
  • +
  • + + Free to Use in stock location. +
  • +
  • + + Free to Use in hr department, employee. +
  • +
  • + + Free to Use in Account chart. +
  • +
  • + + Free to Use in User Alliance Distribution Multi level. +
  • +
  • + + It's a widget, you can use it in anywhere in odoo. +
  • +
+
+ +

Buy + + this 1 chart hierarchy + + in odoo Store. Get free 5 related free apps. + +

+
+ +
+ + +
+
+
+ +
+
+

 

+

Product category Chart Hierarchy

+
+ +
+

Show sub category and quick access category

+
+ +
+
+
+ +
+
+

 

+

Stock Location Chart Hierarchy

+
+ +
+
+
+ +
+
+

 

+

HR Department Chart Hierarchy

+
+ +
+

HR Emploee Chart Hierarchy (this is include in odoo)

+
+ +
+
+
+
+
+

 

+

Account Chart Hierarchy

+
+ +
+
+
+ +
+
+

 

+

User Alliance Distribution Multi level

+
+ +
+
+
+ +
+
+

Easy to setup just use widget='web_chart_hierarchy'. like this

+
+ +
+

Also need to change view for better ui

+
+ +
+


Use follow param to setup widget:

+

image: --the field of image.

+

desc: --the field of subtitle.

+

direct_sub: --the field of sub node.

+

child_all_count: --the field of node count.

+
+
+ +
+
+
+

Technical Help & Support

+
+
+
+

+ For any type of technical help & support requests, Feel free to contact us

+ + guohuadeng@hotmail.com +

+ Via QQ: 300883

+ + 300883@qq.com +
+
+

+ Visit our website for more support.

+ + https://www.sunpop.cn +
+
+
+
+ diff --git a/app_product_category_chart/static/description/setup1.jpg b/app_product_category_chart/static/description/setup1.jpg new file mode 100644 index 00000000..310b1e36 Binary files /dev/null and b/app_product_category_chart/static/description/setup1.jpg differ diff --git a/app_product_category_chart/static/description/setup2.jpg b/app_product_category_chart/static/description/setup2.jpg new file mode 100644 index 00000000..0eb197c6 Binary files /dev/null and b/app_product_category_chart/static/description/setup2.jpg differ diff --git a/app_product_category_chart/static/img/专家顾问.png b/app_product_category_chart/static/img/专家顾问.png new file mode 100644 index 00000000..20353c64 Binary files /dev/null and b/app_product_category_chart/static/img/专家顾问.png differ diff --git a/app_product_category_chart/static/img/值班经理.png b/app_product_category_chart/static/img/值班经理.png new file mode 100644 index 00000000..b8fa6afb Binary files /dev/null and b/app_product_category_chart/static/img/值班经理.png differ diff --git a/app_product_category_chart/static/img/内部往来挂账.png b/app_product_category_chart/static/img/内部往来挂账.png new file mode 100644 index 00000000..68f32682 Binary files /dev/null and b/app_product_category_chart/static/img/内部往来挂账.png differ diff --git a/app_product_category_chart/static/img/办公家具.png b/app_product_category_chart/static/img/办公家具.png new file mode 100644 index 00000000..12971616 Binary files /dev/null and b/app_product_category_chart/static/img/办公家具.png differ diff --git a/app_product_category_chart/static/img/半成品质检.png b/app_product_category_chart/static/img/半成品质检.png new file mode 100644 index 00000000..37c42899 Binary files /dev/null and b/app_product_category_chart/static/img/半成品质检.png differ diff --git a/app_product_category_chart/static/img/原材料.png b/app_product_category_chart/static/img/原材料.png new file mode 100644 index 00000000..57d2bb36 Binary files /dev/null and b/app_product_category_chart/static/img/原材料.png differ diff --git a/app_product_category_chart/static/img/成品.png b/app_product_category_chart/static/img/成品.png new file mode 100644 index 00000000..0ad857f4 Binary files /dev/null and b/app_product_category_chart/static/img/成品.png differ diff --git a/app_product_category_chart/static/img/所有.png b/app_product_category_chart/static/img/所有.png new file mode 100644 index 00000000..e6d08c65 Binary files /dev/null and b/app_product_category_chart/static/img/所有.png differ diff --git a/app_product_category_chart/static/img/旅游.png b/app_product_category_chart/static/img/旅游.png new file mode 100644 index 00000000..a856ca6d Binary files /dev/null and b/app_product_category_chart/static/img/旅游.png differ diff --git a/app_product_category_chart/static/img/服务.png b/app_product_category_chart/static/img/服务.png new file mode 100644 index 00000000..9d5192be Binary files /dev/null and b/app_product_category_chart/static/img/服务.png differ diff --git a/app_product_category_chart/static/img/消耗品.png b/app_product_category_chart/static/img/消耗品.png new file mode 100644 index 00000000..7ec2ccf0 Binary files /dev/null and b/app_product_category_chart/static/img/消耗品.png differ diff --git a/app_product_category_chart/static/img/管理.png b/app_product_category_chart/static/img/管理.png new file mode 100644 index 00000000..5cb89a2e Binary files /dev/null and b/app_product_category_chart/static/img/管理.png differ diff --git a/app_product_category_chart/static/img/费用管理.png b/app_product_category_chart/static/img/费用管理.png new file mode 100644 index 00000000..ee5a94aa Binary files /dev/null and b/app_product_category_chart/static/img/费用管理.png differ diff --git a/app_product_category_chart/static/img/软件.png b/app_product_category_chart/static/img/软件.png new file mode 100644 index 00000000..691b5900 Binary files /dev/null and b/app_product_category_chart/static/img/软件.png differ diff --git a/app_product_category_chart/static/img/运费.png b/app_product_category_chart/static/img/运费.png new file mode 100644 index 00000000..10c8be96 Binary files /dev/null and b/app_product_category_chart/static/img/运费.png differ diff --git a/app_product_category_chart/static/img/销售.png b/app_product_category_chart/static/img/销售.png new file mode 100644 index 00000000..9e8a70a2 Binary files /dev/null and b/app_product_category_chart/static/img/销售.png differ diff --git a/app_product_category_chart/views/product_category_views.xml b/app_product_category_chart/views/product_category_views.xml new file mode 100644 index 00000000..c6f5c5a2 --- /dev/null +++ b/app_product_category_chart/views/product_category_views.xml @@ -0,0 +1,36 @@ + + + + app.product.category.form + product.category + + + +
+
+ + + +
+
+

Hierarchy Chart

+ +
+
+
+ + + + + + +
+
+
diff --git a/app_stock_location_chart/__init__.py b/app_stock_location_chart/__init__.py new file mode 100644 index 00000000..cde864ba --- /dev/null +++ b/app_stock_location_chart/__init__.py @@ -0,0 +1,3 @@ +# -*- coding: utf-8 -*- + +from . import models diff --git a/app_stock_location_chart/__manifest__.py b/app_stock_location_chart/__manifest__.py new file mode 100644 index 00000000..f16c8e82 --- /dev/null +++ b/app_stock_location_chart/__manifest__.py @@ -0,0 +1,70 @@ +# -*- coding: utf-8 -*- + +# Created on 2019-01-04 +# author: 广州尚鹏,https://www.sunpop.cn +# email: 300883@qq.com +# resource of Sunpop +# License LGPL-3.0 or later (http://www.gnu.org/licenses/lgpl). + +# Odoo12在线用户手册(长期更新) +# https://www.sunpop.cn/documentation/user/12.0/en/index.html + +# Odoo12在线开发者手册(长期更新) +# https://www.sunpop.cn/documentation/12.0/index.html + +# Odoo10在线中文用户手册(长期更新) +# https://www.sunpop.cn/documentation/user/10.0/zh_CN/index.html + +# Odoo10离线中文用户手册下载 +# https://www.sunpop.cn/odoo10_user_manual_document_offline/ +# Odoo10离线开发手册下载-含python教程,jquery参考,Jinja2模板,PostgresSQL参考(odoo开发必备) +# https://www.sunpop.cn/odoo10_developer_document_offline/ + + +{ + 'name': 'Stock Location Chart Hierarchy, 仓库库位多层级结构图', + 'version': '13.19.11.12', + 'author': 'Sunpop.cn', + 'category': 'Stock', + 'website': 'https://www.sunpop.cn', + 'license': 'LGPL-3', + 'sequence': 2, + 'summary': """ + Chart Hierarchy Widget. Hierarchy Chart, Hierarchy Tree for multi level Parent Children relation tree. + Free for category Hierarchy chart, stock Hierarchy chart. account chart. + """, + 'description': """ +This module extend to show a Hierarchy chart. +(N+1, N+2, direct subordinates) +image: image_field, +desc: descript_field, +direct_sub: children_field, must be one2many, +child_all_count: child_all_count field, count of direct and indirect children. + """, + 'price': 0.00, + 'currency': 'EUR', + 'depends': [ + 'stock', + ], + 'images': ['static/description/banner.gif'], + 'data': [ + 'views/stock_location_views.xml', + ], + 'demo': [ + ], + 'test': [ + ], + 'css': [ + ], + 'qweb': [ + 'static/src/xml/*.xml', + ], + 'js': [ + ], + 'post_load': None, + 'post_init_hook': None, + 'installable': True, + 'application': True, + 'auto_install': False, +} + diff --git a/app_stock_location_chart/controllers/__init__.py b/app_stock_location_chart/controllers/__init__.py new file mode 100644 index 00000000..7ec351fe --- /dev/null +++ b/app_stock_location_chart/controllers/__init__.py @@ -0,0 +1,2 @@ +# -*- coding: utf-8 -* + diff --git a/app_stock_location_chart/i18n/zh_CN.po b/app_stock_location_chart/i18n/zh_CN.po new file mode 100644 index 00000000..a27e8876 --- /dev/null +++ b/app_stock_location_chart/i18n/zh_CN.po @@ -0,0 +1,112 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * app_catetory_chart_hierarchy +# +# Translators: +# Martin Trigaux, 2018 +# 珠海-杜哥 , 2018 +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server saas~11.5\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2018-09-18 09:49+0000\n" +"PO-Revision-Date: 2018-09-18 09:49+0000\n" +"Last-Translator: 珠海-杜哥 , 2018\n" +"Language-Team: Chinese (China) (https://www.transifex.com/odoo/teams/41243/zh_CN/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: \n" +"Language: zh_CN\n" +"Plural-Forms: nplurals=1; plural=0;\n" + +#. module: app_catetory_chart_hierarchy +#. openerp-web +#: code:addons/app_catetory_chart_hierarchy/static/src/js/app_catetory_chart_hierarchy.js:137 +#, python-format +msgid "Direct Subordinates of %s" +msgstr "%s的直接下属" + +#. module: app_catetory_chart_hierarchy +#. openerp-web +#: code:addons/app_catetory_chart_hierarchy/static/src/xml/app_catetory_chart_hierarchy.xml:126 +#, python-format +msgid "Direct subordinates" +msgstr "直接下属" + +#. module: app_catetory_chart_hierarchy +#: model:ir.model,name:app_catetory_chart_hierarchy.model_product.category +msgid "node" +msgstr "员工" + +#. module: app_catetory_chart_hierarchy +#. openerp-web +#: code:addons/app_catetory_chart_hierarchy/static/src/xml/app_catetory_chart_hierarchy.xml:89 +#, python-format +msgid "In order to get an organigram, set a parent and save the record." +msgstr "为了获取组织图,请设置一个上司然后保存" + +#. module: app_catetory_chart_hierarchy +#. openerp-web +#: code:addons/app_catetory_chart_hierarchy/static/src/js/app_catetory_chart_hierarchy.js:147 +#, python-format +msgid "Indirect Subordinates of %s" +msgstr "%s的非直接下属" + +#. module: app_catetory_chart_hierarchy +#: model:ir.model.fields,field_description:app_catetory_chart_hierarchy.field_product.category__child_all_count +msgid "Indirect Surbordinates Count" +msgstr "非直接下属数量" + +#. module: app_catetory_chart_hierarchy +#. openerp-web +#: code:addons/app_catetory_chart_hierarchy/static/src/xml/app_catetory_chart_hierarchy.xml:136 +#, python-format +msgid "Indirect subordinates" +msgstr "非直接下属" + +#. module: app_catetory_chart_hierarchy +#. openerp-web +#: code:addons/app_catetory_chart_hierarchy/static/src/xml/app_catetory_chart_hierarchy.xml:66 +#, python-format +msgid "More parents" +msgstr "更多管理员" + +#. module: app_catetory_chart_hierarchy +#. openerp-web +#: code:addons/app_catetory_chart_hierarchy/static/src/xml/app_catetory_chart_hierarchy.xml:87 +#, python-format +msgid "No hierarchy position." +msgstr "没有层级位置" + +#. module: app_catetory_chart_hierarchy +#: model_terms:ir.ui.view,arch_db:app_catetory_chart_hierarchy.product.category_view_form_inherit_chart_hierarchy +msgid "Organization Chart" +msgstr "组织图表" + +#. module: app_catetory_chart_hierarchy +#. openerp-web +#: code:addons/app_catetory_chart_hierarchy/static/src/xml/app_catetory_chart_hierarchy.xml:155 +#, python-format +msgid "Redirect" +msgstr "重定向" + +#. module: app_catetory_chart_hierarchy +#. openerp-web +#: code:addons/app_catetory_chart_hierarchy/static/src/js/app_catetory_chart_hierarchy.js:140 +#, python-format +msgid "Subordinates of %s" +msgstr "%s的下属" + +#. module: app_catetory_chart_hierarchy +#. openerp-web +#: code:addons/app_catetory_chart_hierarchy/static/src/xml/app_catetory_chart_hierarchy.xml:88 +#, python-format +msgid "This employee has no parent or subordinate." +msgstr "该员工没有上司或下属" + +#. module: app_catetory_chart_hierarchy +#. openerp-web +#: code:addons/app_catetory_chart_hierarchy/static/src/xml/app_catetory_chart_hierarchy.xml:144 +#, python-format +msgid "Total" +msgstr "合计" diff --git a/app_stock_location_chart/models/__init__.py b/app_stock_location_chart/models/__init__.py new file mode 100644 index 00000000..86aa9ebe --- /dev/null +++ b/app_stock_location_chart/models/__init__.py @@ -0,0 +1,3 @@ +# -*- coding: utf-8 -*- + +from . import stock_location diff --git a/app_stock_location_chart/models/stock_location.py b/app_stock_location_chart/models/stock_location.py new file mode 100644 index 00000000..a50ef159 --- /dev/null +++ b/app_stock_location_chart/models/stock_location.py @@ -0,0 +1,17 @@ +# -*- coding: utf-8 -*- + +from odoo import api, fields, models, tools, _ + + +class Location(models.Model): + _name = "stock.location" + _inherit = ['stock.location', 'image.mixin'] + + child_all_count = fields.Integer( + 'Indirect Surbordinates Count', + compute='_compute_child_all_count', store=False) + + @api.depends('child_ids.child_all_count') + def _compute_child_all_count(self): + for rec in self: + rec.child_all_count = len(rec.child_ids) + sum(child.child_all_count for child in rec.child_ids) diff --git a/app_stock_location_chart/static/description/banner.gif b/app_stock_location_chart/static/description/banner.gif new file mode 100644 index 00000000..54fb9413 Binary files /dev/null and b/app_stock_location_chart/static/description/banner.gif differ diff --git a/app_stock_location_chart/static/description/banner.png b/app_stock_location_chart/static/description/banner.png new file mode 100644 index 00000000..a83464d6 Binary files /dev/null and b/app_stock_location_chart/static/description/banner.png differ diff --git a/app_stock_location_chart/static/description/demo1.jpg b/app_stock_location_chart/static/description/demo1.jpg new file mode 100644 index 00000000..03fb1e02 Binary files /dev/null and b/app_stock_location_chart/static/description/demo1.jpg differ diff --git a/app_stock_location_chart/static/description/demo2.jpg b/app_stock_location_chart/static/description/demo2.jpg new file mode 100644 index 00000000..632e5db3 Binary files /dev/null and b/app_stock_location_chart/static/description/demo2.jpg differ diff --git a/app_stock_location_chart/static/description/demo4.jpg b/app_stock_location_chart/static/description/demo4.jpg new file mode 100644 index 00000000..99cec169 Binary files /dev/null and b/app_stock_location_chart/static/description/demo4.jpg differ diff --git a/app_stock_location_chart/static/description/demo5.jpg b/app_stock_location_chart/static/description/demo5.jpg new file mode 100644 index 00000000..de5add33 Binary files /dev/null and b/app_stock_location_chart/static/description/demo5.jpg differ diff --git a/app_stock_location_chart/static/description/demo6.jpg b/app_stock_location_chart/static/description/demo6.jpg new file mode 100644 index 00000000..533468d7 Binary files /dev/null and b/app_stock_location_chart/static/description/demo6.jpg differ diff --git a/app_stock_location_chart/static/description/demo7.jpg b/app_stock_location_chart/static/description/demo7.jpg new file mode 100644 index 00000000..4673c00e Binary files /dev/null and b/app_stock_location_chart/static/description/demo7.jpg differ diff --git a/app_stock_location_chart/static/description/demo9.jpg b/app_stock_location_chart/static/description/demo9.jpg new file mode 100644 index 00000000..41c9d853 Binary files /dev/null and b/app_stock_location_chart/static/description/demo9.jpg differ diff --git a/app_stock_location_chart/static/description/icon.png b/app_stock_location_chart/static/description/icon.png new file mode 100644 index 00000000..a5a31dfd Binary files /dev/null and b/app_stock_location_chart/static/description/icon.png differ diff --git a/app_stock_location_chart/static/description/index.html b/app_stock_location_chart/static/description/index.html new file mode 100644 index 00000000..533cdb2e --- /dev/null +++ b/app_stock_location_chart/static/description/index.html @@ -0,0 +1,190 @@ +
+
+

Stock Location Chart Hierarchy for Multi Level

+

Very useful for show parent child relationship, like product category, stock location, hr department

+
+
+
+
+
+
+ Key features: +
    +
  • + + Easy to make show parent children Chart Hierarchy. +
  • +
  • + + Free to Use in product category. +
  • +
  • + + Free to Use in stock location. +
  • +
  • + + Free to Use in hr department, employee. +
  • +
  • + + Free to Use in Account chart. +
  • +
  • + + Free to Use in User Alliance Distribution Multi level. +
  • +
  • + + It's a widget, you can use it in anywhere in odoo. +
  • +
+
+ +

Buy + + this 1 chart hierarchy + + in odoo Store. Get free 5 related free apps. + +

+
+ +
+ + +
+
+
+ +
+
+

 

+

Product category Chart Hierarchy

+
+ +
+

Show sub category and quick access category

+
+ +
+
+
+ +
+
+

 

+

Stock Location Chart Hierarchy

+
+ +
+
+
+ +
+
+

 

+

HR Department Chart Hierarchy

+
+ +
+

HR Emploee Chart Hierarchy (this is include in odoo)

+
+ +
+
+
+
+
+

 

+

Account Chart Hierarchy

+
+ +
+
+
+ +
+
+

 

+

User Alliance Distribution Multi level

+
+ +
+
+
+ +
+
+

Easy to setup just use widget='web_chart_hierarchy'. like this

+
+ +
+

Also need to change view for better ui

+
+ +
+


Use follow param to setup widget:

+

image: --the field of image.

+

desc: --the field of subtitle.

+

direct_sub: --the field of sub node.

+

child_all_count: --the field of node count.

+
+
+ +
+
+
+

Technical Help & Support

+
+
+
+

+ For any type of technical help & support requests, Feel free to contact us

+ + guohuadeng@hotmail.com +

+ Via QQ: 300883

+ + 300883@qq.com +
+
+

+ Visit our website for more support.

+ + https://www.sunpop.cn +
+
+
+
+ diff --git a/app_stock_location_chart/static/description/setup1.jpg b/app_stock_location_chart/static/description/setup1.jpg new file mode 100644 index 00000000..310b1e36 Binary files /dev/null and b/app_stock_location_chart/static/description/setup1.jpg differ diff --git a/app_stock_location_chart/static/description/setup2.jpg b/app_stock_location_chart/static/description/setup2.jpg new file mode 100644 index 00000000..0eb197c6 Binary files /dev/null and b/app_stock_location_chart/static/description/setup2.jpg differ diff --git a/app_stock_location_chart/views/stock_location_views.xml b/app_stock_location_chart/views/stock_location_views.xml new file mode 100644 index 00000000..ada690ea --- /dev/null +++ b/app_stock_location_chart/views/stock_location_views.xml @@ -0,0 +1,32 @@ + + + + app.stock.location.form + stock.location + + + +
+
+ + +
+
+

Hierarchy Chart

+ +
+
+
+ + + +
+
+
diff --git a/app_users_chart_hierarchy/__init__.py b/app_users_chart_hierarchy/__init__.py new file mode 100644 index 00000000..cde864ba --- /dev/null +++ b/app_users_chart_hierarchy/__init__.py @@ -0,0 +1,3 @@ +# -*- coding: utf-8 -*- + +from . import models diff --git a/app_users_chart_hierarchy/__manifest__.py b/app_users_chart_hierarchy/__manifest__.py new file mode 100644 index 00000000..c98df79f --- /dev/null +++ b/app_users_chart_hierarchy/__manifest__.py @@ -0,0 +1,70 @@ +# -*- coding: utf-8 -*- + +# Created on 2019-01-04 +# author: 广州尚鹏,https://www.sunpop.cn +# email: 300883@qq.com +# resource of Sunpop +# License LGPL-3.0 or later (http://www.gnu.org/licenses/lgpl). + +# Odoo12在线用户手册(长期更新) +# https://www.sunpop.cn/documentation/user/12.0/en/index.html + +# Odoo12在线开发者手册(长期更新) +# https://www.sunpop.cn/documentation/12.0/index.html + +# Odoo10在线中文用户手册(长期更新) +# https://www.sunpop.cn/documentation/user/10.0/zh_CN/index.html + +# Odoo10离线中文用户手册下载 +# https://www.sunpop.cn/odoo10_user_manual_document_offline/ +# Odoo10离线开发手册下载-含python教程,jquery参考,Jinja2模板,PostgresSQL参考(odoo开发必备) +# https://www.sunpop.cn/odoo10_developer_document_offline/ + + +{ + 'name': 'User Alliance Distribution Chart Hierarchy, 多层级用户', + 'version': '13.19.11.12', + 'author': 'Sunpop.cn', + 'category': 'Sales', + 'website': 'https://www.sunpop.cn', + 'license': 'LGPL-3', + 'sequence': 2, + 'summary': """ + Chart Hierarchy Widget. Hierarchy Chart, Hierarchy Tree for multi level Parent Children relation tree. + Free for category Hierarchy chart, stock Hierarchy chart. account chart. user multi level chart. + """, + 'description': """ +This module extend to show a Hierarchy chart. +(N+1, N+2, direct subordinates) +image: image_field, +desc: descript_field, +direct_sub: children_field, must be one2many, +child_all_count: child_all_count field, count of direct and indirect children. + """, + 'price': 0.00, + 'currency': 'EUR', + 'depends': [ + 'sales_team', + ], + 'images': ['static/description/banner.gif'], + 'data': [ + 'views/res_users_views.xml', + ], + 'demo': [ + ], + 'test': [ + ], + 'css': [ + ], + 'qweb': [ + 'static/src/xml/*.xml', + ], + 'js': [ + ], + 'post_load': None, + 'post_init_hook': None, + 'installable': True, + 'application': True, + 'auto_install': False, +} + diff --git a/app_users_chart_hierarchy/controllers/__init__.py b/app_users_chart_hierarchy/controllers/__init__.py new file mode 100644 index 00000000..7ec351fe --- /dev/null +++ b/app_users_chart_hierarchy/controllers/__init__.py @@ -0,0 +1,2 @@ +# -*- coding: utf-8 -* + diff --git a/app_users_chart_hierarchy/i18n/zh_CN.po b/app_users_chart_hierarchy/i18n/zh_CN.po new file mode 100644 index 00000000..c664e321 --- /dev/null +++ b/app_users_chart_hierarchy/i18n/zh_CN.po @@ -0,0 +1,112 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * app_users_chart_hierarchy +# +# Translators: +# Martin Trigaux, 2018 +# 珠海-杜哥 , 2018 +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server saas~11.5\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2018-09-18 09:49+0000\n" +"PO-Revision-Date: 2018-09-18 09:49+0000\n" +"Last-Translator: 珠海-杜哥 , 2018\n" +"Language-Team: Chinese (China) (https://www.transifex.com/odoo/teams/41243/zh_CN/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: \n" +"Language: zh_CN\n" +"Plural-Forms: nplurals=1; plural=0;\n" + +#. module: app_users_chart_hierarchy +#. openerp-web +#: code:addons/app_users_chart_hierarchy/static/src/js/app_users_chart_hierarchy.js:137 +#, python-format +msgid "Direct Subordinates of %s" +msgstr "%s的直接下属" + +#. module: app_users_chart_hierarchy +#. openerp-web +#: code:addons/app_users_chart_hierarchy/static/src/xml/app_users_chart_hierarchy.xml:126 +#, python-format +msgid "Direct subordinates" +msgstr "直接下属" + +#. module: app_users_chart_hierarchy +#: model:ir.model,name:app_users_chart_hierarchy.model_product.category +msgid "node" +msgstr "员工" + +#. module: app_users_chart_hierarchy +#. openerp-web +#: code:addons/app_users_chart_hierarchy/static/src/xml/app_users_chart_hierarchy.xml:89 +#, python-format +msgid "In order to get an organigram, set a parent and save the record." +msgstr "为了获取组织图,请设置一个上司然后保存" + +#. module: app_users_chart_hierarchy +#. openerp-web +#: code:addons/app_users_chart_hierarchy/static/src/js/app_users_chart_hierarchy.js:147 +#, python-format +msgid "Indirect Subordinates of %s" +msgstr "%s的非直接下属" + +#. module: app_users_chart_hierarchy +#: model:ir.model.fields,field_description:app_users_chart_hierarchy.field_product.category__child_all_count +msgid "Indirect Surbordinates Count" +msgstr "非直接下属数量" + +#. module: app_users_chart_hierarchy +#. openerp-web +#: code:addons/app_users_chart_hierarchy/static/src/xml/app_users_chart_hierarchy.xml:136 +#, python-format +msgid "Indirect subordinates" +msgstr "非直接下属" + +#. module: app_users_chart_hierarchy +#. openerp-web +#: code:addons/app_users_chart_hierarchy/static/src/xml/app_users_chart_hierarchy.xml:66 +#, python-format +msgid "More parents" +msgstr "更多管理员" + +#. module: app_users_chart_hierarchy +#. openerp-web +#: code:addons/app_users_chart_hierarchy/static/src/xml/app_users_chart_hierarchy.xml:87 +#, python-format +msgid "No hierarchy position." +msgstr "没有层级位置" + +#. module: app_users_chart_hierarchy +#: model_terms:ir.ui.view,arch_db:app_users_chart_hierarchy.product.category_view_form_inherit_chart_hierarchy +msgid "Organization Chart" +msgstr "组织图表" + +#. module: app_users_chart_hierarchy +#. openerp-web +#: code:addons/app_users_chart_hierarchy/static/src/xml/app_users_chart_hierarchy.xml:155 +#, python-format +msgid "Redirect" +msgstr "重定向" + +#. module: app_users_chart_hierarchy +#. openerp-web +#: code:addons/app_users_chart_hierarchy/static/src/js/app_users_chart_hierarchy.js:140 +#, python-format +msgid "Subordinates of %s" +msgstr "%s的下属" + +#. module: app_users_chart_hierarchy +#. openerp-web +#: code:addons/app_users_chart_hierarchy/static/src/xml/app_users_chart_hierarchy.xml:88 +#, python-format +msgid "This employee has no parent or subordinate." +msgstr "该员工没有上司或下属" + +#. module: app_users_chart_hierarchy +#. openerp-web +#: code:addons/app_users_chart_hierarchy/static/src/xml/app_users_chart_hierarchy.xml:144 +#, python-format +msgid "Total" +msgstr "合计" diff --git a/app_users_chart_hierarchy/models/__init__.py b/app_users_chart_hierarchy/models/__init__.py new file mode 100644 index 00000000..12efd2f2 --- /dev/null +++ b/app_users_chart_hierarchy/models/__init__.py @@ -0,0 +1,3 @@ +# -*- coding: utf-8 -*- + +from . import res_users diff --git a/app_users_chart_hierarchy/models/res_users.py b/app_users_chart_hierarchy/models/res_users.py new file mode 100644 index 00000000..23606fe2 --- /dev/null +++ b/app_users_chart_hierarchy/models/res_users.py @@ -0,0 +1,25 @@ +# -*- coding: utf-8 -*- + +from odoo import api, fields, models, tools, _ + + +class Users(models.Model): + _inherit = "res.users" + + # 注意,res.partner 有 parent_id 和 child_ids + _parent_name = "user_parent_id" + _parent_store = True + parent_path = fields.Char(index=True) + + user_parent_id = fields.Many2one('res.users', string='Parent User', index=True) + user_child_ids = fields.One2many('res.users', 'user_parent_id', string='Sub Users', domain=[('active', '=', True)]) + + user_child_all_count = fields.Integer( + 'Indirect Surbordinates Count', + compute='_compute_user_child_all_count', store=False) + + + @api.depends('user_child_ids.user_child_all_count') + def _compute_user_child_all_count(self): + for rec in self: + rec.user_child_all_count = len(rec.user_child_ids) + sum(child.user_child_all_count for child in rec.user_child_ids) diff --git a/app_users_chart_hierarchy/static/description/banner.gif b/app_users_chart_hierarchy/static/description/banner.gif new file mode 100644 index 00000000..54fb9413 Binary files /dev/null and b/app_users_chart_hierarchy/static/description/banner.gif differ diff --git a/app_users_chart_hierarchy/static/description/banner.png b/app_users_chart_hierarchy/static/description/banner.png new file mode 100644 index 00000000..a83464d6 Binary files /dev/null and b/app_users_chart_hierarchy/static/description/banner.png differ diff --git a/app_users_chart_hierarchy/static/description/demo1.jpg b/app_users_chart_hierarchy/static/description/demo1.jpg new file mode 100644 index 00000000..03fb1e02 Binary files /dev/null and b/app_users_chart_hierarchy/static/description/demo1.jpg differ diff --git a/app_users_chart_hierarchy/static/description/demo2.jpg b/app_users_chart_hierarchy/static/description/demo2.jpg new file mode 100644 index 00000000..632e5db3 Binary files /dev/null and b/app_users_chart_hierarchy/static/description/demo2.jpg differ diff --git a/app_users_chart_hierarchy/static/description/demo4.jpg b/app_users_chart_hierarchy/static/description/demo4.jpg new file mode 100644 index 00000000..99cec169 Binary files /dev/null and b/app_users_chart_hierarchy/static/description/demo4.jpg differ diff --git a/app_users_chart_hierarchy/static/description/demo5.jpg b/app_users_chart_hierarchy/static/description/demo5.jpg new file mode 100644 index 00000000..de5add33 Binary files /dev/null and b/app_users_chart_hierarchy/static/description/demo5.jpg differ diff --git a/app_users_chart_hierarchy/static/description/demo6.jpg b/app_users_chart_hierarchy/static/description/demo6.jpg new file mode 100644 index 00000000..533468d7 Binary files /dev/null and b/app_users_chart_hierarchy/static/description/demo6.jpg differ diff --git a/app_users_chart_hierarchy/static/description/demo7.jpg b/app_users_chart_hierarchy/static/description/demo7.jpg new file mode 100644 index 00000000..4673c00e Binary files /dev/null and b/app_users_chart_hierarchy/static/description/demo7.jpg differ diff --git a/app_users_chart_hierarchy/static/description/demo9.jpg b/app_users_chart_hierarchy/static/description/demo9.jpg new file mode 100644 index 00000000..41c9d853 Binary files /dev/null and b/app_users_chart_hierarchy/static/description/demo9.jpg differ diff --git a/app_users_chart_hierarchy/static/description/icon.png b/app_users_chart_hierarchy/static/description/icon.png new file mode 100644 index 00000000..a5a31dfd Binary files /dev/null and b/app_users_chart_hierarchy/static/description/icon.png differ diff --git a/app_users_chart_hierarchy/static/description/index.html b/app_users_chart_hierarchy/static/description/index.html new file mode 100644 index 00000000..a808a394 --- /dev/null +++ b/app_users_chart_hierarchy/static/description/index.html @@ -0,0 +1,190 @@ +
+
+

User Alliance distribution Chart Hierarchy for Multi Level

+

Very useful for show parent child relationship, like product category, stock location, hr department

+
+
+
+
+
+
+ Key features: +
    +
  • + + Easy to make show parent children Chart Hierarchy. +
  • +
  • + + Free to Use in product category. +
  • +
  • + + Free to Use in stock location. +
  • +
  • + + Free to Use in hr department, employee. +
  • +
  • + + Free to Use in Account chart. +
  • +
  • + + Free to Use in User Alliance Distribution Multi level. +
  • +
  • + + It's a widget, you can use it in anywhere in odoo. +
  • +
+
+ +

Buy + + this 1 chart hierarchy + + in odoo Store. Get free 5 related free apps. + +

+
+ +
+ + +
+
+
+ +
+
+

 

+

Product category Chart Hierarchy

+
+ +
+

Show sub category and quick access category

+
+ +
+
+
+ +
+
+

 

+

Stock Location Chart Hierarchy

+
+ +
+
+
+ +
+
+

 

+

HR Department Chart Hierarchy

+
+ +
+

HR Emploee Chart Hierarchy (this is include in odoo)

+
+ +
+
+
+
+
+

 

+

Account Chart Hierarchy

+
+ +
+
+
+ +
+
+

 

+

User Alliance Distribution Multi level

+
+ +
+
+
+ +
+
+

Easy to setup just use widget='web_chart_hierarchy'. like this

+
+ +
+

Also need to change view for better ui

+
+ +
+


Use follow param to setup widget:

+

image: --the field of image.

+

desc: --the field of subtitle.

+

direct_sub: --the field of sub node.

+

child_all_count: --the field of node count.

+
+
+ +
+
+
+

Technical Help & Support

+
+
+
+

+ For any type of technical help & support requests, Feel free to contact us

+ + guohuadeng@hotmail.com +

+ Via QQ: 300883

+ + 300883@qq.com +
+
+

+ Visit our website for more support.

+ + https://www.sunpop.cn +
+
+
+
+ diff --git a/app_users_chart_hierarchy/static/description/setup1.jpg b/app_users_chart_hierarchy/static/description/setup1.jpg new file mode 100644 index 00000000..310b1e36 Binary files /dev/null and b/app_users_chart_hierarchy/static/description/setup1.jpg differ diff --git a/app_users_chart_hierarchy/static/description/setup2.jpg b/app_users_chart_hierarchy/static/description/setup2.jpg new file mode 100644 index 00000000..0eb197c6 Binary files /dev/null and b/app_users_chart_hierarchy/static/description/setup2.jpg differ diff --git a/app_users_chart_hierarchy/views/res_users_views.xml b/app_users_chart_hierarchy/views/res_users_views.xml new file mode 100644 index 00000000..19e447f4 --- /dev/null +++ b/app_users_chart_hierarchy/views/res_users_views.xml @@ -0,0 +1,43 @@ + + + + app.res.users.simplified.form + res.users + + + + + + + +
+
+ + + +
+
+

Hierarchy Chart

+ +
+
+
+ + + + + + + + + +
+
+