diff --git a/account_analytic_parent/README.rst b/account_analytic_parent/README.rst index 7d92c71928..d60ca3bcbc 100644 --- a/account_analytic_parent/README.rst +++ b/account_analytic_parent/README.rst @@ -17,13 +17,13 @@ Account Analytic Parent :target: http://www.gnu.org/licenses/agpl-3.0-standalone.html :alt: License: AGPL-3 .. |badge3| image:: https://img.shields.io/badge/github-OCA%2Faccount--analytic-lightgray.png?logo=github - :target: https://github.com/OCA/account-analytic/tree/17.0/account_analytic_parent + :target: https://github.com/OCA/account-analytic/tree/18.0/account_analytic_parent :alt: OCA/account-analytic .. |badge4| image:: https://img.shields.io/badge/weblate-Translate%20me-F47D42.png - :target: https://translation.odoo-community.org/projects/account-analytic-17-0/account-analytic-17-0-account_analytic_parent + :target: https://translation.odoo-community.org/projects/account-analytic-18-0/account-analytic-18-0-account_analytic_parent :alt: Translate me on Weblate .. |badge5| image:: https://img.shields.io/badge/runboat-Try%20me-875A7B.png - :target: https://runboat.odoo-community.org/builds?repo=OCA/account-analytic&target_branch=17.0 + :target: https://runboat.odoo-community.org/builds?repo=OCA/account-analytic&target_branch=18.0 :alt: Try me on Runboat |badge1| |badge2| |badge3| |badge4| |badge5| @@ -49,7 +49,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 to smash it by providing a detailed and welcomed -`feedback `_. +`feedback `_. Do not contact contributors directly about support or help with technical issues. @@ -84,6 +84,9 @@ Contributors - Pedro Gonzalez - Darius Žižys +- APSL - Nagarro + + - Bernat Obrador Maintainers ----------- @@ -98,6 +101,6 @@ OCA, or the Odoo Community Association, is a nonprofit organization whose mission is to support the collaborative development of Odoo features and promote its widespread use. -This module is part of the `OCA/account-analytic `_ project on GitHub. +This module is part of the `OCA/account-analytic `_ project on GitHub. You are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute. diff --git a/account_analytic_parent/__manifest__.py b/account_analytic_parent/__manifest__.py index cccd6d7800..c2eac174d0 100644 --- a/account_analytic_parent/__manifest__.py +++ b/account_analytic_parent/__manifest__.py @@ -12,7 +12,7 @@ "name": "Account Analytic Parent", "summary": """ This module reintroduces the hierarchy to the analytic accounts.""", - "version": "17.0.1.0.0", + "version": "18.0.1.0.0", "category": "Accounting & Finance", "license": "AGPL-3", "author": "Matmoz d.o.o., " diff --git a/account_analytic_parent/models/account_analytic_account.py b/account_analytic_parent/models/account_analytic_account.py index 5755ca3e72..0f36696f50 100644 --- a/account_analytic_parent/models/account_analytic_account.py +++ b/account_analytic_parent/models/account_analytic_account.py @@ -93,9 +93,8 @@ def _compute_debit_credit_balance(self): @api.constrains("parent_id") def check_recursion(self): - for account in self: - if not super(AccountAnalyticAccount, account)._check_recursion(): - raise UserError(_("You can not create recursive analytic accounts.")) + if self._has_cycle(): + raise UserError(_("You can not create recursive analytic accounts.")) return True @api.onchange("parent_id") diff --git a/account_analytic_parent/readme/CONTRIBUTORS.md b/account_analytic_parent/readme/CONTRIBUTORS.md index 77b8941f1f..40b822d8a7 100644 --- a/account_analytic_parent/readme/CONTRIBUTORS.md +++ b/account_analytic_parent/readme/CONTRIBUTORS.md @@ -11,3 +11,5 @@ - Alexey Pelykh \<\> - Pedro Gonzalez \<\> - Darius Žižys \<\> +- APSL - Nagarro \<\> + - Bernat Obrador diff --git a/account_analytic_parent/static/description/index.html b/account_analytic_parent/static/description/index.html index 3060869e2f..8d0d055ba6 100644 --- a/account_analytic_parent/static/description/index.html +++ b/account_analytic_parent/static/description/index.html @@ -8,10 +8,11 @@ /* :Author: David Goodger (goodger@python.org) -:Id: $Id: html4css1.css 8954 2022-01-20 10:10:25Z milde $ +:Id: $Id: html4css1.css 9511 2024-01-13 09:50:07Z milde $ :Copyright: This stylesheet has been placed in the public domain. Default cascading style sheet for the HTML output of Docutils. +Despite the name, some widely supported CSS2 features are used. See https://docutils.sourceforge.io/docs/howto/html-stylesheets.html for how to customize this style sheet. @@ -274,7 +275,7 @@ margin-left: 2em ; margin-right: 2em } -pre.code .ln { color: grey; } /* line numbers */ +pre.code .ln { color: gray; } /* line numbers */ pre.code, code { background-color: #eeeeee } pre.code .comment, code .comment { color: #5C6576 } pre.code .keyword, code .keyword { color: #3B0D06; font-weight: bold } @@ -300,7 +301,7 @@ span.pre { white-space: pre } -span.problematic { +span.problematic, pre.problematic { color: red } span.section-subtitle { @@ -368,7 +369,7 @@

Account Analytic Parent

!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! !! source digest: sha256:d2dfc8a53ba6f07c266c9afaa032b2dbcccf2cf487ec2499ac1b5347b284e51e !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! --> -

