| 
								
								
									 Christopher Neugebauer | c6fdfa496e | Replaces CategoryController.attach_user_remainders with user_remainders | 2016-04-30 20:30:44 +10:00 |  | 
				
					
						| 
								
								
									 Christopher Neugebauer | 941caa30d9 | Replaces ProductController.attach_user_remainders with ProductController.user_remainders | 2016-04-30 20:30:21 +10:00 |  | 
				
					
						| 
								
								
									 Christopher Neugebauer | b40505117f | Fixes flake8 errors arising from rebase | 2016-04-29 11:22:56 +10:00 |  | 
				
					
						| 
								
								
									 Christopher Neugebauer | 135f2fb47b | Refactors discounts validation in terms of available_discounts | 2016-04-29 11:16:40 +10:00 |  | 
				
					
						| 
								
								
									 Christopher Neugebauer | 4eff8194f9 | Reduces CartController re-loading when batching operations | 2016-04-29 11:16:40 +10:00 |  | 
				
					
						| 
								
								
									 Christopher Neugebauer | 02fe88a4e4 | Tests and fixes for a bug where discount quantities did not respect per-line item quantities. | 2016-04-29 11:11:59 +10:00 |  | 
				
					
						| 
								
								
									 Christopher Neugebauer | 6d52a4c18f | More low-hanging query optimisations | 2016-04-29 11:11:26 +10:00 |  | 
				
					
						| 
								
								
									 Christopher Neugebauer | 4fb569d935 | Does more select_related and bulk_create calls | 2016-04-29 11:10:20 +10:00 |  | 
				
					
						| 
								
								
									 Christopher Neugebauer | a79ad3520e | Puts attach_remainders on ProductController and CategoryController, eliminating the need to query each product and category separately. | 2016-04-29 11:09:34 +10:00 |  | 
				
					
						| 
								
								
									 Christopher Neugebauer | 587e6e20b2 | Adds an operations_batch context manager that allows batches of modifying operations to be nested. Closes #44. | 2016-04-29 11:08:45 +10:00 |  | 
				
					
						| 
								
								
									 Christopher Neugebauer | 162db24817 | Flake8 fixes | 2016-04-29 11:08:45 +10:00 |  | 
				
					
						| 
								
								
									 Christopher Neugebauer | 71de0df5dc | Makes DiscountController a class and puts available_discounts inside it | 2016-04-29 11:08:42 +10:00 |  | 
				
					
						| 
								
								
									 Christopher Neugebauer | 145fd057ac | Breaks out flag-handling code into flag.py and FlagController | 2016-04-29 11:07:52 +10:00 |  | 
				
					
						| 
								
								
									 Christopher Neugebauer | 3f1be0e14e | Rearchitected condition processing such that multiple conditions are processed by the database, in bulk. Closes #42. | 2016-04-29 11:06:58 +10:00 |  | 
				
					
						| 
								
								
									 Christopher Neugebauer | 8afb31a118 | Flake8 fix | 2016-04-26 13:56:10 +10:00 |  | 
				
					
						| 
								
								
									 Christopher Neugebauer | 63d15a6be3 | More view documentation | 2016-04-26 10:52:56 +10:00 |  | 
				
					
						| 
								
								
									 Christopher Neugebauer | cbecbf9a41 | Tidies up some docs | 2016-04-25 18:50:09 +10:00 |  | 
				
					
						| 
								
								
									 Christopher Neugebauer | fd751b4ea1 | Removes print statement | 2016-04-25 18:32:36 +10:00 |  | 
				
					
						| 
								
								
									 Christopher Neugebauer | 4cdbdb71ce | flake8 fixes | 2016-04-25 17:37:33 +10:00 |  | 
				
					
						| 
								
								
									 Christopher Neugebauer | b709da97f1 | Checks that required category constraints are met before letting you check out your cart. Closes #35 | 2016-04-25 17:13:58 +10:00 |  | 
				
					
						| 
								
								
									 Christopher Neugebauer | a69d3f051e | Makes cart amendment methods fail if the cart is no longer active. Closes #16 | 2016-04-25 17:13:11 +10:00 |  | 
				
					
						| 
								
								
									 Christopher Neugebauer | 63dfd353c1 | Replaces active/released flags in Cart with a single int flag. Closes #41 | 2016-04-25 15:36:55 +10:00 |  | 
				
					
						| 
								
								
									 Christopher Neugebauer | c0b0ae780d | Removes confusingness from cart.py | 2016-04-25 13:20:48 +10:00 |  | 
				
					
						| 
								
								
									 Christopher Neugebauer | 12e04c248f | Credit notes are now generated when invoices are overpaid, or invoices are paid into void or refunded invoices. Closes #37. | 2016-04-25 08:26:54 +10:00 |  | 
				
					
						| 
								
								
									 Christopher Neugebauer | ca8f67c2f3 | Adds for_id, which lets you get an InvoiceController or CreditNoteController by the ID of the invoice/credit note/. Closes #38. | 2016-04-25 07:20:41 +10:00 |  | 
				
					
						| 
								
								
									 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 |  |