From 160be6ce21dcd682773cab4697d4f7633d6daa1e Mon Sep 17 00:00:00 2001 From: "Aung Ko Ko Lin (Quartile)" <45355704+AungKoKoLin1997@users.noreply.github.com> Date: Sat, 22 Jul 2023 16:28:34 +0630 Subject: [PATCH 1/8] [2227][ADD] account_analytic_group (#31) Co-authored-by: Yoshi Tashiro --- account_analytic_group/README.rst | 63 +++ account_analytic_group/__init__.py | 1 + account_analytic_group/__manifest__.py | 17 + account_analytic_group/i18n/ja.po | 104 +++++ account_analytic_group/models/__init__.py | 3 + .../models/analytic_account.py | 10 + .../models/analytic_group.py | 15 + .../models/analytic_line.py | 16 + account_analytic_group/readme/DESCRIPTION.rst | 12 + .../security/ir.model.access.csv | 2 + .../static/description/index.html | 412 ++++++++++++++++++ .../views/analytic_account_views.xml | 13 + .../views/analytic_group_views.xml | 43 ++ 13 files changed, 711 insertions(+) create mode 100644 account_analytic_group/README.rst create mode 100644 account_analytic_group/__init__.py create mode 100644 account_analytic_group/__manifest__.py create mode 100644 account_analytic_group/i18n/ja.po create mode 100644 account_analytic_group/models/__init__.py create mode 100644 account_analytic_group/models/analytic_account.py create mode 100644 account_analytic_group/models/analytic_group.py create mode 100644 account_analytic_group/models/analytic_line.py create mode 100644 account_analytic_group/readme/DESCRIPTION.rst create mode 100644 account_analytic_group/security/ir.model.access.csv create mode 100644 account_analytic_group/static/description/index.html create mode 100644 account_analytic_group/views/analytic_account_views.xml create mode 100644 account_analytic_group/views/analytic_group_views.xml diff --git a/account_analytic_group/README.rst b/account_analytic_group/README.rst new file mode 100644 index 0000000..93794d2 --- /dev/null +++ b/account_analytic_group/README.rst @@ -0,0 +1,63 @@ +====================== +Account Analytic Group +====================== + +.. !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! + !! This file is generated by oca-gen-addon-readme !! + !! changes will be overwritten. !! + !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! + +.. |badge1| image:: https://img.shields.io/badge/maturity-Beta-yellow.png + :target: https://odoo-community.org/page/development-status + :alt: Beta +.. |badge2| image:: https://img.shields.io/badge/licence-LGPL--3-blue.png + :target: http://www.gnu.org/licenses/lgpl-3.0-standalone.html + :alt: License: LGPL-3 +.. |badge3| image:: https://img.shields.io/badge/github-qrtl%2Fqrtl--custom-lightgray.png?logo=github + :target: https://github.com/qrtl/qrtl-custom/tree/16.0/account_analytic_group + :alt: qrtl/qrtl-custom + +|badge1| |badge2| |badge3| + +This module is designed to restore the Analytic Group functionality that was present +in versions prior to the 16.0 update. + + +Background +~~~~~~~~~~ + +In Odoo 16, the 'Analytic Group' feature was replaced with the 'Analytic Plan'. +This new feature allows better tracking of costs and revenues by project or department. +However, we were using 'Analytic Group' for timesheet grouping, which is +incompatible with the new feature. This module is designed to bring back +the 'Analytic Group' functionality to meet our specific needs. + +**Table of contents** + +.. contents:: + :local: + +Bug Tracker +=========== + +Bugs are tracked on `GitHub Issues `_. +In case of trouble, please check there if your issue has already been reported. +If you spotted it first, help us smashing it by providing a detailed and welcomed +`feedback `_. + +Do not contact contributors directly about support or help with technical issues. + +Credits +======= + +Authors +~~~~~~~ + +* Quartile Limited + +Maintainers +~~~~~~~~~~~ + +This module is part of the `qrtl/qrtl-custom `_ project on GitHub. + +You are welcome to contribute. diff --git a/account_analytic_group/__init__.py b/account_analytic_group/__init__.py new file mode 100644 index 0000000..0650744 --- /dev/null +++ b/account_analytic_group/__init__.py @@ -0,0 +1 @@ +from . import models diff --git a/account_analytic_group/__manifest__.py b/account_analytic_group/__manifest__.py new file mode 100644 index 0000000..3da0790 --- /dev/null +++ b/account_analytic_group/__manifest__.py @@ -0,0 +1,17 @@ +# Copyright 2023 Quartile Limited +# License LGPL-3.0 or later (https://www.gnu.org/licenses/lgpl). +{ + "name": "Account Analytic Group", + "category": "Analytic", + "license": "LGPL-3", + "author": "Quartile Limited", + "website": "https://www.quartile.co", + "version": "16.0.1.0.0", + "depends": ["account"], + "data": [ + "security/ir.model.access.csv", + "views/analytic_group_views.xml", + "views/analytic_account_views.xml", + ], + "installable": True, +} diff --git a/account_analytic_group/i18n/ja.po b/account_analytic_group/i18n/ja.po new file mode 100644 index 0000000..07dc5a8 --- /dev/null +++ b/account_analytic_group/i18n/ja.po @@ -0,0 +1,104 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * account_analytic_group +# +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 16.0+e\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2023-07-22 09:37+0000\n" +"PO-Revision-Date: 2023-07-22 09:37+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: account_analytic_group +#: model:ir.model,name:account_analytic_group.model_account_analytic_account +msgid "Analytic Account" +msgstr "分析勘定" + +#. module: account_analytic_group +#: model:ir.model,name:account_analytic_group.model_account_analytic_group +msgid "Analytic Account Group" +msgstr "分析勘定グループ" + +#. module: account_analytic_group +#: model:ir.actions.act_window,name:account_analytic_group.account_analytic_group_action +#: model:ir.ui.menu,name:account_analytic_group.account_analytic_group_menu +#: model_terms:ir.ui.view,arch_db:account_analytic_group.account_analytic_group_form_view +msgid "Analytic Account Groups" +msgstr "分析勘定グループ" + +#. module: account_analytic_group +#: model:ir.model,name:account_analytic_group.model_account_analytic_line +msgid "Analytic Line" +msgstr "分析行" + +#. module: account_analytic_group +#: model:ir.model.fields,field_description:account_analytic_group.field_account_analytic_group__company_id +msgid "Company" +msgstr "会社" + +#. module: account_analytic_group +#: model:ir.model.fields,field_description:account_analytic_group.field_account_analytic_group__create_uid +msgid "Created by" +msgstr "作成者" + +#. module: account_analytic_group +#: model:ir.model.fields,field_description:account_analytic_group.field_account_analytic_group__create_date +msgid "Created on" +msgstr "作成日" + +#. module: account_analytic_group +#: model:ir.model.fields,field_description:account_analytic_group.field_account_analytic_group__description +msgid "Description" +msgstr "説明" + +#. module: account_analytic_group +#: model:ir.model.fields,field_description:account_analytic_group.field_account_analytic_group__display_name +msgid "Display Name" +msgstr "表示名" + +#. module: account_analytic_group +#: model:ir.model.fields,field_description:account_analytic_group.field_account_analytic_account__group_id +#: model:ir.model.fields,field_description:account_analytic_group.field_account_analytic_line__group_id +msgid "Group" +msgstr "グループ" + +#. module: account_analytic_group +#: model:ir.model.fields,field_description:account_analytic_group.field_account_analytic_group__id +msgid "ID" +msgstr "" + +#. module: account_analytic_group +#: model:ir.model.fields,field_description:account_analytic_group.field_account_analytic_group____last_update +msgid "Last Modified on" +msgstr "最終変更日" + +#. module: account_analytic_group +#: model:ir.model.fields,field_description:account_analytic_group.field_account_analytic_group__write_uid +msgid "Last Updated by" +msgstr "最終更新者" + +#. module: account_analytic_group +#: model:ir.model.fields,field_description:account_analytic_group.field_account_analytic_group__write_date +msgid "Last Updated on" +msgstr "最終更新日" + +#. module: account_analytic_group +#: model:ir.model.fields,field_description:account_analytic_group.field_account_analytic_group__name +msgid "Name" +msgstr "名称" + +#. module: account_analytic_group +#: model:ir.model.fields,field_description:account_analytic_group.field_account_analytic_group__parent_path +msgid "Parent Path" +msgstr "親パス" + +#. module: account_analytic_group +#: model:ir.model.fields,field_description:account_analytic_group.field_account_analytic_group__sequence +msgid "Sequence" +msgstr "順序" diff --git a/account_analytic_group/models/__init__.py b/account_analytic_group/models/__init__.py new file mode 100644 index 0000000..793ce51 --- /dev/null +++ b/account_analytic_group/models/__init__.py @@ -0,0 +1,3 @@ +from . import analytic_group +from . import analytic_account +from . import analytic_line diff --git a/account_analytic_group/models/analytic_account.py b/account_analytic_group/models/analytic_account.py new file mode 100644 index 0000000..7c41a2b --- /dev/null +++ b/account_analytic_group/models/analytic_account.py @@ -0,0 +1,10 @@ +# Copyright 2023 Quartile Limited +# License LGPL-3.0 or later (https://www.gnu.org/licenses/lgpl). + +from odoo import fields, models + + +class AccountAnalyticAccount(models.Model): + _inherit = "account.analytic.account" + + group_id = fields.Many2one("account.analytic.group", string="Group") diff --git a/account_analytic_group/models/analytic_group.py b/account_analytic_group/models/analytic_group.py new file mode 100644 index 0000000..61306f3 --- /dev/null +++ b/account_analytic_group/models/analytic_group.py @@ -0,0 +1,15 @@ +# Copyright 2023 Quartile Limited +# License LGPL-3.0 or later (https://www.gnu.org/licenses/lgpl). + +from odoo import fields, models + + +class AccountAnalyticGroup(models.Model): + _name = "account.analytic.group" + _description = "Analytic Account Group" + + sequence = fields.Integer() + name = fields.Char(required=True) + description = fields.Text() + parent_path = fields.Char(index=True) + company_id = fields.Many2one("res.company", string="Company") diff --git a/account_analytic_group/models/analytic_line.py b/account_analytic_group/models/analytic_line.py new file mode 100644 index 0000000..d15e033 --- /dev/null +++ b/account_analytic_group/models/analytic_line.py @@ -0,0 +1,16 @@ +# Copyright 2023 Quartile Limited +# License LGPL-3.0 or later (https://www.gnu.org/licenses/lgpl). + +from odoo import fields, models + + +class AccountAnalyticLine(models.Model): + _inherit = "account.analytic.line" + + group_id = fields.Many2one( + "account.analytic.group", + related="account_id.group_id", + store=True, + readonly=True, + compute_sudo=True, + ) diff --git a/account_analytic_group/readme/DESCRIPTION.rst b/account_analytic_group/readme/DESCRIPTION.rst new file mode 100644 index 0000000..292fa26 --- /dev/null +++ b/account_analytic_group/readme/DESCRIPTION.rst @@ -0,0 +1,12 @@ +This module is designed to restore the Analytic Group functionality that was present +in versions prior to the 16.0 update. + + +Background +~~~~~~~~~~ + +In Odoo 16, the 'Analytic Group' feature was replaced with the 'Analytic Plan'. +This new feature allows better tracking of costs and revenues by project or department. +However, we were using 'Analytic Group' for timesheet grouping, which is +incompatible with the new feature. This module is designed to bring back +the 'Analytic Group' functionality to meet our specific needs. diff --git a/account_analytic_group/security/ir.model.access.csv b/account_analytic_group/security/ir.model.access.csv new file mode 100644 index 0000000..7d37eda --- /dev/null +++ b/account_analytic_group/security/ir.model.access.csv @@ -0,0 +1,2 @@ +id,name,model_id:id,group_id:id,perm_read,perm_write,perm_create,perm_unlink +access_account_analytic_group,access_account_analytic_group,model_account_analytic_group,analytic.group_analytic_accounting,1,1,1,1 diff --git a/account_analytic_group/static/description/index.html b/account_analytic_group/static/description/index.html new file mode 100644 index 0000000..617d5a6 --- /dev/null +++ b/account_analytic_group/static/description/index.html @@ -0,0 +1,412 @@ + + + + + + +Account Analytic Group + + + +
+

Account Analytic Group

+ + +

Beta License: LGPL-3 qrtl/qrtl-custom

+

This module is designed to restore the Analytic Group functionality that was present +in versions prior to the 16.0 update.

+
+

Background

+

In Odoo 16, the ‘Analytic Group’ feature was replaced with the ‘Analytic Plan’. +This new feature allows better tracking of costs and revenues by project or department. +However, we were using ‘Analytic Group’ for timesheet grouping, which is +incompatible with the new feature. This module is designed to bring back +the ‘Analytic Group’ functionality to meet our specific needs.

+

Table of contents

+ +
+

Bug Tracker

+

Bugs are tracked on GitHub Issues. +In case of trouble, please check there if your issue has already been reported. +If you spotted it first, help us smashing it by providing a detailed and welcomed +feedback.

+

Do not contact contributors directly about support or help with technical issues.

+
+ +
+
+

Authors

+
    +
  • Quartile Limited
  • +
+
+
+

Maintainers

+

This module is part of the qrtl/qrtl-custom project on GitHub.

+

You are welcome to contribute.

+
+
+ + diff --git a/account_analytic_group/views/analytic_account_views.xml b/account_analytic_group/views/analytic_account_views.xml new file mode 100644 index 0000000..a08fe8d --- /dev/null +++ b/account_analytic_group/views/analytic_account_views.xml @@ -0,0 +1,13 @@ + + + + analytic.analytic.account.form + account.analytic.account + + + + + + + + diff --git a/account_analytic_group/views/analytic_group_views.xml b/account_analytic_group/views/analytic_group_views.xml new file mode 100644 index 0000000..5d3fd8f --- /dev/null +++ b/account_analytic_group/views/analytic_group_views.xml @@ -0,0 +1,43 @@ + + + + account.analytic.group.form + account.analytic.group + +
+ + + + + + + + + + +
+
+
+ + account.analytic.group.tree + account.analytic.group + + + + + + + + + Analytic Account Groups + account.analytic.group + tree,form + + +
From aed1d08ab1b0fcdafb272d350b645dfb2ce63110 Mon Sep 17 00:00:00 2001 From: "Yoshi Tashiro (Quartile)" Date: Tue, 1 Aug 2023 11:44:36 +0900 Subject: [PATCH 2/8] [3615][FIX] account_analytic_group: add order by sequence (#34) --- account_analytic_group/models/analytic_group.py | 1 + 1 file changed, 1 insertion(+) diff --git a/account_analytic_group/models/analytic_group.py b/account_analytic_group/models/analytic_group.py index 61306f3..31b3172 100644 --- a/account_analytic_group/models/analytic_group.py +++ b/account_analytic_group/models/analytic_group.py @@ -7,6 +7,7 @@ class AccountAnalyticGroup(models.Model): _name = "account.analytic.group" _description = "Analytic Account Group" + _order = "sequence, name" sequence = fields.Integer() name = fields.Char(required=True) From 4a838d2c4321b09d58785a06fab62e0a6af277fd Mon Sep 17 00:00:00 2001 From: "Aung Ko Ko Lin (Quartile)" <45355704+AungKoKoLin1997@users.noreply.github.com> Date: Tue, 3 Oct 2023 19:42:48 +0630 Subject: [PATCH 3/8] [3829][UPD] dotfiles (#38) --- account_analytic_group/README.rst | 9 +++++--- .../static/description/index.html | 22 ++++++++++--------- 2 files changed, 18 insertions(+), 13 deletions(-) diff --git a/account_analytic_group/README.rst b/account_analytic_group/README.rst index 93794d2..97cb298 100644 --- a/account_analytic_group/README.rst +++ b/account_analytic_group/README.rst @@ -2,10 +2,13 @@ Account Analytic Group ====================== -.. !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! +.. + !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! !! This file is generated by oca-gen-addon-readme !! !! changes will be overwritten. !! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! + !! source digest: sha256:6f9c2d3d3ed56aa62bb23ae8d1298404938a200366cc022cb0c03ccab496c003 + !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! .. |badge1| image:: https://img.shields.io/badge/maturity-Beta-yellow.png :target: https://odoo-community.org/page/development-status @@ -17,7 +20,7 @@ Account Analytic Group :target: https://github.com/qrtl/qrtl-custom/tree/16.0/account_analytic_group :alt: qrtl/qrtl-custom -|badge1| |badge2| |badge3| +|badge1| |badge2| |badge3| This module is designed to restore the Analytic Group functionality that was present in versions prior to the 16.0 update. @@ -42,7 +45,7 @@ Bug Tracker Bugs are tracked on `GitHub Issues `_. In case of trouble, please check there if your issue has already been reported. -If you spotted it first, help us smashing it by providing a detailed and welcomed +If you spotted it first, help us to smash it by providing a detailed and welcomed `feedback `_. Do not contact contributors directly about support or help with technical issues. diff --git a/account_analytic_group/static/description/index.html b/account_analytic_group/static/description/index.html index 617d5a6..4e60c00 100644 --- a/account_analytic_group/static/description/index.html +++ b/account_analytic_group/static/description/index.html @@ -1,20 +1,20 @@ - + - + Account Analytic Group -
-

Account Analytic Group

+
+ + +Odoo Community Association + +
+

Account Analytic Group

-

Beta License: LGPL-3 qrtl/qrtl-custom

+

Beta License: LGPL-3 qrtl/qrtl-custom

This module is designed to restore the Analytic Group functionality that was present in versions prior to the 16.0 update.

-

Background

+

Background

In Odoo 16, the ‘Analytic Group’ feature was replaced with the ‘Analytic Plan’. This new feature allows better tracking of costs and revenues by project or department. However, we were using ‘Analytic Group’ for @@ -387,28 +393,29 @@

Background

-

Bug Tracker

+

Bug Tracker

Bugs are tracked on GitHub Issues. In case of trouble, please check there if your issue has already been reported. If you spotted it first, help us to smash it by providing a detailed and welcomed -feedback.

+feedback.

Do not contact contributors directly about support or help with technical issues.

-

Authors

+

Authors

  • Quartile Limited
-

Maintainers

-

This module is part of the qrtl/qrtl-custom project on GitHub.

+

Maintainers

+

This module is part of the qrtl/qrtl-custom project on GitHub.

You are welcome to contribute.

+
From d6426aae00c4d0051ac2020cb1abbba8ec30c4ad Mon Sep 17 00:00:00 2001 From: Aungkokolin1997 Date: Wed, 10 Dec 2025 08:03:12 +0000 Subject: [PATCH 7/8] [MIG] account_analytic_group: Migration to 19.0 --- account_analytic_group/README.rst | 2 +- account_analytic_group/__manifest__.py | 6 +++--- account_analytic_group/models/analytic_group.py | 2 +- account_analytic_group/static/description/index.html | 2 +- account_analytic_group/views/analytic_group_views.xml | 6 +++--- 5 files changed, 9 insertions(+), 9 deletions(-) diff --git a/account_analytic_group/README.rst b/account_analytic_group/README.rst index 64f0ee8..c291baf 100644 --- a/account_analytic_group/README.rst +++ b/account_analytic_group/README.rst @@ -60,7 +60,7 @@ Credits Authors ------- -* Quartile Limited +* Quartile Maintainers ----------- diff --git a/account_analytic_group/__manifest__.py b/account_analytic_group/__manifest__.py index 3da0790..270202b 100644 --- a/account_analytic_group/__manifest__.py +++ b/account_analytic_group/__manifest__.py @@ -1,12 +1,12 @@ -# Copyright 2023 Quartile Limited +# Copyright 2023 Quartile (https://www.quartile.co) # License LGPL-3.0 or later (https://www.gnu.org/licenses/lgpl). { "name": "Account Analytic Group", "category": "Analytic", "license": "LGPL-3", - "author": "Quartile Limited", + "author": "Quartile", "website": "https://www.quartile.co", - "version": "16.0.1.0.0", + "version": "19.0.1.0.0", "depends": ["account"], "data": [ "security/ir.model.access.csv", diff --git a/account_analytic_group/models/analytic_group.py b/account_analytic_group/models/analytic_group.py index 31b3172..d9d1969 100644 --- a/account_analytic_group/models/analytic_group.py +++ b/account_analytic_group/models/analytic_group.py @@ -1,4 +1,4 @@ -# Copyright 2023 Quartile Limited +# Copyright 2023 Quartile (https://www.quartile.co) # License LGPL-3.0 or later (https://www.gnu.org/licenses/lgpl). from odoo import fields, models diff --git a/account_analytic_group/static/description/index.html b/account_analytic_group/static/description/index.html index 10741f4..f7aad52 100644 --- a/account_analytic_group/static/description/index.html +++ b/account_analytic_group/static/description/index.html @@ -407,7 +407,7 @@

Credits

Authors

    -
  • Quartile Limited
  • +
  • Quartile
diff --git a/account_analytic_group/views/analytic_group_views.xml b/account_analytic_group/views/analytic_group_views.xml index 5d3fd8f..327c331 100644 --- a/account_analytic_group/views/analytic_group_views.xml +++ b/account_analytic_group/views/analytic_group_views.xml @@ -22,16 +22,16 @@ account.analytic.group.tree account.analytic.group - + - + Analytic Account Groups account.analytic.group - tree,form + list,form Date: Mon, 22 Jun 2026 10:44:50 +0000 Subject: [PATCH 8/8] [FIX] account_analytic_group: drop orphan parent_path, add summary/maintainers and test The model declared parent_path (the storage column used by _parent_store) but has neither parent_id nor _parent_store, so it was a dead, never populated field; the module's groups are intentionally flat (timesheet grouping). Remove it, along with its stale translation entry. Add the required summary and maintainers to the manifest, and add a test covering the stored related account.analytic.line.group_id. --- account_analytic_group/__manifest__.py | 2 + account_analytic_group/i18n/ja.po | 5 --- .../models/analytic_group.py | 1 - account_analytic_group/tests/__init__.py | 4 ++ .../tests/test_account_analytic_group.py | 37 +++++++++++++++++++ 5 files changed, 43 insertions(+), 6 deletions(-) create mode 100644 account_analytic_group/tests/__init__.py create mode 100644 account_analytic_group/tests/test_account_analytic_group.py diff --git a/account_analytic_group/__manifest__.py b/account_analytic_group/__manifest__.py index 270202b..09923c0 100644 --- a/account_analytic_group/__manifest__.py +++ b/account_analytic_group/__manifest__.py @@ -2,10 +2,12 @@ # License LGPL-3.0 or later (https://www.gnu.org/licenses/lgpl). { "name": "Account Analytic Group", + "summary": "Restore the Analytic Group feature removed from core in 16.0", "category": "Analytic", "license": "LGPL-3", "author": "Quartile", "website": "https://www.quartile.co", + "maintainers": ["AungKoKoLin1997"], "version": "19.0.1.0.0", "depends": ["account"], "data": [ diff --git a/account_analytic_group/i18n/ja.po b/account_analytic_group/i18n/ja.po index 07dc5a8..dc6d01b 100644 --- a/account_analytic_group/i18n/ja.po +++ b/account_analytic_group/i18n/ja.po @@ -93,11 +93,6 @@ msgstr "最終更新日" msgid "Name" msgstr "名称" -#. module: account_analytic_group -#: model:ir.model.fields,field_description:account_analytic_group.field_account_analytic_group__parent_path -msgid "Parent Path" -msgstr "親パス" - #. module: account_analytic_group #: model:ir.model.fields,field_description:account_analytic_group.field_account_analytic_group__sequence msgid "Sequence" diff --git a/account_analytic_group/models/analytic_group.py b/account_analytic_group/models/analytic_group.py index d9d1969..7bff948 100644 --- a/account_analytic_group/models/analytic_group.py +++ b/account_analytic_group/models/analytic_group.py @@ -12,5 +12,4 @@ class AccountAnalyticGroup(models.Model): sequence = fields.Integer() name = fields.Char(required=True) description = fields.Text() - parent_path = fields.Char(index=True) company_id = fields.Many2one("res.company", string="Company") diff --git a/account_analytic_group/tests/__init__.py b/account_analytic_group/tests/__init__.py new file mode 100644 index 0000000..8984401 --- /dev/null +++ b/account_analytic_group/tests/__init__.py @@ -0,0 +1,4 @@ +# Copyright 2024 Quartile (https://www.quartile.co) +# License LGPL-3.0 or later (https://www.gnu.org/licenses/lgpl). + +from . import test_account_analytic_group diff --git a/account_analytic_group/tests/test_account_analytic_group.py b/account_analytic_group/tests/test_account_analytic_group.py new file mode 100644 index 0000000..795e792 --- /dev/null +++ b/account_analytic_group/tests/test_account_analytic_group.py @@ -0,0 +1,37 @@ +# Copyright 2024 Quartile (https://www.quartile.co) +# License LGPL-3.0 or later (https://www.gnu.org/licenses/lgpl). + +from odoo import fields +from odoo.tests.common import TransactionCase + + +class TestAccountAnalyticGroup(TransactionCase): + @classmethod + def setUpClass(cls): + super().setUpClass() + cls.group = cls.env["account.analytic.group"].create({"name": "Group A"}) + cls.plan = cls.env["account.analytic.plan"].create({"name": "Test Plan"}) + cls.account = cls.env["account.analytic.account"].create( + { + "name": "Test Account", + "plan_id": cls.plan.id, + "group_id": cls.group.id, + } + ) + + def test_line_group_id_follows_account(self): + # account.analytic.line.group_id is a stored related field on + # account_id.group_id; it must be set on creation and recomputed + # when the account's group changes. + line = self.env["account.analytic.line"].create( + { + "name": "Test Line", + "account_id": self.account.id, + "amount": 100.0, + "date": fields.Date.today(), + } + ) + self.assertEqual(line.group_id, self.group) + new_group = self.env["account.analytic.group"].create({"name": "Group B"}) + self.account.group_id = new_group + self.assertEqual(line.group_id, new_group)