Exemplo n.º 1
0
    def add_to_cart(self, **kwargs):
        """Add Article to cart"""
        shopping_site = IShoppingSite(self.context)
        cart = shopping_site.cart()
        if cart is None:
            session = self.getSessionData(create=True)
            session.set("collective.cart.core", {})
        else:
            session = self.getSessionData(create=False)

        articles = IShoppingSite(self.context).cart_articles()
        if not articles:
            articles = SessionArticles()

        uuid = IUUID(self.context)

        if uuid in articles:
            items = articles[uuid]
            self._update_existing_cart_article(items, **kwargs)

        else:
            items = {
                "id": uuid,
                "title": self.context.Title(),
                "description": self.context.Description(),
                "url": self.context.absolute_url(),
            }
            items.update(kwargs)

        articles[uuid] = items
        shopping_site.update_cart("articles", articles)
    def test_update_cart(self):
        adapter = IShoppingSite(self.portal)
        adapter.update_cart('name', 'NAME')
        self.assertIsNone(adapter.getSessionData(create=False))

        session = adapter.getSessionData(create=True)
        session.set('collective.cart.core', {})
        adapter.update_cart('name', 'NAME')
        self.assertEqual(session.get('collective.cart.core'), {'name': 'NAME'})