Commit graph

384 commits

Author SHA1 Message Date
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
6c9a68dc5b Fixes #8 properly 2016-04-02 20:31:59 +11:00
Christopher Neugebauer
2cbda9172f Fixes bug in product and category, and ceiling enabling conditions 2016-04-02 20:31:59 +11:00
Christopher Neugebauer
8796670328 handle_products now uses the transactional set_quantities. 2016-04-02 20:12:27 +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
26af6e8672 Adds messages when items are updated; disables product forms when there are no products available. 2016-04-02 11:33:20 +11:00
Christopher Neugebauer
69a65ac3ed Fixes tests on Django 1.9 2016-04-02 11:02:01 +11:00
Christopher Neugebauer
3a6b4125e9 Bugfix 2016-04-01 12:34:06 +01:00
Christopher Neugebauer
12e4d0a3cb flake8 2016-04-01 12:14:39 +01:00
Christopher Neugebauer
89cba55807 Pre-fills the attendee name from a speaker profile, if there is one.
Resolves #8.
2016-04-01 21:39:54 +11:00
Christopher Neugebauer
be277c17d2 BadgeAndProfile is replaced with AttendeeProfileBase — consumer apps should subclass AttendeeProfileBase to make the registration process work :) 2016-04-01 21:21:09 +11:00
Christopher Neugebauer
660e8cb75f Removes BadgeAndProfile.get_instance 2016-04-01 16:58:55 +11:00
Christopher Neugebauer
d2d2a1b0ec Work for making invoices contain complete profile information 2016-04-01 16:54:40 +11:00
Christopher Neugebauer
aa6377f4ce Adds multiply as a template filter (for invoices) 2016-04-01 16:54:40 +11:00
Christopher Neugebauer
8324b51094 Adds new guided registration process. 2016-04-01 16:54:40 +11:00
Christopher Neugebauer
466c664b68 factor out handle_profile 2016-04-01 16:54:07 +11:00
Christopher Neugebauer
8b79670608 Fixes issue #8 2016-03-31 19:15:04 +11:00
Christopher Neugebauer
5e0c87c435 Deletes templates — moved to registrasion-demo repo 2016-03-31 19:15:03 +11:00
Christopher Neugebauer
2d5caa3299 Renames edit_profile to attendee_edit 2016-03-31 19:15:03 +11:00
Christopher Neugebauer
e0e0d4bf3b views.py renders from registrasion/ 2016-03-31 19:15:03 +11:00
Christopher Neugebauer
62d5c5b2bf Revert "Registrasion URLs now include django-nested-admin"
This reverts commit 58eed33c429c1035801e840b41aa7104c02b9b5a.
2016-03-31 19:14:43 +11:00
Christopher Neugebauer
9ec9e68ee6 Registrasion URLs now include django-nested-admin 2016-03-31 19:14:42 +11:00
Christopher Neugebauer
eebf9e81f5 Resolves #3 — start_time, end_time, and limit can now be blank. Tests already dealt with the null case. 2016-03-31 14:45:39 +11:00
Christopher Neugebauer
ba0682a5f9 Fleshes out the admin interface and adds help_text attributes to the model fields that need it 2016-03-31 14:38:48 +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
b65223aaa1 Adds model for released carts 2016-03-27 19:13:05 +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
7c99750f3a Simplifies creation of test data in test_cart, adds an extra product category and two new products 2016-03-27 13:12:33 +11:00
Christopher Neugebauer
db332da958 flake8 2016-03-27 13:12:33 +11:00
Christopher Neugebauer
3562772c13 Adds RadioBoxProductsForm 2016-03-27 13:12:33 +11:00
Christopher Neugebauer
0ae005a5f5 Factors _QuantityBoxForm out of _ProductsForm 2016-03-27 11:30:11 +11:00
Christopher Neugebauer
834233cd72 Factors ProductsForm handling into its own function 2016-03-27 11:30:11 +11:00
Christopher Neugebauer
464684f13e Refactors the product_category view to be much simpler 2016-03-26 20:21:54 +11:00
Christopher Neugebauer
b13e6f7ce2 Factors out voucher form handling into its own function 2016-03-26 20:01:46 +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
36ecf7fd54 Adds more tags for the dashboard. 2016-03-26 15:14:28 +11:00
Christopher Neugebauer
941b057865 Shows the available discounts on the registration form 2016-03-26 14:03:25 +11:00
Christopher Neugebauer
fc279b1922 Replaces CategoryForm with ProductsForm (makes the form slightly dumber) 2016-03-26 13:37:13 +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
8d66ed5715 Fix flake8 warnings 2016-03-25 14:51:39 +11:00
Christopher Neugebauer
c192fef491 Adds basic template tag for available categories. Currently does not check enabling conditions. 2016-03-25 14:16:30 +11:00
Christopher Neugebauer
478b328e41 Uses the completed_registration flag on the Attendee model 2016-03-25 12:50:59 +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
Christopher Neugebauer
83b11cd722 Fixes invoicing payment logic 2016-03-24 14:20:29 +11:00
Christopher Neugebauer
eff5686dcf Adds logic for required categories 2016-03-24 14:19:33 +11:00
Christopher Neugebauer
dcad2d5f7c Second pass at guided registration, including profile page 2016-03-24 13:43:06 +11:00
Christopher Neugebauer
05923a9a8f Profile form view now edits the relevant form 2016-03-24 12:58:23 +11:00
Christopher Neugebauer
236c61eefa Fleshes out badge model, and adds first pass at display of the badge form 2016-03-24 12:44:59 +11:00
Christopher Neugebauer
eb530bd485 Adds the first pass at a “guided” registration form 2016-03-23 19:39:07 +11:00
Christopher Neugebauer
d50d6bac48 Fixes voucher handling form to not be compulsory 2016-03-23 19:36:54 +11:00
Christopher Neugebauer
7086ea8729 Moves product disabling code into the form class 2016-03-23 19:36:22 +11:00
Christopher Neugebauer
e118a4e74c Adds dumb process for paying invoices. 2016-03-23 15:04:51 +11:00
Christopher Neugebauer
4dc150d734 Fills in quantity boxes from the quantities in the current cart, not overall 2016-03-23 15:04:51 +11:00
Christopher Neugebauer
2d6b28c5a6 Adds mechanism for entering a voucher code 2016-03-23 15:04:51 +11:00
Christopher Neugebauer
cc42490832 Applying a voucher to a cart now uses the voucher code rather than the voucher object. Adds tests for constraints on vouchers. 2016-03-23 15:04:51 +11:00
Christopher Neugebauer
745f6db444 Adds “CategoryForm” to forms.py. It’s about to replace the existing ProductItem form 2016-03-23 15:04:51 +11:00
Christopher Neugebauer
68e7e4e594 Checks enabling conditions before adding items to the list 2016-03-04 18:33:03 -08:00
Christopher Neugebauer
8400da17da Fixes error in EnablingConditionBase, adds admins for Product and Category enabling conditions 2016-03-04 18:33:03 -08:00
Christopher Neugebauer
0182a32f03 Fixes various errors in discount calculation, and adds tests for these 2016-03-04 18:32:52 -08:00
Christopher Neugebauer
99f4b8dfe0 Fixes validation error in models.py for adding discounts 2016-03-04 18:32:52 -08:00
Christopher Neugebauer
a4de15830c Adds checkout view, which generates an invoice, and then redirects to the invoice itself. 2016-03-04 18:32:52 -08:00
Christopher Neugebauer
1b7d8a60c1 Adds product_category form, which allows users to add products from a specific category to their cart. 2016-03-04 14:07:03 -08:00
Christopher Neugebauer
c51be4d30a Adds set_quantity as a method on CartController.
Refactors add_to_cart to be in terms of set_quantity
2016-03-04 14:07:02 -08:00
Christopher Neugebauer
c13a986f2d Updates migration 2016-01-22 22:07:59 +11:00
Christopher Neugebauer
2e89bc4887 Adds validation code to make sure that only one discount condition is applicable per product 2016-01-22 21:53:30 +11:00
Christopher Neugebauer
224878a10c Fixes flake8 errors 2016-01-22 17:21:29 +11:00
Christopher Neugebauer
c2400c4695 Moves the controller modules into their own subpackage. There's going to be a lot of stuff in there. 2016-01-22 16:29:41 +11:00
Christopher Neugebauer
d9e433659d Imports code from old Symposion repo 2016-01-22 16:19:11 +11:00