From 203b8a70c928c2e09d99a704ec850a0d8a806069 Mon Sep 17 00:00:00 2001 From: Florian da Costa Date: Thu, 4 Apr 2019 20:29:44 +0200 Subject: [PATCH 01/16] Add module contract_invoice_start_end_dates --- contract_invoice_start_end_dates/README.rst | 77 ++++ contract_invoice_start_end_dates/__init__.py | 3 + .../__manifest__.py | 20 + .../models/__init__.py | 3 + .../models/account_analytic_account.py | 20 + .../readme/CONTRIBUTORS.rst | 4 + .../readme/DESCRIPTION.rst | 2 + .../static/description/icon.png | Bin 0 -> 9455 bytes .../static/description/index.html | 424 ++++++++++++++++++ 9 files changed, 553 insertions(+) create mode 100644 contract_invoice_start_end_dates/README.rst create mode 100644 contract_invoice_start_end_dates/__init__.py create mode 100644 contract_invoice_start_end_dates/__manifest__.py create mode 100644 contract_invoice_start_end_dates/models/__init__.py create mode 100644 contract_invoice_start_end_dates/models/account_analytic_account.py create mode 100644 contract_invoice_start_end_dates/readme/CONTRIBUTORS.rst create mode 100644 contract_invoice_start_end_dates/readme/DESCRIPTION.rst create mode 100644 contract_invoice_start_end_dates/static/description/icon.png create mode 100644 contract_invoice_start_end_dates/static/description/index.html diff --git a/contract_invoice_start_end_dates/README.rst b/contract_invoice_start_end_dates/README.rst new file mode 100644 index 0000000000..0e75c2bf20 --- /dev/null +++ b/contract_invoice_start_end_dates/README.rst @@ -0,0 +1,77 @@ +================================ +Contract Invoice Start End Dates +================================ + +.. !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! + !! 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-AGPL--3-blue.png + :target: http://www.gnu.org/licenses/agpl-3.0-standalone.html + :alt: License: AGPL-3 +.. |badge3| image:: https://img.shields.io/badge/github-OCA%2Fcontract-lightgray.png?logo=github + :target: https://github.com/OCA/contract/tree/10.0/contract_invoice_start_end_dates + :alt: OCA/contract +.. |badge4| image:: https://img.shields.io/badge/weblate-Translate%20me-F47D42.png + :target: https://translation.odoo-community.org/projects/contract-10-0/contract-10-0-contract_invoice_start_end_dates + :alt: Translate me on Weblate +.. |badge5| image:: https://img.shields.io/badge/runbot-Try%20me-875A7B.png + :target: https://runbot.odoo-community.org/runbot/110/10.0 + :alt: Try me on Runbot + +|badge1| |badge2| |badge3| |badge4| |badge5| + +This module automatically add start and end dates to the invoice line +generated by a contract if the product is marked as 'must have date'. + +**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 +~~~~~~~ + +* Akretion + +Contributors +~~~~~~~~~~~~ + +* `Akretion `_: + + * Alexis de Lattre + * Florian da Costa + +Maintainers +~~~~~~~~~~~ + +This module is maintained by the OCA. + +.. image:: https://odoo-community.org/logo.png + :alt: Odoo Community Association + :target: https://odoo-community.org + +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/contract `_ project on GitHub. + +You are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute. diff --git a/contract_invoice_start_end_dates/__init__.py b/contract_invoice_start_end_dates/__init__.py new file mode 100644 index 0000000000..0f9fbab01a --- /dev/null +++ b/contract_invoice_start_end_dates/__init__.py @@ -0,0 +1,3 @@ +# -*- coding: utf-8 -*- +# License AGPL-3 - See http://www.gnu.org/licenses/agpl-3.0.html +from . import models diff --git a/contract_invoice_start_end_dates/__manifest__.py b/contract_invoice_start_end_dates/__manifest__.py new file mode 100644 index 0000000000..40f46108ce --- /dev/null +++ b/contract_invoice_start_end_dates/__manifest__.py @@ -0,0 +1,20 @@ +# -*- coding: utf-8 -*- +# Copyright 2019 Akretion +# License AGPL-3 - See http://www.gnu.org/licenses/agpl-3.0.html + +{ + 'name': 'Contract Invoice Start End Dates', + 'version': '12.0.1.0.0', + 'category': 'Contract Management', + 'author': 'Akretion, ' + 'Odoo Community Association (OCA)', + 'website': 'https://github.com/OCA/contract', + 'depends': [ + 'account_invoice_start_end_dates', + 'contract', + ], + 'data': [ + ], + 'license': 'AGPL-3', + 'installable': True, +} diff --git a/contract_invoice_start_end_dates/models/__init__.py b/contract_invoice_start_end_dates/models/__init__.py new file mode 100644 index 0000000000..f20c3dcc48 --- /dev/null +++ b/contract_invoice_start_end_dates/models/__init__.py @@ -0,0 +1,3 @@ +# -*- coding: utf-8 -*- +# License AGPL-3 - See http://www.gnu.org/licenses/agpl-3.0.html +from . import account_analytic_account diff --git a/contract_invoice_start_end_dates/models/account_analytic_account.py b/contract_invoice_start_end_dates/models/account_analytic_account.py new file mode 100644 index 0000000000..060bff6036 --- /dev/null +++ b/contract_invoice_start_end_dates/models/account_analytic_account.py @@ -0,0 +1,20 @@ +# -*- coding: utf-8 -*- +# Copyright 2019 - Akretion +# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). + +from odoo import api, models + + +class AccountAnalyticAccount(models.Model): + _inherit = 'account.analytic.account' + + @api.model + def _prepare_invoice_line(self, line, invoice_id): + vals = super(AccountAnalyticAccount, self)._prepare_invoice_line( + line, invoice_id) + if line.product_id.must_have_dates: + vals.update({ + 'start_date': self.env.context['date_from'], + 'end_date': self.env.context['date_to'], + }) + return vals diff --git a/contract_invoice_start_end_dates/readme/CONTRIBUTORS.rst b/contract_invoice_start_end_dates/readme/CONTRIBUTORS.rst new file mode 100644 index 0000000000..48247114ab --- /dev/null +++ b/contract_invoice_start_end_dates/readme/CONTRIBUTORS.rst @@ -0,0 +1,4 @@ +* `Akretion `_: + + * Alexis de Lattre + * Florian da Costa diff --git a/contract_invoice_start_end_dates/readme/DESCRIPTION.rst b/contract_invoice_start_end_dates/readme/DESCRIPTION.rst new file mode 100644 index 0000000000..feb5f9c7e4 --- /dev/null +++ b/contract_invoice_start_end_dates/readme/DESCRIPTION.rst @@ -0,0 +1,2 @@ +This module automatically adds start and end dates to the invoice line +generated by a contract if the product is marked as 'must have date'. diff --git a/contract_invoice_start_end_dates/static/description/icon.png b/contract_invoice_start_end_dates/static/description/icon.png new file mode 100644 index 0000000000000000000000000000000000000000..3a0328b516c4980e8e44cdb63fd945757ddd132d GIT binary patch literal 9455 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 z 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 Xviia!U7SGha1wx#SCgwmn*{w2TRX*I literal 0 HcmV?d00001 diff --git a/contract_invoice_start_end_dates/static/description/index.html b/contract_invoice_start_end_dates/static/description/index.html new file mode 100644 index 0000000000..9758a663ba --- /dev/null +++ b/contract_invoice_start_end_dates/static/description/index.html @@ -0,0 +1,424 @@ + + + + + + +Contract Invoice Start End Dates + + + +
+

