diff --git a/coopiteasy_subscription/__init__.py b/coopiteasy_subscription/__init__.py new file mode 100644 index 00000000..0650744f --- /dev/null +++ b/coopiteasy_subscription/__init__.py @@ -0,0 +1 @@ +from . import models diff --git a/coopiteasy_subscription/__manifest__.py b/coopiteasy_subscription/__manifest__.py new file mode 100644 index 00000000..a15a1e85 --- /dev/null +++ b/coopiteasy_subscription/__manifest__.py @@ -0,0 +1,25 @@ +# Copyright 2019 Coop IT Easy SCRL fs +# Robin Keunen +# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl.html). + + +{ + "name": "Coop IT Easy Subscriptions", + "version": "12.0.1.0.0", + "author": "Coop IT Easy SC", + "license": "AGPL-3", + "category": "Contract Management", + "website": "https://coopiteasy.be", + "summary": """ + Configure included support hours, compute quarter support time and invoice overshoot. + """, + "depends": [ + "contract", + "project", + ], + "data": [ + "views/contract_views.xml", + "views/product_template_views.xml", + ], + "installable": True, +} diff --git a/coopiteasy_subscription/models/__init__.py b/coopiteasy_subscription/models/__init__.py new file mode 100644 index 00000000..bccbf864 --- /dev/null +++ b/coopiteasy_subscription/models/__init__.py @@ -0,0 +1,2 @@ +from . import contract_line +from . import product_template diff --git a/coopiteasy_subscription/models/contract_line.py b/coopiteasy_subscription/models/contract_line.py new file mode 100644 index 00000000..2cef6906 --- /dev/null +++ b/coopiteasy_subscription/models/contract_line.py @@ -0,0 +1,25 @@ +# Copyright 2023 Coop IT Easy SC +# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl.html). + +from odoo import api, fields, models + + +class Contract(models.Model): + _inherit = "contract.contract" + support_line_ids = fields.One2many( + comodel_name="contract.line", + related="contract_line_ids", + ) # fixme can't modify the line because it's a related fields => need to be able to edit project _id + + +class ContractLine(models.Model): + _inherit = "contract.line" + + project_id = fields.Many2one( + string="Project", + comodel_name="project.project", + ) + is_support_line = fields.Boolean( + related="product_id.is_support_product", + ) + nb_included_hours = fields.Float(related="product_id.nb_included_hours") diff --git a/coopiteasy_subscription/models/product_template.py b/coopiteasy_subscription/models/product_template.py new file mode 100644 index 00000000..199b5601 --- /dev/null +++ b/coopiteasy_subscription/models/product_template.py @@ -0,0 +1,14 @@ +# Copyright 2023 Coop IT Easy SC +# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl.html). + +from odoo import api, fields, models + + +class ProductTemplate(models.Model): + _inherit = "product.template" + + is_support_product = fields.Boolean() + nb_included_hours = fields.Float( + string="Number of included hours", + default=0, + ) diff --git a/coopiteasy_subscription/readme/CONTRIBUTORS.rst b/coopiteasy_subscription/readme/CONTRIBUTORS.rst new file mode 100644 index 00000000..e69de29b diff --git a/coopiteasy_subscription/readme/DESCRIPTION.rst b/coopiteasy_subscription/readme/DESCRIPTION.rst new file mode 100644 index 00000000..e69de29b diff --git a/coopiteasy_subscription/views/contract_views.xml b/coopiteasy_subscription/views/contract_views.xml new file mode 100644 index 00000000..4a066e51 --- /dev/null +++ b/coopiteasy_subscription/views/contract_views.xml @@ -0,0 +1,41 @@ + + + + + + + + + + + + + + + + + contract.contract.form.view + contract.contract + + + + + + + + + + + + + + + + + + + + + diff --git a/coopiteasy_subscription/views/product_template_views.xml b/coopiteasy_subscription/views/product_template_views.xml new file mode 100644 index 00000000..014cd7e8 --- /dev/null +++ b/coopiteasy_subscription/views/product_template_views.xml @@ -0,0 +1,21 @@ + + + + + + product.template.form.view + product.template + + + + + + + + + + + + + +