From e51d19941bb2115c77df28813a0770931eed8a29 Mon Sep 17 00:00:00 2001 From: Alexis de Lattre Date: Wed, 14 Dec 2016 14:27:52 +0100 Subject: [PATCH] Add module sale_layout_category_per_order --- sale_layout_category_per_order/__init__.py | 3 + .../__manifest__.py | 30 ++++++++ sale_layout_category_per_order/sale.py | 13 ++++ sale_layout_category_per_order/sale_view.xml | 70 +++++++++++++++++++ 4 files changed, 116 insertions(+) create mode 100644 sale_layout_category_per_order/__init__.py create mode 100644 sale_layout_category_per_order/__manifest__.py create mode 100644 sale_layout_category_per_order/sale.py create mode 100644 sale_layout_category_per_order/sale_view.xml diff --git a/sale_layout_category_per_order/__init__.py b/sale_layout_category_per_order/__init__.py new file mode 100644 index 0000000..78a9604 --- /dev/null +++ b/sale_layout_category_per_order/__init__.py @@ -0,0 +1,3 @@ +# -*- coding: utf-8 -*- + +from . import sale diff --git a/sale_layout_category_per_order/__manifest__.py b/sale_layout_category_per_order/__manifest__.py new file mode 100644 index 0000000..6f27cad --- /dev/null +++ b/sale_layout_category_per_order/__manifest__.py @@ -0,0 +1,30 @@ +# -*- coding: utf-8 -*- +# © 2016 Akretion (http://www.akretion.com) +# @author Alexis de Lattre +# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). + +{ + 'name': 'Sale Layout Category per Order', + 'version': '10.0.1.0.0', + 'category': 'Sale Management', + 'license': 'AGPL-3', + 'summary': 'Allow to create per-order sale report categories', + 'description': """ +Sale Layout Category per Order +============================== + +With this module, you can have: + +* generic Sale report layout categories (native) +* per-order Sale Report categories (added by this module) + +One limitation to be aware of: when you create a sale report layout category from the form view of a new quotation that hasn't been saved yet, the default affectation to the sale order won't work (for obvious technical reasons). + +This module has been written by Alexis de Lattre from Akretion . + """, + 'author': 'Akretion', + 'website': 'http://www.akretion.com', + 'depends': ['sale'], + 'data': ['sale_view.xml'], + 'installable': True, +} diff --git a/sale_layout_category_per_order/sale.py b/sale_layout_category_per_order/sale.py new file mode 100644 index 0000000..3ac9b30 --- /dev/null +++ b/sale_layout_category_per_order/sale.py @@ -0,0 +1,13 @@ +# -*- coding: utf-8 -*- +# © 2016 Akretion (http://www.akretion.com) +# @author Alexis de Lattre +# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). + +from odoo import models, fields + + +class SaleLayoutCategory(models.Model): + _inherit = 'sale.layout_category' + + order_id = fields.Many2one( + 'sale.order', string='Only for Order', ondelete='cascade') diff --git a/sale_layout_category_per_order/sale_view.xml b/sale_layout_category_per_order/sale_view.xml new file mode 100644 index 0000000..64c807d --- /dev/null +++ b/sale_layout_category_per_order/sale_view.xml @@ -0,0 +1,70 @@ + + + + + + + + sale_layoutcategory_per_order.sale.order.form + sale.order + + + + ['|', ('order_id', '=', parent.id), ('order_id', '=', False)] + {'default_order_id': parent.id} + + + ['|', ('order_id', '=', parent.id), ('order_id', '=', False)] + {'default_order_id': parent.id} + + + + + + + + sale_layoutcategory_per_order.form.view + sale.layout_category + + + + + + + + + + sale_layoutcategory_per_order.tree.view + sale.layout_category + + + + + + + + + + sale_layoutcategory_per_order.search.view + sale.layout_category + + + + + + + + + + + + + + {'search_default_no_order': 1} + + +