Contract Invoice Start End Dates

+ + +

Beta License: AGPL-3 OCA/contract Translate me on Weblate Try me on Runbot

+

This module automatically add start and end dates to the invoice line +generated by a contract if the product is marked as ‘must have date’.

+

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.

+
+
+

Credits

+
+

Authors

+
    +
  • Akretion
  • +
+
+
+

Contributors

+ +
+
+

Maintainers

+

This module is maintained by the OCA.

+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/contract project on GitHub.

+

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

+
+
+
+ + From d35697329415eae9a12e1e7efc172b1733a87346 Mon Sep 17 00:00:00 2001 From: Alexis de Lattre Date: Fri, 15 May 2020 17:32:07 +0200 Subject: [PATCH 02/16] [MIG] contract_invoice_start_end_dates to v12 --- contract_invoice_start_end_dates/README.rst | 22 +++++++++++++------ contract_invoice_start_end_dates/__init__.py | 2 -- .../__manifest__.py | 7 +++--- .../i18n/contract_invoice_start_end_dates.pot | 20 +++++++++++++++++ .../models/__init__.py | 4 +--- .../models/account_analytic_account.py | 20 ----------------- .../models/contract_line.py | 20 +++++++++++++++++ .../readme/DESCRIPTION.rst | 2 +- .../static/description/index.html | 14 +++++++----- 9 files changed, 68 insertions(+), 43 deletions(-) create mode 100644 contract_invoice_start_end_dates/i18n/contract_invoice_start_end_dates.pot delete mode 100644 contract_invoice_start_end_dates/models/account_analytic_account.py create mode 100644 contract_invoice_start_end_dates/models/contract_line.py diff --git a/contract_invoice_start_end_dates/README.rst b/contract_invoice_start_end_dates/README.rst index 0e75c2bf20..6570c0de97 100644 --- a/contract_invoice_start_end_dates/README.rst +++ b/contract_invoice_start_end_dates/README.rst @@ -14,19 +14,19 @@ Contract Invoice Start End Dates :target: http://www.gnu.org/licenses/agpl-3.0-standalone.html :alt: License: AGPL-3 .. |badge3| image:: https://img.shields.io/badge/github-OCA%2Fcontract-lightgray.png?logo=github - :target: https://github.com/OCA/contract/tree/10.0/contract_invoice_start_end_dates + :target: https://github.com/OCA/contract/tree/12.0/contract_invoice_start_end_dates :alt: OCA/contract .. |badge4| image:: https://img.shields.io/badge/weblate-Translate%20me-F47D42.png - :target: https://translation.odoo-community.org/projects/contract-10-0/contract-10-0-contract_invoice_start_end_dates + :target: https://translation.odoo-community.org/projects/contract-12-0/contract-12-0-contract_invoice_start_end_dates :alt: Translate me on Weblate .. |badge5| image:: https://img.shields.io/badge/runbot-Try%20me-875A7B.png - :target: https://runbot.odoo-community.org/runbot/110/10.0 + :target: https://runbot.odoo-community.org/runbot/110/12.0 :alt: Try me on Runbot |badge1| |badge2| |badge3| |badge4| |badge5| -This module automatically add start and end dates to the invoice line -generated by a contract if the product is marked as 'must have date'. +This module automatically adds start and end dates to the invoice line +generated by a contract if the product is marked as *Must have dates*. **Table of contents** @@ -39,7 +39,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 -`feedback `_. +`feedback `_. Do not contact contributors directly about support or help with technical issues. @@ -72,6 +72,14 @@ 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/contract `_ project on GitHub. +.. |maintainer-florian-dacosta| image:: https://github.com/florian-dacosta.png?size=40px + :target: https://github.com/florian-dacosta + :alt: florian-dacosta + +Current `maintainer `__: + +|maintainer-florian-dacosta| + +This module is part of the `OCA/contract `_ project on GitHub. You are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute. diff --git a/contract_invoice_start_end_dates/__init__.py b/contract_invoice_start_end_dates/__init__.py index 0f9fbab01a..0650744f6b 100644 --- a/contract_invoice_start_end_dates/__init__.py +++ b/contract_invoice_start_end_dates/__init__.py @@ -1,3 +1 @@ -# -*- coding: utf-8 -*- -# License AGPL-3 - See http://www.gnu.org/licenses/agpl-3.0.html from . import models diff --git a/contract_invoice_start_end_dates/__manifest__.py b/contract_invoice_start_end_dates/__manifest__.py index 40f46108ce..6a94c162f1 100644 --- a/contract_invoice_start_end_dates/__manifest__.py +++ b/contract_invoice_start_end_dates/__manifest__.py @@ -1,5 +1,4 @@ -# -*- coding: utf-8 -*- -# Copyright 2019 Akretion +# Copyright 2019-2020 Akretion France (http://www.akretion.com/) # License AGPL-3 - See http://www.gnu.org/licenses/agpl-3.0.html { @@ -8,13 +7,13 @@ 'category': 'Contract Management', 'author': 'Akretion, ' 'Odoo Community Association (OCA)', + 'maintainers': ['florian-dacosta'], 'website': 'https://github.com/OCA/contract', 'depends': [ 'account_invoice_start_end_dates', 'contract', ], - 'data': [ - ], + 'data': [], 'license': 'AGPL-3', 'installable': True, } diff --git a/contract_invoice_start_end_dates/i18n/contract_invoice_start_end_dates.pot b/contract_invoice_start_end_dates/i18n/contract_invoice_start_end_dates.pot new file mode 100644 index 0000000000..416a31b550 --- /dev/null +++ b/contract_invoice_start_end_dates/i18n/contract_invoice_start_end_dates.pot @@ -0,0 +1,20 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * contract_invoice_start_end_dates +# +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 12.0\n" +"Report-Msgid-Bugs-To: \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: contract_invoice_start_end_dates +#: model:ir.model,name:contract_invoice_start_end_dates.model_contract_line +msgid "Contract Line" +msgstr "" + diff --git a/contract_invoice_start_end_dates/models/__init__.py b/contract_invoice_start_end_dates/models/__init__.py index f20c3dcc48..6143a36501 100644 --- a/contract_invoice_start_end_dates/models/__init__.py +++ b/contract_invoice_start_end_dates/models/__init__.py @@ -1,3 +1 @@ -# -*- coding: utf-8 -*- -# License AGPL-3 - See http://www.gnu.org/licenses/agpl-3.0.html -from . import account_analytic_account +from . import contract_line diff --git a/contract_invoice_start_end_dates/models/account_analytic_account.py b/contract_invoice_start_end_dates/models/account_analytic_account.py deleted file mode 100644 index 060bff6036..0000000000 --- a/contract_invoice_start_end_dates/models/account_analytic_account.py +++ /dev/null @@ -1,20 +0,0 @@ -# -*- coding: utf-8 -*- -# Copyright 2019 - Akretion -# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). - -from odoo import api, models - - -class AccountAnalyticAccount(models.Model): - _inherit = 'account.analytic.account' - - @api.model - def _prepare_invoice_line(self, line, invoice_id): - vals = super(AccountAnalyticAccount, self)._prepare_invoice_line( - line, invoice_id) - if line.product_id.must_have_dates: - vals.update({ - 'start_date': self.env.context['date_from'], - 'end_date': self.env.context['date_to'], - }) - return vals diff --git a/contract_invoice_start_end_dates/models/contract_line.py b/contract_invoice_start_end_dates/models/contract_line.py new file mode 100644 index 0000000000..361d9ba64b --- /dev/null +++ b/contract_invoice_start_end_dates/models/contract_line.py @@ -0,0 +1,20 @@ +# Copyright 2019-2020 Akretion France (http://www.akretion.com/) +# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). + +from odoo import models + + +class ContractLine(models.Model): + _inherit = 'contract.line' + + def _prepare_invoice_line(self, invoice_id=False, invoice_values=False): + vals = super(ContractLine, self)._prepare_invoice_line( + invoice_id=invoice_id, invoice_values=invoice_values) + if self.product_id.must_have_dates: + dates = self._get_period_to_invoice( + self.last_date_invoiced, self.recurring_next_date) + vals.update({ + 'start_date': dates[0], + 'end_date': dates[1], + }) + return vals diff --git a/contract_invoice_start_end_dates/readme/DESCRIPTION.rst b/contract_invoice_start_end_dates/readme/DESCRIPTION.rst index feb5f9c7e4..0dfd06b2d3 100644 --- a/contract_invoice_start_end_dates/readme/DESCRIPTION.rst +++ b/contract_invoice_start_end_dates/readme/DESCRIPTION.rst @@ -1,2 +1,2 @@ This module automatically adds start and end dates to the invoice line -generated by a contract if the product is marked as 'must have date'. +generated by a contract if the product is marked as *Must have dates*. diff --git a/contract_invoice_start_end_dates/static/description/index.html b/contract_invoice_start_end_dates/static/description/index.html index 9758a663ba..ea0671c171 100644 --- a/contract_invoice_start_end_dates/static/description/index.html +++ b/contract_invoice_start_end_dates/static/description/index.html @@ -3,7 +3,7 @@ - + Contract Invoice Start End Dates -
-

