From 7154d3f51025da2791d47975318f43eb22276b44 Mon Sep 17 00:00:00 2001 From: Raphael Michel Date: Wed, 7 Dec 2016 11:31:37 +0100 Subject: [PATCH] Fix setting a voucher price to 0 --- src/pretix/base/models/vouchers.py | 2 +- src/tests/base/test_models.py | 4 ++++ 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/src/pretix/base/models/vouchers.py b/src/pretix/base/models/vouchers.py index 0c8759b37..ee345237f 100644 --- a/src/pretix/base/models/vouchers.py +++ b/src/pretix/base/models/vouchers.py @@ -234,7 +234,7 @@ class Voucher(LoggedModel): certain percentage. If the voucher does not modify the price, the original price will be returned. """ - if self.value: + if self.value is not None: if self.price_mode == 'set': return self.value elif self.price_mode == 'subtract': diff --git a/src/tests/base/test_models.py b/src/tests/base/test_models.py index 38029fb6d..0c9d5b5f5 100644 --- a/src/tests/base/test_models.py +++ b/src/tests/base/test_models.py @@ -421,6 +421,10 @@ class VoucherTestCase(BaseQuotaTestCase): v = Voucher.objects.create(event=self.event, price_mode='set', value=Decimal('10.00')) v.calculate_price(Decimal('23.42')) == Decimal('10.00') + def test_calculate_price_set_zero(self): + v = Voucher.objects.create(event=self.event, price_mode='set', value=Decimal('0.00')) + v.calculate_price(Decimal('23.42')) == Decimal('0.00') + def test_calculate_price_subtract(self): v = Voucher.objects.create(event=self.event, price_mode='subtract', value=Decimal('10.00')) v.calculate_price(Decimal('23.42')) == Decimal('13.42')