def articles(self): """Returns list of dictionary of order articles :rtype: list """ res = [] utility = getUtility(IUnicodeUtility) shopping_site = IShoppingSite(self.context) vat_adapter = IVATAdapter(self.context) for item in self.get_content_listing(IOrderArticle): obj = item.getObject() order_article_adapter = IOrderArticleAdapter(obj) gross_subtotal = order_article_adapter.gross_subtotal() items = { 'description': utility.safe_unicode(item.Description()), 'gross': item.gross, 'gross_subtotal': gross_subtotal, 'locale_gross_subtotal': shopping_site.format_money(gross_subtotal), 'image_url': None, 'obj': obj, 'quantity': item.quantity, 'sku': item.sku, 'title': utility.safe_unicode(item.Title()), 'url': None, 'vat_rate': vat_adapter.percent(item.vat_rate), 'id': item.getId(), } orig_article = shopping_site.get_object(IArticle, path=shopping_site.portal_path(), UID=item.getId()) if orig_article: items['url'] = orig_article.absolute_url() items['image_url'] = IArticleAdapter(orig_article).image_url(size='mini') res.append(items) return res
def test_gross_subtotal(self): context = self.create_content("collective.cart.core.OrderArticle") context.gross = self.money("20.00") context.quantity = 2 adapter = IOrderArticleAdapter(context) self.assertEqual(adapter.gross_subtotal(), self.money("40.00"))