From 816c587e287f672727a1257857b641a7627ed296 Mon Sep 17 00:00:00 2001 From: VaticanCameos Date: Wed, 4 Mar 2015 13:48:35 +0530 Subject: [PATCH] Modified sale line serialization for cart #7211 By default, the standard fields 'display_name', 'url', 'image' are picked from the sale line's product. In downstream modules this behaviour can be modified. --- sale.py | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/sale.py b/sale.py index 0338fe0..41a08d8 100644 --- a/sale.py +++ b/sale.py @@ -130,8 +130,6 @@ def _add_or_update(self, product_id, quantity, action='set'): values.update(SaleLine(**values).on_change_quantity()) for key, value in values.iteritems(): - # This can be removed in 3.4 and call on_change on - # instance if '.' not in key: setattr(order_line, key, value) return order_line @@ -164,6 +162,13 @@ def serialize(self, purpose=None): if purpose == 'cart': res.update({ 'id': self.id, + 'display_name': self.description or self.product.name, + 'url': self.product.get_absolute_url(_external=True), + 'image': ( + self.product.default_image.transform_command().thumbnail( + 150, 150, 'a' + ).url() if self.product.default_image else None + ), 'product': self.product.serialize(purpose), 'quantity': number_format(self.quantity), 'unit': self.unit.symbol,