Skip to content

Commit

Permalink
[MIG] account_analytic_parent: Migration to 18.0
Browse files Browse the repository at this point in the history
  • Loading branch information
BernatObrador committed Oct 9, 2024
1 parent 0155ebf commit a61c41e
Show file tree
Hide file tree
Showing 6 changed files with 62 additions and 46 deletions.
13 changes: 8 additions & 5 deletions account_analytic_parent/README.rst
Original file line number Diff line number Diff line change
Expand Up @@ -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|
Expand All @@ -49,7 +49,7 @@ Bug Tracker
Bugs are tracked on `GitHub Issues <https://github.com/OCA/account-analytic/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 <https://github.com/OCA/account-analytic/issues/new?body=module:%20account_analytic_parent%0Aversion:%2017.0%0A%0A**Steps%20to%20reproduce**%0A-%20...%0A%0A**Current%20behavior**%0A%0A**Expected%20behavior**>`_.
`feedback <https://github.com/OCA/account-analytic/issues/new?body=module:%20account_analytic_parent%0Aversion:%2018.0%0A%0A**Steps%20to%20reproduce**%0A-%20...%0A%0A**Current%20behavior**%0A%0A**Expected%20behavior**>`_.

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

Expand Down Expand Up @@ -84,6 +84,9 @@ Contributors

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

- Bernat Obrador

Maintainers
-----------
Expand All @@ -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 <https://github.com/OCA/account-analytic/tree/17.0/account_analytic_parent>`_ project on GitHub.
This module is part of the `OCA/account-analytic <https://github.com/OCA/account-analytic/tree/18.0/account_analytic_parent>`_ project on GitHub.

You are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute.
2 changes: 1 addition & 1 deletion account_analytic_parent/__manifest__.py
Original file line number Diff line number Diff line change
Expand Up @@ -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., "
Expand Down
5 changes: 2 additions & 3 deletions account_analytic_parent/models/account_analytic_account.py
Original file line number Diff line number Diff line change
Expand Up @@ -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")
Expand Down
2 changes: 2 additions & 0 deletions account_analytic_parent/readme/CONTRIBUTORS.md
Original file line number Diff line number Diff line change
Expand Up @@ -11,3 +11,5 @@
- Alexey Pelykh \<<alexey.pelykh@corphub.eu>\>
- Pedro Gonzalez \<<pedro.gonzalez@pesol.es>\>
- Darius Žižys \<<darius@vialaurea.lt>\>
- APSL - Nagarro \<<https://apsl.tech>\>
- Bernat Obrador
21 changes: 14 additions & 7 deletions account_analytic_parent/static/description/index.html
Original file line number Diff line number Diff line change
Expand Up @@ -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.
Expand Down Expand Up @@ -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 }
Expand All @@ -300,7 +301,7 @@
span.pre {
white-space: pre }

