summaryrefslogtreecommitdiff
path: root/CONTRIBUTING.md
diff options
context:
space:
mode:
authorGuewen Baconnier <guewen.baconnier@camptocamp.com>2020-12-17 13:03:37 +0000
committerArnold Moyaux <arm@odoo.com>2021-05-26 08:54:15 +0000
commitd53d8bdf789e8f79ea4d531d944686abb59d6a26 (patch)
treefecccee33f798b0ee992416942ada7e7d7416403 /CONTRIBUTING.md
parent2efe50bafbb79a9fc6b53c06c456313fa9b3b5bc (diff)
[FIX] stock: fix check of package all in move lines
The `groupby` function is used to builds groups of(product, lot) keys and their corresponding move lines / quants. `groupby` groups *consecutive* keys, which is why the input is sorted by the keys. `sorted` on recordsets keys will not sort as we would expect in this particular situation, as the comparison operators on records act as Set Comparison operators on the record ids, i.e. to compare the sets superset/subset relationships: ``` >>> env["product.product"].browse(1) < env["product.product"].browse(2) False >>> env["product.product"].browse(1) < env["product.product"].browse([1, 2]) True ``` Example of sorted on stock.move.line records, where the product id 7313 is both in the slots 4 and 12 instead of being consecutive: ``` >>> [l.product_id.id for l in sorted(lines, key=itemgetter('product_id'))] [7436, 7437, 7352, 7423, 7313, 7351, 7423, 7424, 7320, 7398, 7312, 7352, 7313, 7436, 7437, 7442, 7443, 7320, 7423, 7424, 7318, 7396, 7368, 7355, 7316] ``` Now when we group by id the 2 ids 7313 are correctly placed together in slots 1 and 2: ``` >>> [l.product_id.id for l in sorted(lines, key=attrgetter('product_id.id'))] [7312, 7313, 7313, 7316, 7318, 7320, 7320, 7351, 7352, 7352, 7355, 7368, 7396, 7398, 7423, 7423, 7423, 7424, 7424, 7436, 7436, 7437, 7437, 7442, 7443] ``` This commit aims to sort by "id" of the related records, to ensure the same (product, lot) couples are consecutive. closes odoo/odoo#71126 X-original-commit: 3317249dd88c97f96e8130d3d67a33a1075e0748 Signed-off-by: Arnold Moyaux <amoyaux@users.noreply.github.com>
Diffstat (limited to 'CONTRIBUTING.md')
0 files changed, 0 insertions, 0 deletions