def update(self): form = self.request.form url = self.context.restrictedTraverse('@@plone_context_state').current_base_url() stock = IStock(self.context) if form.get('form.buttons.QuickAdd') is not None: value = form.get('quick-add') validate = validation.validatorFor('isInt') maximum = self.add()['max'] if validate(value) != 1: message = _(u'add_less_than_number', default=u'Add less than ${number}.', mapping={'number': maximum}) IStatusMessage(self.request).addStatusMessage(message, type='warn') else: value = int(value) message = _(u'successfully_added_number', default=u'Successfully added ${number} pc(s).', mapping={ 'number': stock.add_stock(value)}) IStatusMessage(self.request).addStatusMessage(message, type='info') return self.request.response.redirect(url) elif form.get('form.buttons.QuickSubtract') is not None: value = form.get('quick-subtract') validate = validation.validatorFor('isInt') maximum = self.subtract()['max'] if validate(value) != 1: message = _(u'subtract_less_than_number', default=u'Subtract less than ${number}.', mapping={'number': maximum}) IStatusMessage(self.request).addStatusMessage(message, type='warn') else: value = int(value) message = _(u'successfully_subtracted_number', default=u'Successfully subtracted ${number} pc(s).', mapping={ 'number': stock.sub_stock(value)}) IStatusMessage(self.request).addStatusMessage(message, type='info') return self.request.response.redirect(url) elif form.get('form.buttons.AddNewStock') is not None: url = '{}/++add++collective.cart.stock.Stock'.format(self.context.absolute_url()) return self.request.response.redirect(url)