From 1756698cdeebfbf3bec2548f6459882964fba1fe Mon Sep 17 00:00:00 2001 From: "robin.keunen" Date: Tue, 11 Aug 2020 15:47:59 +0200 Subject: [PATCH] [FIX] strong typing required when comparing values in python3 --- beesdoo_product/models/beesdoo_product.py | 13 ++++++++++--- .../models/product_template.py | 17 +++++++++++------ 2 files changed, 21 insertions(+), 9 deletions(-) diff --git a/beesdoo_product/models/beesdoo_product.py b/beesdoo_product/models/beesdoo_product.py index c460a9a..c8efda2 100644 --- a/beesdoo_product/models/beesdoo_product.py +++ b/beesdoo_product/models/beesdoo_product.py @@ -3,6 +3,7 @@ import logging import uuid +from datetime import date from odoo import api, fields, models from odoo.exceptions import UserError, ValidationError @@ -95,9 +96,15 @@ class BeesdooProduct(models.Model): product.scale_sale_unit = "P" def _get_main_supplier_info(self): - suppliers = self.seller_ids.sorted( - key=lambda seller: seller.date_start, reverse=True - ) + far_future = date(3000, 1, 1) + + def sort_date_first(seller): + if seller.date_start: + return seller.date_start + else: + return far_future + + suppliers = self.seller_ids.sorted(key=sort_date_first, reverse=True) if suppliers: return suppliers[0] else: diff --git a/purchase_order_generator/models/product_template.py b/purchase_order_generator/models/product_template.py index 86a49ba..d444e21 100644 --- a/purchase_order_generator/models/product_template.py +++ b/purchase_order_generator/models/product_template.py @@ -3,6 +3,8 @@ # Vincent Van Rossem # License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl.html). +from datetime import date + from odoo import api, fields, models @@ -13,17 +15,20 @@ class ProductTemplate(models.Model): "res.partner", compute="_compute_main_supplier_id", store=True ) - def _get_sorted_supplierinfo(self): - return self.seller_ids.sorted( - key=lambda seller: seller.date_start, reverse=True - ) - @api.multi @api.depends("seller_ids", "seller_ids.date_start") def _compute_main_supplier_id(self): + far_future = date(3000, 1, 1) + + def sort_date_first(seller): + if seller.date_start: + return seller.date_start + else: + return far_future + for pt in self: sellers_ids = pt.seller_ids.sorted( - key=lambda seller: seller.date_start, reverse=True + key=sort_date_first, reverse=True ) if sellers_ids: pt.main_supplier_id = sellers_ids[0].name