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

[15.0][IMP] delivery_package_number: Ask only once for the number of packages in wizard. #777

Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions delivery_package_number/README.rst
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ Stock Picking Package Number
!! This file is generated by oca-gen-addon-readme !!
!! changes will be overwritten. !!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!! source digest: sha256:c744a790b8d846005f7e828a8a4d0c2dcc678bd29063852c1ce3b213f7630c24
!! source digest: sha256:b4909260c34e879e04938c7d1afb9f4c071ce53d2d36a2445d71f2a2f64a3da1
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

.. |badge1| image:: https://img.shields.io/badge/maturity-Beta-yellow.png
Expand Down Expand Up @@ -82,8 +82,8 @@ Contributors

* Pedro M. Baeza
* David Vidal
* Marçal Isern
* Carlos Roca
* Sergio Teruel


* `Sygel <https://www.sygel.es>`_:
Expand Down
2 changes: 0 additions & 2 deletions delivery_package_number/__manifest__.py
Original file line number Diff line number Diff line change
Expand Up @@ -17,8 +17,6 @@
"reports/report_package_number.xml",
"views/stock_picking_type_views.xml",
"views/stock_picking_views.xml",
"wizard/stock_immediate_transfer_views.xml",
"wizard/stock_backorder_confirmation_views.xml",
"wizard/stock_number_package_validate_wiz_view.xml",
],
}
26 changes: 20 additions & 6 deletions delivery_package_number/models/stock_picking.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@
# Copyright 2023 Tecnativa - Pedro M. Baeza
# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl).
from odoo import _, api, fields, models
from odoo.tools import config


class StockPicking(models.Model):
Expand All @@ -15,6 +16,7 @@
default=0,
copy=False,
)
ask_number_of_packages = fields.Boolean(compute="_compute_ask_number_of_packages")

@api.depends("package_ids")
def _compute_number_of_packages(self):
Expand All @@ -37,24 +39,36 @@
),
}

def _check_set_number_of_packages(self):
def _compute_ask_number_of_packages(self):
"""To Know if is needed raise wizard to ask user by package number"""
for picking in self:
picking.ask_number_of_packages = bool(
picking.carrier_id
and not picking.package_ids
or picking.picking_type_id.force_set_number_of_packages
)

def _get_pickings_to_set_number_of_packages(self):
"""Get pickings that needed raise wizard to fill number of packages"""
pickings_to_set_number_of_packages = self.browse()
for picking in self:
if (
picking.picking_type_id.force_set_number_of_packages
and not picking.number_of_packages
):
if not picking.number_of_packages:
pickings_to_set_number_of_packages |= picking
return pickings_to_set_number_of_packages

def _pre_action_done_hook(self):
res = super()._pre_action_done_hook()
test_condition = not config["test_enable"] or self.env.context.get(
"test_delivery_package_number"
)
if (
res
and test_condition
and isinstance(res, bool)
and any(picking.ask_number_of_packages for picking in self)
and not self.env.context.get("bypass_set_number_of_packages")
):
pickings_to_set_nop = self._check_set_number_of_packages()
pickings_to_set_nop = self._get_pickings_to_set_number_of_packages()

Check warning on line 71 in delivery_package_number/models/stock_picking.py

View check run for this annotation

Codecov / codecov/patch

delivery_package_number/models/stock_picking.py#L71

Added line #L71 was not covered by tests
if pickings_to_set_nop:
return pickings_to_set_nop._action_generate_number_of_packages_wizard()
return res
2 changes: 1 addition & 1 deletion delivery_package_number/readme/CONTRIBUTORS.rst
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,8 @@

* Pedro M. Baeza
* David Vidal
* Marçal Isern
* Carlos Roca
* Sergio Teruel