Beta License: AGPL-3 OCA/account-analytic Translate me on Weblate Try me on Runboat

+

Beta License: AGPL-3 OCA/account-analytic Translate me on Weblate Try me on Runboat

This module reintroduces the hierarchy to the analytic accounts as it was in previous versions of Odoo. This module is a base module for other modules to manage the hierarchy concept in analytics.

@@ -395,7 +396,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 to smash it by providing a detailed and welcomed -feedback.

+feedback.

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

@@ -429,16 +430,22 @@

Contributors

  • Pedro Gonzalez <pedro.gonzalez@pesol.es>
  • Darius Žižys <darius@vialaurea.lt>
  • +
  • APSL - Nagarro <https://apsl.tech>
      +
    • Bernat Obrador
    • +
    +
  • Maintainers

    This module is maintained by the OCA.

    -Odoo Community Association + +Odoo Community Association +

    OCA, or the Odoo Community Association, is a nonprofit organization whose mission is to support the collaborative development of Odoo features and promote its widespread use.

    -

    This module is part of the OCA/account-analytic project on GitHub.

    +

    This module is part of the OCA/account-analytic project on GitHub.

    You are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute.

    diff --git a/account_analytic_parent/tests/test_account_analytic_account.py b/account_analytic_parent/tests/test_account_analytic_account.py index f86da228e7..f7c54d8422 100644 --- a/account_analytic_parent/tests/test_account_analytic_account.py +++ b/account_analytic_parent/tests/test_account_analytic_account.py @@ -11,68 +11,67 @@ class TestAccountAnalyticRecursion(TransactionCase): - def setUp(self): - super().setUp() + @classmethod + def setUpClass(cls): + super().setUpClass() - self.analytic_account_obj = self.env["account.analytic.account"] - self.analytic_line_obj = self.env["account.analytic.line"] - self.partner1 = self.env.ref("base.res_partner_1") - self.partner2 = self.env.ref("base.res_partner_2") - self.plan = self.env.ref("analytic.analytic_plan_departments") - self.analytic_parent1 = self.create_analytic_account( + cls.analytic_account_obj = cls.env["account.analytic.account"] + cls.analytic_line_obj = cls.env["account.analytic.line"] + cls.partner1 = cls.env.ref("base.res_partner_1") + cls.partner2 = cls.env.ref("base.res_partner_2") + cls.plan = cls.env.ref("analytic.analytic_plan_departments") + cls.analytic_parent1 = cls.create_analytic_account( { "name": "parent aa", "code": "01", - "partner_id": self.partner1.id, - "plan_id": self.plan.id, + "partner_id": cls.partner1.id, + "plan_id": cls.plan.id, } ) - self.analytic_son = self.create_analytic_account( + cls.analytic_son = cls.create_analytic_account( { "name": "son aa", "code": "02", - "parent_id": self.analytic_parent1.id, - "plan_id": self.plan.id, + "parent_id": cls.analytic_parent1.id, + "plan_id": cls.plan.id, } ) - self.analytic_parent2 = self.create_analytic_account( + cls.analytic_parent2 = cls.create_analytic_account( { "name": "parent2 aa", "code": "01", - "partner_id": self.partner2.id, - "plan_id": self.plan.id, + "partner_id": cls.partner2.id, + "plan_id": cls.plan.id, } ) - self.analytic_parent3 = self.create_analytic_account( + cls.analytic_parent3 = cls.create_analytic_account( { "name": "parent3 aa", "code": "01", - "partner_id": self.partner2.id, - "plan_id": self.plan.id, + "partner_id": cls.partner2.id, + "plan_id": cls.plan.id, } ) - self.analytic_son2 = self.create_analytic_account( + cls.analytic_son2 = cls.create_analytic_account( { "name": "son aa", "code": "02", - "parent_id": self.analytic_parent3.id, - "plan_id": self.plan.id, + "parent_id": cls.analytic_parent3.id, + "plan_id": cls.plan.id, } ) - self.create_analytic_line("Analytic line son", self.analytic_son, 50) - self.create_analytic_line("Analytic line parent1", self.analytic_parent1, 100) - self.create_analytic_line("Analytic line parent2", self.analytic_parent2, 50) - self.create_analytic_line("Analytic line son2", self.analytic_son2, -50) - self.assertEqual( - self.analytic_parent1.debit, 0, "Analytic account in the debit side" - ) - self.assertEqual(self.analytic_parent3.debit, 50) + cls.create_analytic_line("Analytic line son", cls.analytic_son, 50) + cls.create_analytic_line("Analytic line parent1", cls.analytic_parent1, 100) + cls.create_analytic_line("Analytic line parent2", cls.analytic_parent2, 50) + cls.create_analytic_line("Analytic line son2", cls.analytic_son2, -50) + @classmethod def create_analytic_account(self, values): if hasattr(self.analytic_account_obj, "_default_code"): values.pop("code") return self.analytic_account_obj.create(values) + @classmethod def create_analytic_line(self, name, analytic, amount): return self.analytic_line_obj.create( { @@ -83,6 +82,12 @@ def create_analytic_line(self, name, analytic, amount): } ) + def test_analytic_account_debit(self): + self.assertEqual( + self.analytic_parent1.debit, 0, "Analytic account in the debit side" + ) + self.assertEqual(self.analytic_parent3.debit, 50) + def test_recursion(self): with self.assertRaises(UserError): self.analytic_parent1.write({"parent_id": self.analytic_son.id})