span.problematic {
span.problematic, pre.problematic {
color: red }

span.section-subtitle {
Expand Down Expand Up @@ -368,7 +369,7 @@ <h1 class="title">Account Analytic Parent</h1>
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!! source digest: sha256:d2dfc8a53ba6f07c266c9afaa032b2dbcccf2cf487ec2499ac1b5347b284e51e
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! -->
<p><a class="reference external image-reference" href="https://odoo-community.org/page/development-status"><img alt="Beta" src="https://img.shields.io/badge/maturity-Beta-yellow.png" /></a> <a class="reference external image-reference" href="http://www.gnu.org/licenses/agpl-3.0-standalone.html"><img alt="License: AGPL-3" src="https://img.shields.io/badge/licence-AGPL--3-blue.png" /></a> <a class="reference external image-reference" href="https://github.com/OCA/account-analytic/tree/17.0/account_analytic_parent"><img alt="OCA/account-analytic" src="https://img.shields.io/badge/github-OCA%2Faccount--analytic-lightgray.png?logo=github" /></a> <a class="reference external image-reference" href="https://translation.odoo-community.org/projects/account-analytic-17-0/account-analytic-17-0-account_analytic_parent"><img alt="Translate me on Weblate" src="https://img.shields.io/badge/weblate-Translate%20me-F47D42.png" /></a> <a class="reference external image-reference" href="https://runboat.odoo-community.org/builds?repo=OCA/account-analytic&amp;target_branch=17.0"><img alt="Try me on Runboat" src="https://img.shields.io/badge/runboat-Try%20me-875A7B.png" /></a></p>
<p><a class="reference external image-reference" href="https://odoo-community.org/page/development-status"><img alt="Beta" src="https://img.shields.io/badge/maturity-Beta-yellow.png" /></a> <a class="reference external image-reference" href="http://www.gnu.org/licenses/agpl-3.0-standalone.html"><img alt="License: AGPL-3" src="https://img.shields.io/badge/licence-AGPL--3-blue.png" /></a> <a class="reference external image-reference" href="https://github.com/OCA/account-analytic/tree/18.0/account_analytic_parent"><img alt="OCA/account-analytic" src="https://img.shields.io/badge/github-OCA%2Faccount--analytic-lightgray.png?logo=github" /></a> <a class="reference external image-reference" href="https://translation.odoo-community.org/projects/account-analytic-18-0/account-analytic-18-0-account_analytic_parent"><img alt="Translate me on Weblate" src="https://img.shields.io/badge/weblate-Translate%20me-F47D42.png" /></a> <a class="reference external image-reference" href="https://runboat.odoo-community.org/builds?repo=OCA/account-analytic&amp;target_branch=18.0"><img alt="Try me on Runboat" src="https://img.shields.io/badge/runboat-Try%20me-875A7B.png" /></a></p>
<p>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.</p>
Expand All @@ -395,7 +396,7 @@ <h1><a class="toc-backref" href="#toc-entry-2">Bug Tracker</a></h1>
<p>Bugs are tracked on <a class="reference external" href="https://github.com/OCA/account-analytic/issues">GitHub Issues</a>.
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
<a class="reference external" href="https://github.com/OCA/account-analytic/issues/new?body=module:%20account_analytic_parent%0Aversion:%2017.0%0A%0A**Steps%20to%20reproduce**%0A-%20...%0A%0A**Current%20behavior**%0A%0A**Expected%20behavior**">feedback</a>.</p>
<a class="reference external" href="https://github.com/OCA/account-analytic/issues/new?body=module:%20account_analytic_parent%0Aversion:%2018.0%0A%0A**Steps%20to%20reproduce**%0A-%20...%0A%0A**Current%20behavior**%0A%0A**Expected%20behavior**">feedback</a>.</p>
<p>Do not contact contributors directly about support or help with technical issues.</p>
</div>
<div class="section" id="credits">
Expand Down Expand Up @@ -429,16 +430,22 @@ <h2><a class="toc-backref" href="#toc-entry-5">Contributors</a></h2>
</li>
<li>Pedro Gonzalez &lt;<a class="reference external" href="mailto:pedro.gonzalez&#64;pesol.es">pedro.gonzalez&#64;pesol.es</a>&gt;</li>
<li>Darius Žižys &lt;<a class="reference external" href="mailto:darius&#64;vialaurea.lt">darius&#64;vialaurea.lt</a>&gt;</li>
<li>APSL - Nagarro &lt;<a class="reference external" href="https://apsl.tech">https://apsl.tech</a>&gt;<ul>
<li>Bernat Obrador</li>
</ul>
</li>
</ul>
</div>
<div class="section" id="maintainers">
<h2><a class="toc-backref" href="#toc-entry-6">Maintainers</a></h2>
<p>This module is maintained by the OCA.</p>
<a class="reference external image-reference" href="https://odoo-community.org"><img alt="Odoo Community Association" src="https://odoo-community.org/logo.png" /></a>
<a class="reference external image-reference" href="https://odoo-community.org">
<img alt="Odoo Community Association" src="https://odoo-community.org/logo.png" />
</a>
<p>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.</p>
<p>This module is part of the <a class="reference external" href="https://github.com/OCA/account-analytic/tree/17.0/account_analytic_parent">OCA/account-analytic</a> project on GitHub.</p>
<p>This module is part of the <a class="reference external" href="https://github.com/OCA/account-analytic/tree/18.0/account_analytic_parent">OCA/account-analytic</a> project on GitHub.</p>
<p>You are welcome to contribute. To learn how please visit <a class="reference external" href="https://odoo-community.org/page/Contribute">https://odoo-community.org/page/Contribute</a>.</p>
</div>
</div>
Expand Down
65 changes: 35 additions & 30 deletions account_analytic_parent/tests/test_account_analytic_account.py
Original file line number Diff line number Diff line change
Expand Up @@ -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(
{
Expand All @@ -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})
Expand Down

0 comments on commit a61c41e

Please sign in to comment.