From 364268eaa9d4e729dc162b579382c18a570f053c Mon Sep 17 00:00:00 2001 From: Alessandro Uffreduzzi Date: Fri, 15 Mar 2024 10:37:00 +0100 Subject: [PATCH] [FIX] subscription_oca: product-subscription_template company issues Make company required on subscription_template. Make subcription_template_id a company-dependent field on product_template. --- subscription_oca/README.rst | 2 +- subscription_oca/__manifest__.py | 2 +- .../migrations/14.0.2.0.0/post-migrate.py | 14 ++++++++++++++ .../migrations/14.0.2.0.0/pre-migrate.py | 13 +++++++++++++ subscription_oca/models/product_template.py | 4 +++- .../models/sale_subscription_template.py | 1 + subscription_oca/static/description/index.html | 3 ++- 7 files changed, 35 insertions(+), 4 deletions(-) create mode 100644 subscription_oca/migrations/14.0.2.0.0/post-migrate.py create mode 100644 subscription_oca/migrations/14.0.2.0.0/pre-migrate.py diff --git a/subscription_oca/README.rst b/subscription_oca/README.rst index f16548e5a..67eec7976 100644 --- a/subscription_oca/README.rst +++ b/subscription_oca/README.rst @@ -7,7 +7,7 @@ Subscription management !! This file is generated by oca-gen-addon-readme !! !! changes will be overwritten. !! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! - !! source digest: sha256:30f9f32f03f3354d63eec84cae0c6ecf6f3f9f02f0cc780d80b3de4c49a92eff + !! source digest: sha256:ebd987588c730c485dde3b984d5da1506984ed1f42cc14a649ca24b5a54e3a4a !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! .. |badge1| image:: https://img.shields.io/badge/maturity-Beta-yellow.png diff --git a/subscription_oca/__manifest__.py b/subscription_oca/__manifest__.py index aa85bb296..db4679ed6 100644 --- a/subscription_oca/__manifest__.py +++ b/subscription_oca/__manifest__.py @@ -3,7 +3,7 @@ { "name": "Subscription management", "summary": "Generate recurring invoices.", - "version": "14.0.1.3.0", + "version": "14.0.2.0.0", "development_status": "Beta", "category": "Subscription Management", "website": "https://github.com/OCA/contract", diff --git a/subscription_oca/migrations/14.0.2.0.0/post-migrate.py b/subscription_oca/migrations/14.0.2.0.0/post-migrate.py new file mode 100644 index 000000000..3ec83c491 --- /dev/null +++ b/subscription_oca/migrations/14.0.2.0.0/post-migrate.py @@ -0,0 +1,14 @@ +from openupgradelib import openupgrade + + +@openupgrade.migrate() +def migrate(env, version): + openupgrade.convert_to_company_dependent( + env, + "product.template", + "old_subscription_template_id", + "subscription_template_id", + ) + openupgrade.drop_columns( + env.cr, [("product_template", "old_subscription_template_id")] + ) diff --git a/subscription_oca/migrations/14.0.2.0.0/pre-migrate.py b/subscription_oca/migrations/14.0.2.0.0/pre-migrate.py new file mode 100644 index 000000000..55682c5f9 --- /dev/null +++ b/subscription_oca/migrations/14.0.2.0.0/pre-migrate.py @@ -0,0 +1,13 @@ +from openupgradelib import openupgrade + + +@openupgrade.migrate() +def migrate(env, version): + openupgrade.copy_columns( + env.cr, + { + "product_template": [ + ("subscription_template_id", "old_subscription_template_id", None) + ] + }, + ) diff --git a/subscription_oca/models/product_template.py b/subscription_oca/models/product_template.py index c866cfa3e..3c917f205 100644 --- a/subscription_oca/models/product_template.py +++ b/subscription_oca/models/product_template.py @@ -8,5 +8,7 @@ class Product(models.Model): subscribable = fields.Boolean(string="Subscribable product") subscription_template_id = fields.Many2one( - comodel_name="sale.subscription.template", string="Subscription template" + comodel_name="sale.subscription.template", + string="Subscription template", + company_dependent=True, ) diff --git a/subscription_oca/models/sale_subscription_template.py b/subscription_oca/models/sale_subscription_template.py index 25b872078..b0843c92d 100644 --- a/subscription_oca/models/sale_subscription_template.py +++ b/subscription_oca/models/sale_subscription_template.py @@ -46,6 +46,7 @@ class SaleSubscriptionTemplate(models.Model): company_id = fields.Many2one( "res.company", "Company", + required=True, default=lambda self: self.env.company, domain=lambda self: [("id", "in", self.env.companies.ids)], ) diff --git a/subscription_oca/static/description/index.html b/subscription_oca/static/description/index.html index 170e2d994..b89429067 100644 --- a/subscription_oca/static/description/index.html +++ b/subscription_oca/static/description/index.html @@ -1,3 +1,4 @@ + @@ -366,7 +367,7 @@ ul.auto-toc { !! This file is generated by oca-gen-addon-readme !! !! changes will be overwritten. !! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! -!! source digest: sha256:30f9f32f03f3354d63eec84cae0c6ecf6f3f9f02f0cc780d80b3de4c49a92eff +!! source digest: sha256:ebd987588c730c485dde3b984d5da1506984ed1f42cc14a649ca24b5a54e3a4a !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! -->

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

This module allows creating subscriptions that generate recurring invoices or orders. It also enables the sale of products that generate subscriptions.