Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[16.0][IMP-FIX] delivery_auto_refresh - performance & compatibility & cleanup #799

Merged
merged 11 commits into from
Jun 14, 2024
4 changes: 3 additions & 1 deletion delivery_auto_refresh/__manifest__.py
Original file line number Diff line number Diff line change
Expand Up @@ -4,13 +4,15 @@
{
"name": "Auto-refresh delivery",
"summary": "Auto-refresh delivery price in sales orders",
"version": "16.0.1.0.1",
"version": "16.0.2.0.0",
"category": "Delivery",
"website": "https://github.com/OCA/delivery-carrier",
"author": "Tecnativa, Odoo Community Association (OCA)",
"license": "AGPL-3",
"application": False,
"installable": True,
"depends": ["delivery"],
# Migration Note 17.0: Add dependency to sale_order_carrier_auto_assign
# "depends": ["delivery", "sale_order_carrier_auto_assign"],
"data": ["views/sale_order_views.xml", "views/res_config_settings_views.xml"],
}
31 changes: 31 additions & 0 deletions delivery_auto_refresh/migrations/16.0.2.0.0/post-migration.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
# Copyright 2024 Jacques-Etienne Baudoux (BCIM) <je@bcim.be>
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl).

from odoo import SUPERUSER_ID, api


def _migrate_setting_to_company(env):
if env["ir.config_parameter"].get_param(
"delivery_auto_refresh.set_default_carrier"
):
env["res.company"].search([]).sale_auto_assign_carrier_on_create = True

if env["ir.config_parameter"].get_param(
"delivery_auto_refresh.auto_add_delivery_line"
):
env["res.company"].search([]).sale_auto_add_delivery_line = True

if env["ir.config_parameter"].get_param(
"delivery_auto_refresh.refresh_after_picking"
):
env["res.company"].search([]).sale_refresh_delivery_after_picking = True

if env["ir.config_parameter"].get_param(
"delivery_auto_refresh.auto_void_delivery_line"
):
env["res.company"].search([]).sale_auto_void_delivery_line = True


def migrate(cr, version):
env = api.Environment(cr, SUPERUSER_ID, {})
_migrate_setting_to_company(env)
1 change: 1 addition & 0 deletions delivery_auto_refresh/models/__init__.py
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
from . import sale_order
from . import stock_picking
from . import res_company
from . import res_config_settings
24 changes: 24 additions & 0 deletions delivery_auto_refresh/models/res_company.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
# Copyright 2024 Jacques-Etienne Baudoux (BCIM) <je@bcim.be>
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl).

from odoo import fields, models


class ResCompany(models.Model):
_inherit = "res.company"

# Migration Note 17.0: move this to module sale_order_carrier_auto_assign
sale_auto_assign_carrier_on_create = fields.Boolean(
"Set default shipping method automatically"
)
# End migration note

sale_auto_add_delivery_line = fields.Boolean(
"Refresh shipping cost line automatically",
)
sale_refresh_delivery_after_picking = fields.Boolean(
"Refresh delivery after picking automatically",
)
sale_auto_void_delivery_line = fields.Boolean(
"Void delivery lines automatically",
)
27 changes: 15 additions & 12 deletions delivery_auto_refresh/models/res_config_settings.py
Original file line number Diff line number Diff line change
Expand Up @@ -7,19 +7,22 @@
class ResConfigSettings(models.TransientModel):
_inherit = "res.config.settings"

set_default_carrier = fields.Boolean(
"Set Default Carrier Automatically",
config_parameter="delivery_auto_refresh.set_default_carrier",
# Migration Note 17.0: move this to module sale_order_carrier_auto_assign
sale_auto_assign_carrier_on_create = fields.Boolean(
related="company_id.sale_auto_assign_carrier_on_create",
readonly=False,
)
auto_add_delivery_line = fields.Boolean(
"Add Delivery Line Automatically",
config_parameter="delivery_auto_refresh.auto_add_delivery_line",
# End migration note

sale_auto_add_delivery_line = fields.Boolean(
related="company_id.sale_auto_add_delivery_line",
readonly=False,
)
refresh_after_picking = fields.Boolean(
"Refresh After Picking Automatically",
config_parameter="delivery_auto_refresh.refresh_after_picking",
sale_refresh_delivery_after_picking = fields.Boolean(
related="company_id.sale_refresh_delivery_after_picking",
readonly=False,
)
auto_void_delivery_line = fields.Boolean(
"Void delivery lines automatically",
config_parameter="delivery_auto_refresh.auto_void_delivery_line",
sale_auto_void_delivery_line = fields.Boolean(
related="company_id.sale_auto_void_delivery_line",
readonly=False,
)
Loading
Loading