Contract Invoice Start End Dates

+
+ + +Odoo Community Association + +
+

Contract Invoice Start End Dates

-

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

+

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

This module automatically adds start and end dates to the invoice line generated by a contract if the product is marked as Must have dates.

Table of contents

@@ -385,7 +390,7 @@

Contract Invoice Start End Dates

-

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 @@ -393,15 +398,15 @@

Bug Tracker

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

-

Credits

+

Credits

-

Authors

+

Authors

  • Akretion
-

Contributors

+

Contributors

-

Maintainers

+

Maintainers

This module is maintained by the OCA.

Odoo Community Association @@ -431,5 +436,6 @@

Maintainers

+
From 561f0e78151a60fbc3e867e571761cd293059411 Mon Sep 17 00:00:00 2001 From: bosd Date: Tue, 30 Dec 2025 12:18:23 +0100 Subject: [PATCH 15/16] [MIG] contract_invoice_start_end_dates: Migration to 19.0 --- contract_invoice_start_end_dates/README.rst | 22 +++++++++---------- .../__manifest__.py | 2 +- .../static/description/index.html | 6 ++--- 3 files changed, 15 insertions(+), 15 deletions(-) diff --git a/contract_invoice_start_end_dates/README.rst b/contract_invoice_start_end_dates/README.rst index 2cf06abcdb..24b5ade887 100644 --- a/contract_invoice_start_end_dates/README.rst +++ b/contract_invoice_start_end_dates/README.rst @@ -21,13 +21,13 @@ Contract Invoice Start End Dates :target: http://www.gnu.org/licenses/agpl-3.0-standalone.html :alt: License: AGPL-3 .. |badge3| image:: https://img.shields.io/badge/github-OCA%2Fcontract-lightgray.png?logo=github - :target: https://github.com/OCA/contract/tree/18.0/contract_invoice_start_end_dates + :target: https://github.com/OCA/contract/tree/19.0/contract_invoice_start_end_dates :alt: OCA/contract .. |badge4| image:: https://img.shields.io/badge/weblate-Translate%20me-F47D42.png - :target: https://translation.odoo-community.org/projects/contract-18-0/contract-18-0-contract_invoice_start_end_dates + :target: https://translation.odoo-community.org/projects/contract-19-0/contract-19-0-contract_invoice_start_end_dates :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/contract&target_branch=18.0 + :target: https://runboat.odoo-community.org/builds?repo=OCA/contract&target_branch=19.0 :alt: Try me on Runboat |badge1| |badge2| |badge3| |badge4| |badge5| @@ -46,7 +46,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. @@ -61,15 +61,15 @@ Authors Contributors ------------ -- `Akretion `__: +- `Akretion `__: - - Alexis de Lattre - - Florian da Costa - - Chafique Delli + - Alexis de Lattre + - Florian da Costa + - Chafique Delli -- `Heliconia Solutions Pvt. Ltd. `__ +- `Heliconia Solutions Pvt. Ltd. `__ - - Bhavesh Heliconia + - Bhavesh Heliconia Maintainers ----------- @@ -92,6 +92,6 @@ Current `maintainer `__: |maintainer-florian-dacosta| -This module is part of the `OCA/contract `_ project on GitHub. +This module is part of the `OCA/contract `_ project on GitHub. You are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute. diff --git a/contract_invoice_start_end_dates/__manifest__.py b/contract_invoice_start_end_dates/__manifest__.py index 504b457856..9436c137b5 100644 --- a/contract_invoice_start_end_dates/__manifest__.py +++ b/contract_invoice_start_end_dates/__manifest__.py @@ -3,7 +3,7 @@ { "name": "Contract Invoice Start End Dates", - "version": "18.0.1.0.0", + "version": "19.0.1.0.0", "category": "Contract Management", "author": "Akretion, Odoo Community Association (OCA)", "maintainers": ["florian-dacosta"], diff --git a/contract_invoice_start_end_dates/static/description/index.html b/contract_invoice_start_end_dates/static/description/index.html index 9062f223ea..1ba33f7d37 100644 --- a/contract_invoice_start_end_dates/static/description/index.html +++ b/contract_invoice_start_end_dates/static/description/index.html @@ -374,7 +374,7 @@

