| 
								
								
									 Christopher Neugebauer | 875f736d67 | Consolidates models.py into a directory module. | 2016-04-22 15:06:24 +10:00 |  | 
				
					
						| 
								
								
									 Christopher Neugebauer | c24b9ee213 | Makes EnablingConditionBase a minimal reification of an abstract base model FlagBase, replaces enablingconditionbase with flagbase where possible, and fixes method names and documentation | 2016-04-12 08:42:22 +10:00 |  | 
				
					
						| 
								
								
									 Christopher Neugebauer | 638ec26126 | Replaces the mandatory/non-mandatory concept with the enabled_if_true/disabled_if_false concept. Closes #4. | 2016-04-11 20:48:18 +10:00 |  | 
				
					
						| 
								
								
									 Christopher Neugebauer | 4fedc73304 | Renames EnablingCondition to Flag where possible | 2016-04-11 17:55:00 +10:00 |  | 
				
					
						| 
								
								
									 Christopher Neugebauer | 6b10a0a7e4 | Adds CreditNote, CreditNoteController, related models, and tests. | 2016-04-11 13:11:56 +10:00 |  | 
				
					
						| 
								
								
									 Christopher Neugebauer | ae8f39381f | Flake8 fixes | 2016-04-08 19:49:18 +10:00 |  | 
				
					
						| 
								
								
									 Christopher Neugebauer | ea1d6f52e6 | Adds payment access codes. | 2016-04-08 13:20:35 +10:00 |  | 
				
					
						| 
								
								
									 Christopher Neugebauer | 2fbe789090 | Adds validate_allowed_to_pay(), which validates whether you’re allowed to pay for an invoice | 2016-04-07 18:26:31 +10:00 |  | 
				
					
						| 
								
								
									 Christopher Neugebauer | 0e80e0336c | adds invoice_recipient to AttendeeProfileBase | 2016-04-07 17:17:15 +10:00 |  | 
				
					
						| 
								
								
									 Christopher Neugebauer | 38cdb8aa63 | Makes invoice model, controller, and test changes to match issue #15 design doc | 2016-04-07 17:16:56 +10:00 |  | 
				
					
						| 
								
								
									 Christopher Neugebauer | 8e95bb7469 | flake8 fixes | 2016-04-07 13:26:25 +10:00 |  | 
				
					
						| 
								
								
									 Christopher Neugebauer | 53413388e0 | Optimises queries through simplifying repeated queries and select_related use | 2016-04-06 22:59:00 +10:00 |  | 
				
					
						| 
								
								
									 Christopher Neugebauer | 8ad265a65a | Fixes tests now that $0 invoices pay themselves | 2016-04-06 17:19:09 +10:00 |  | 
				
					
						| 
								
								
									 Christopher Neugebauer | c9a62db774 | Resolves #17 - cannot generate invoice if there are no product items | 2016-04-06 17:02:11 +10:00 |  | 
				
					
						| 
								
								
									 Christopher Neugebauer | cc318dfa9b | Fixes tests | 2016-04-06 16:09:57 +10:00 |  | 
				
					
						| 
								
								
									 Christopher Neugebauer | 40bc5985f4 | Propagates the error messages up from enabling condition testing | 2016-04-06 15:47:09 +10:00 |  | 
				
					
						| 
								
								
									 Christopher Neugebauer | 39b130811c | Removes superfluous test | 2016-04-06 15:46:49 +10:00 |  | 
				
					
						| 
								
								
									 Christopher Neugebauer | c8c16072ba | fix_simple_errors() now removes exhausted vouchers from the voucher set. | 2016-04-06 14:02:23 +10:00 |  | 
				
					
						| 
								
								
									 Christopher Neugebauer | 0d57da8d6f | Makes apply_voucher() idempotent, adds _test_voucher to validate_cart, and updates tests. | 2016-04-06 14:02:22 +10:00 |  | 
				
					
						| 
								
								
									 Christopher Neugebauer | 6f28c20b70 | Factors _test_voucher() method into CartController | 2016-04-06 14:02:22 +10:00 |  | 
				
					
						| 
								
								
									 Christopher Neugebauer | 7d97d2d2de | Adds fix_simple_errors to cart - it zeroes out unavailable products. Adds test that it does that. | 2016-04-06 14:02:22 +10:00 |  | 
				
					
						| 
								
								
									 Christopher Neugebauer | f5d9458d1a | Adds a validation based on available_products to validate_cart, and a test based on simple enabling conditions | 2016-04-06 10:22:44 +10:00 |  | 
				
					
						| 
								
								
									 Christopher Neugebauer | a4d684f444 | Raises limits errors in the right parts of the form | 2016-04-03 15:25:39 +10:00 |  | 
				
					
						| 
								
								
									 Christopher Neugebauer | 7609965883 | flake8 compliance | 2016-04-03 13:21:57 +10:00 |  | 
				
					
						| 
								
								
									 Christopher Neugebauer | 4d134e95d7 | Refactors discount ceiling testing to make sure that the discount ceiling only considers items where the discount was applied in determining if the discount was reached. | 2016-04-03 13:16:35 +10:00 |  | 
				
					
						| 
								
								
									 Christopher Neugebauer | eab1deff77 | Removes set_quantity and add_to_cart from CartController, and factors it into a test controller for testing | 2016-04-03 10:07:59 +10:00 |  | 
				
					
						| 
								
								
									 Christopher Neugebauer | 312fffd137 | Adds negative quantity tests to _test_limits, and removes _set_quantity_old. | 2016-04-03 10:07:59 +10:00 |  | 
				
					
						| 
								
								
									 Christopher Neugebauer | 2cbda9172f | Fixes bug in product and category, and ceiling enabling conditions | 2016-04-02 20:31:59 +11:00 |  | 
				
					
						| 
								
								
									 Christopher Neugebauer | e3ec128147 | Factors limits testing in set_quantities into _test_limits() | 2016-04-02 20:12:27 +11:00 |  | 
				
					
						| 
								
								
									 Christopher Neugebauer | 194f98bcc4 | Refactors available_products to use test_enabling_conditions | 2016-04-02 18:18:06 +11:00 |  | 
				
					
						| 
								
								
									 Christopher Neugebauer | 1e7a2abc7f | Refactors testing of enabling conditions so that they are done in bulk in ConditionsController, rather than one product at a time. | 2016-04-02 18:18:06 +11:00 |  | 
				
					
						| 
								
								
									 Christopher Neugebauer | 5716af0afa | Replaces a bunch of len(queryset) with queryset.count() | 2016-04-02 18:17:18 +11:00 |  | 
				
					
						| 
								
								
									 Christopher Neugebauer | 1c6dc12781 | Replaces user_can_add_within_limit with user_quantity_remaining | 2016-04-02 18:17:18 +11:00 |  | 
				
					
						| 
								
								
									 Christopher Neugebauer | 576dddcaad | Adds user_quantity_remaining to CategoryController | 2016-04-02 18:17:18 +11:00 |  | 
				
					
						| 
								
								
									 Christopher Neugebauer | 39021cd3dd | Adds set_quantities, refactors set_quantity in terms of set_quantities | 2016-04-02 18:16:29 +11:00 |  | 
				
					
						| 
								
								
									 Christopher Neugebauer | 2e0144effe | flake8 | 2016-04-02 13:29:53 +11:00 |  | 
				
					
						| 
								
								
									 Christopher Neugebauer | 8f233c7943 | available_products now refers to the user’s product limits as well as enabling conditions | 2016-04-02 13:14:34 +11:00 |  | 
				
					
						| 
								
								
									 Christopher Neugebauer | f7289c2101 | Adds ‘available_categories’ as something that actually works | 2016-04-02 11:56:03 +11:00 |  | 
				
					
						| 
								
								
									 Christopher Neugebauer | bdd3714f47 | flake8 style issue | 2016-04-02 11:34:19 +11:00 |  | 
				
					
						| 
								
								
									 Christopher Neugebauer | 69a65ac3ed | Fixes tests on Django 1.9 | 2016-04-02 11:02:01 +11:00 |  | 
				
					
						| 
								
								
									 Christopher Neugebauer | cf85af7719 | Adds refund function, adds tests, makes sure that refunds are obeyed elsewhere in the codebase | 2016-03-27 21:04:10 +11:00 |  | 
				
					
						| 
								
								
									 Christopher Neugebauer | 3e4e52b165 | Adds more constraints around payment and voiding of invoices | 2016-03-27 14:41:43 +11:00 |  | 
				
					
						| 
								
								
									 Christopher Neugebauer | 8080d7851b | Invoices now automatically void themselves if their cart is out of date | 2016-03-27 14:04:47 +11:00 |  | 
				
					
						| 
								
								
									 Christopher Neugebauer | 0d458bea06 | Allows Product.limit_per_user to be blank and null. Adds Category.limit_per_user. Adds functionality and tests to verify that this is legal. | 2016-03-27 13:12:33 +11:00 |  | 
				
					
						| 
								
								
									 Christopher Neugebauer | 834233cd72 | Factors ProductsForm handling into its own function | 2016-03-27 11:30:11 +11:00 |  | 
				
					
						| 
								
								
									 Christopher Neugebauer | 2d5cd622c5 | Makes it invalid for a user to re-enter a voucher code they already have. | 2016-03-26 19:47:01 +11:00 |  | 
				
					
						| 
								
								
									 Christopher Neugebauer | 45aa83f854 | Adds available_products as a method on ProductController | 2016-03-26 13:37:13 +11:00 |  | 
				
					
						| 
								
								
									 Christopher Neugebauer | c41a9cadff | recalculate_discounts now uses the available_discounts function from controllers.discount. | 2016-03-26 13:33:23 +11:00 |  | 
				
					
						| 
								
								
									 Christopher Neugebauer | fb3878ce2e | Adds available_discounts, which allows enumeration of the discounts that are available for a given set of products and categories | 2016-03-25 18:59:34 +11:00 |  | 
				
					
						| 
								
								
									 Christopher Neugebauer | 8e6364d02a | Fixes bug where discount quantity applied to all users rather than specific user. Adds test case. | 2016-03-25 12:50:34 +11:00 |  |