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 cart_article_listing(self): """Returns list of cart articles in session for view :rtype: list """ res = [] adapter = IVATAdapter(self.context) for article in super(ShoppingSite, self).cart_article_listing(): article = article.copy() article['vat_rate'] = adapter.percent(article['vat_rate']) res.append(article) return res
def test_percent(self): adapter = IAdapter(self.portal) self.assertEqual(adapter.percent(5.0), u'5%') self.assertEqual(adapter.percent(5.1), u'5.1%') self.assertEqual(adapter.percent(5.12), u'5.12%') self.assertEqual(adapter.percent(5.123), u'5.123%')