* `Sygel <https://www.sygel.es>`_:
Expand Down
5 changes: 3 additions & 2 deletions delivery_package_number/static/description/index.html
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
Expand Down Expand Up @@ -366,7 +367,7 @@ <h1 class="title">Stock Picking Package Number</h1>
!! This file is generated by oca-gen-addon-readme !!
!! changes will be overwritten. !!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!! source digest: sha256:c744a790b8d846005f7e828a8a4d0c2dcc678bd29063852c1ce3b213f7630c24
!! source digest: sha256:b4909260c34e879e04938c7d1afb9f4c071ce53d2d36a2445d71f2a2f64a3da1
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! -->
<p><a class="reference external image-reference" href="https://odoo-community.org/page/development-status"><img alt="Beta" src="https://img.shields.io/badge/maturity-Beta-yellow.png" /></a> <a class="reference external image-reference" href="http://www.gnu.org/licenses/agpl-3.0-standalone.html"><img alt="License: AGPL-3" src="https://img.shields.io/badge/licence-AGPL--3-blue.png" /></a> <a class="reference external image-reference" href="https://github.com/OCA/delivery-carrier/tree/15.0/delivery_package_number"><img alt="OCA/delivery-carrier" src="https://img.shields.io/badge/github-OCA%2Fdelivery--carrier-lightgray.png?logo=github" /></a> <a class="reference external image-reference" href="https://translation.odoo-community.org/projects/delivery-carrier-15-0/delivery-carrier-15-0-delivery_package_number"><img alt="Translate me on Weblate" src="https://img.shields.io/badge/weblate-Translate%20me-F47D42.png" /></a> <a class="reference external image-reference" href="https://runboat.odoo-community.org/builds?repo=OCA/delivery-carrier&amp;target_branch=15.0"><img alt="Try me on Runboat" src="https://img.shields.io/badge/runboat-Try%20me-875A7B.png" /></a></p>
<p>This module recovers the number of packages field that was present in previous
Expand Down Expand Up @@ -425,8 +426,8 @@ <h2><a class="toc-backref" href="#toc-entry-5">Contributors</a></h2>
<li><a class="reference external" href="https://www.tecnativa.com">Tecnativa</a>:<ul>
<li>Pedro M. Baeza</li>
<li>David Vidal</li>
<li>Marçal Isern</li>
<li>Carlos Roca</li>
<li>Sergio Teruel</li>
</ul>
</li>
</ul>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -66,7 +66,9 @@ def test_backorder(self):
picking = order.picking_ids
picking.move_lines.quantity_done = 2
picking.number_of_packages = 2
action = picking.button_validate()
action = picking.with_context(
test_delivery_package_number=True
).button_validate()
backorder_wizard = Form(
self.env[action["res_model"]].with_context(**action["context"])
).save()
Expand Down
1 change: 0 additions & 1 deletion delivery_package_number/wizard/__init__.py
Original file line number Diff line number Diff line change
@@ -1,4 +1,3 @@
from . import stock_number_package_mixin
from . import stock_inmediate_transfer
from . import stock_backorder_confirmation
from . import stock_number_package_validate_wiz
18 changes: 2 additions & 16 deletions delivery_package_number/wizard/stock_backorder_confirmation.py
Original file line number Diff line number Diff line change
Expand Up @@ -5,24 +5,10 @@


class StockBackorderConfirmation(models.TransientModel):
_inherit = ["stock.backorder.confirmation", "stock.number.package.mixin"]
_name = "stock.backorder.confirmation"
_inherit = "stock.backorder.confirmation"

def process(self):
if self.number_of_packages:
self.pick_ids.write({"number_of_packages": self.number_of_packages})
# put context key for avoiding `base_delivery_carrier_label` auto-packaging feature
res = super(
return super(
StockBackorderConfirmation, self.with_context(set_default_package=False)
).process()
if self.print_package_label:
report = (
self.pick_ids.picking_type_id.report_number_of_packages
or self.env.ref(
"delivery_package_number.action_delivery_package_number_report"
)
)
report_action = report.report_action(self.pick_ids)
report_action.update({"close_on_report_download": True})
return report_action
return res

This file was deleted.

26 changes: 0 additions & 26 deletions delivery_package_number/wizard/stock_immediate_transfer_views.xml

This file was deleted.

18 changes: 2 additions & 16 deletions delivery_package_number/wizard/stock_inmediate_transfer.py
Original file line number Diff line number Diff line change
Expand Up @@ -4,24 +4,10 @@


class StockImmediateTransfer(models.TransientModel):
_inherit = ["stock.immediate.transfer", "stock.number.package.mixin"]
_name = "stock.immediate.transfer"
_inherit = "stock.immediate.transfer"

def process(self):
if self.number_of_packages:
self.pick_ids.write({"number_of_packages": self.number_of_packages})
# put context key for avoiding `base_delivery_carrier_label` auto-packaging feature
res = super(
return super(
StockImmediateTransfer, self.with_context(set_default_package=False)
).process()
if self.print_package_label:
report = (
self.pick_ids.picking_type_id.report_number_of_packages
or self.env.ref(
"delivery_package_number.action_delivery_package_number_report"
)
)
report_action = report.report_action(self.pick_ids)
report_action.update({"close_on_report_download": True})
return report_action
return res
32 changes: 0 additions & 32 deletions delivery_package_number/wizard/stock_number_package_mixin.py

This file was deleted.

Original file line number Diff line number Diff line change
Expand Up @@ -4,18 +4,28 @@


class StockNumberPackageValidateWiz(models.TransientModel):
_inherit = "stock.number.package.mixin"
_name = "stock.number.package.validate.wizard"
_description = "Wizard to force set number of pickings when validate"

pick_ids = fields.Many2many("stock.picking", "stock_picking_number_package_rel")
number_of_packages = fields.Integer(
help="Set the number of packages for this picking(s)",
)
stock_number_package_validation_line_ids = fields.One2many(
comodel_name="stock.number.package.validate.line.wizard",
inverse_name="wiz_id",
compute="_compute_stock_number_package_validation_line_ids",
readonly=False,
store=True,
)
print_package_label = fields.Boolean(
compute="_compute_print_package_label", readonly=False, store=True
)

@api.depends("pick_ids")
def _compute_print_package_label(self):
for item in self:
item.print_package_label = item.pick_ids.picking_type_id.print_label

Check warning on line 28 in delivery_package_number/wizard/stock_number_package_validate_wiz.py

View check run for this annotation

Codecov / codecov/patch

delivery_package_number/wizard/stock_number_package_validate_wiz.py#L28

Added line #L28 was not covered by tests

@api.depends("pick_ids")
def _compute_stock_number_package_validation_line_ids(self):
Expand Down
Loading