Contract Invoice Start End Dates

!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! !! source digest: sha256:16759327e8dfed950022d49c2ec70376cbe8abf56116c7900ea3162db714b541 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! --> -

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

+

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

This module automatically adds start and end dates to the invoice line generated by a contract if the product is marked as Must have dates.

Table of contents

@@ -394,7 +394,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.

@@ -431,7 +431,7 @@

Maintainers

promote its widespread use.

Current maintainer:

florian-dacosta

-

This module is part of the OCA/contract project on GitHub.

+

This module is part of the OCA/contract project on GitHub.

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

From 444e93f6c070506fe771442e019c0aa679a96297 Mon Sep 17 00:00:00 2001 From: bosd Date: Tue, 30 Dec 2025 12:41:49 +0100 Subject: [PATCH 16/16] [test requirements] --- test-requirements.txt | 2 ++ 1 file changed, 2 insertions(+) create mode 100644 test-requirements.txt diff --git a/test-requirements.txt b/test-requirements.txt new file mode 100644 index 0000000000..3e22603e4b --- /dev/null +++ b/test-requirements.txt @@ -0,0 +1,2 @@ +odoo-addon-contract @ git+https://github.com/OCA/contract@refs/pull/1312/head#subdirectory=contract +odoo-addon-account_invoice_start_end_dates @ git+https://github.com/OCA/account-closing@refs/pull/355/head#subdirectory=account_invoice_start_end_dates