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
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! -->
-
+
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 @@
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.
This module is maintained by the OCA.
-
+
+
+
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})