def cart_items(self, items): ret = list() sm = getSecurityManager() for uid, count, comment in items: try: obj = api.content.get(UID=uid) except ValueError: remove_item_from_cart(self.request, uid) continue if obj is None: remove_item_from_cart(self.request, uid) continue if not sm.checkPermission(permissions.BuyItems, obj): remove_item_from_cart(self.request, uid) continue buyable_period = queryAdapter(obj, IBuyablePeriod) if buyable_period: now = datetime.now() effective = buyable_period.effective if effective and now < effective: remove_item_from_cart(self.request, uid) continue expires = buyable_period.expires if expires and now > expires: remove_item_from_cart(self.request, uid) continue data = get_item_data_provider(obj) title = data.title discount_net = data.discount_net(count) price = (Decimal(str(data.net)) - discount_net) * count if data.display_gross: price = price + price / Decimal(100) * Decimal(str(data.vat)) url = obj.absolute_url() description = obj.Description() comment_required = data.comment_required quantity_unit_float = data.quantity_unit_float quantity_unit = translate(data.quantity_unit, context=self.request) preview_image_url = get_item_preview(obj).url item_state = get_item_state(obj, self.request) no_longer_available = not item_state.validate_count(count) alert = item_state.alert(count) item = self.item( uid, title, count, price, url, comment, description, comment_required, quantity_unit_float, quantity_unit, preview_image_url, no_longer_available, alert) ret.append(item) return ret
def cart_items(self, items): ret = list() sm = getSecurityManager() for uid, count, comment in items: try: obj = api.content.get(UID=uid) except ValueError: remove_item_from_cart(self.request, uid) continue if obj is None: remove_item_from_cart(self.request, uid) continue if not sm.checkPermission(permissions.BuyItems, obj): remove_item_from_cart(self.request, uid) continue buyable_period = queryAdapter(obj, IBuyablePeriod) if buyable_period: now = datetime.now() effective = buyable_period.effective if effective and now < effective: remove_item_from_cart(self.request, uid) continue expires = buyable_period.expires if expires and now > expires: remove_item_from_cart(self.request, uid) continue data = get_item_data_provider(obj) title = data.title discount_net = data.discount_net(count) price = (Decimal(str(data.net)) - discount_net) * count if data.display_gross: price = price + price / Decimal(100) * Decimal(str(data.vat)) url = obj.absolute_url() description = obj.Description() comment_required = data.comment_required quantity_unit_float = data.quantity_unit_float quantity_unit = translate(data.quantity_unit, context=self.request) preview_image_url = get_item_preview(obj).url item_state = get_item_state(obj, self.request) no_longer_available = not item_state.validate_count(count) alert = item_state.alert(count) item = self.item(uid, title, count, price, url, comment, description, comment_required, quantity_unit_float, quantity_unit, preview_image_url, no_longer_available, alert) ret.append(item) return ret
def validate_set(self, uid): try: buyable = api.content.get(UID=uid) except ValueError: message = _( u'buyable_does_not_exist', default=u'Buyable item with UID {uuid} does not exist.', mapping={'uuid': uid}) return { 'success': False, 'error': message, 'update': True, } # check whether user can buy item if not api.user.has_permission(permissions.BuyItems, obj=buyable): remove_item_from_cart(self.request, uid) message = _(u'permission_not_granted_to_buy_item', default=u'Permission to buy ${title} not granted.', mapping={'title': buyable.Title()}) message = translate(message, context=self.request) return { 'success': False, 'error': message, 'update': True, } # check buyable period buyable_period = queryAdapter(buyable, IBuyablePeriod) if buyable_period: now = datetime.now() # effective date not reached yet effective = buyable_period.effective if effective and now < effective: remove_item_from_cart(self.request, uid) message = _('item_not_buyable_yet', default=u'Item not buyable yet') message = translate(message, context=self.request) return { 'success': False, 'error': message, 'update': True, } # expires date exceed expires = buyable_period.expires if expires and now > expires: remove_item_from_cart(self.request, uid) message = _('item_no_longer_buyable', default=u'Item no longer buyable') message = translate(message, context=self.request) return { 'success': False, 'error': message, 'update': True, } return { 'success': True, 'error': '', }
def validate_set(self, uid): try: buyable = api.content.get(UID=uid) except ValueError: message = _( u'buyable_does_not_exist', default=u'Buyable item with UID {uuid} does not exist.', mapping={'uuid': uid}) return { 'success': False, 'error': message, 'update': True, } # check whether user can modify cart if not api.user.has_permission(permissions.ModifyCart, obj=buyable): remove_item_from_cart(self.request, uid) message = _(u'permission_not_granted_to_buy_item', default=u'Permission to buy ${title} not granted.', mapping={'title': buyable.Title()}) message = translate(message, context=self.request) return { 'success': False, 'error': message, 'update': True, } # check buyable period buyable_period = queryAdapter(buyable, IBuyablePeriod) if buyable_period: now = datetime.now() # effective date not reached yet effective = buyable_period.effective if effective and now < effective: remove_item_from_cart(self.request, uid) message = _('item_not_buyable_yet', default=u'Item not buyable yet') message = translate(message, context=self.request) return { 'success': False, 'error': message, 'update': True, } # expires date exceed expires = buyable_period.expires if expires and now > expires: remove_item_from_cart(self.request, uid) message = _('item_no_longer_buyable', default=u'Item no longer buyable') message = translate(message, context=self.request) return { 'success': False, 'error': message, 'update': True, } return { 'success': True, 'error': '', }
def validate_set(self, uid): buyable = get_object_by_uid(self.context, uid) # check whether user can buy item sm = getSecurityManager() if not sm.checkPermission(permissions.BuyItems, buyable): remove_item_from_cart(self.request, uid) message = _(u'permission_not_granted_to_buy_item', default=u'Permission to buy ${title} not granted.', mapping={'title': buyable.Title()}) message = translate(message, context=self.request) return { 'success': False, 'error': message, 'update': True, } # check buyable period buyable_period = queryAdapter(buyable, IBuyablePeriod) if buyable_period: now = datetime.now() # effective date not reached yet effective = buyable_period.effective if effective and now < effective: remove_item_from_cart(self.request, uid) message = _('item_not_buyable_yet', default=u'Item not buyable yet') message = translate(message, context=self.request) return { 'success': False, 'error': message, 'update': True, } # expires date exceed expires = buyable_period.expires if expires and now > expires: remove_item_from_cart(self.request, uid) message = _('item_no_longer_buyable', default=u'Item no longer buyable') message = translate(message, context=self.request) return { 'success': False, 'error': message, 'update': True, } return { 'success': True, 'error': '', }