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%')