Christopher Neugebauer
|
e7556b02b7
|
Fixes a minor oops
|
2016-09-02 16:14:58 +10:00 |
|
Christopher Neugebauer
|
5b03ae8ff6
|
Fixes credit note bug
|
2016-09-02 16:03:29 +10:00 |
|
Christopher Neugebauer
|
964fe380da
|
Attendee manifest page now reports the items a user has pending and purchased.
|
2016-09-02 15:57:44 +10:00 |
|
Christopher Neugebauer
|
68aa9b067b
|
Factors items_pending and items_purchased into ItemController
|
2016-09-02 15:57:20 +10:00 |
|
Christopher Neugebauer
|
17fc874212
|
Attendee manifest now displays credit notes.
|
2016-09-02 15:43:01 +10:00 |
|
Christopher Neugebauer
|
d58b2811f9
|
Makes the attendee list work better.
|
2016-09-02 15:37:57 +10:00 |
|
Christopher Neugebauer
|
e27e322c41
|
Adds the attendee list and stubs the attendee manifest reports
|
2016-09-02 15:15:15 +10:00 |
|
Christopher Neugebauer
|
48a036204d
|
Reporting framework can now display multiple sections.
|
2016-09-02 15:14:54 +10:00 |
|
Christopher Neugebauer
|
25608b1653
|
Moves reports forms into reporting sub package
|
2016-09-02 14:33:23 +10:00 |
|
Christopher Neugebauer
|
64ca477cb8
|
Fixes flake8 snafus
|
2016-09-02 11:43:27 +10:00 |
|
Christopher Neugebauer
|
aacdab7d16
|
The reporting module now passes flake8
|
2016-09-02 11:25:50 +10:00 |
|
Christopher Neugebauer
|
4664c4711a
|
Moves staff_views to reporting/views
|
2016-09-02 11:20:03 +10:00 |
|
Christopher Neugebauer
|
f9e26a2e49
|
Adds the link_view concept to reports; adds a link_view to credit notes report
|
2016-09-02 11:05:38 +10:00 |
|
Christopher Neugebauer
|
372512c6af
|
Adds report to view credit notes.
|
2016-09-02 10:40:28 +10:00 |
|
Christopher Neugebauer
|
499c4209cf
|
Makes form_type *properly* optional
|
2016-09-02 10:30:12 +10:00 |
|
Christopher Neugebauer
|
f1c8e90b77
|
Makes the form type optional for reports
|
2016-09-02 10:28:24 +10:00 |
|
Christopher Neugebauer
|
960de87343
|
oops
|
2016-09-02 10:10:21 +10:00 |
|
Christopher Neugebauer
|
86d1ab7160
|
Refactors core reporting bits into a reporting package
|
2016-09-02 10:08:11 +10:00 |
|
Christopher Neugebauer
|
fb022bbc7b
|
Adds a view that shows all reports
|
2016-09-02 09:55:29 +10:00 |
|
Christopher Neugebauer
|
1e066952e9
|
Reports now need staff credentials to load.
|
2016-09-02 09:31:12 +10:00 |
|
Christopher Neugebauer
|
66226663d5
|
Makes the inventory report even clearer.
|
2016-08-26 15:53:33 +10:00 |
|
Christopher Neugebauer
|
32b887fed3
|
Makes the reporting framework a bit more DRY.
|
2016-08-26 15:11:08 +10:00 |
|
Christopher Neugebauer
|
3607fb19b8
|
Adds inventory report
|
2016-08-26 14:59:54 +10:00 |
|
Christopher Neugebauer
|
2a850c49bc
|
Fixes some documentation snafus
|
2016-08-26 14:17:53 +10:00 |
|
Christopher Neugebauer
|
5c41a3576c
|
re-structures the URLs a bit, puts the items sold report under reports/items_sold
|
2016-08-26 13:53:40 +10:00 |
|
Christopher Neugebauer
|
db8f428ee1
|
Makes the sales report keep a total.
|
2016-08-26 13:40:49 +10:00 |
|
Christopher Neugebauer
|
b7650ca772
|
Reports now display titles
|
2016-08-25 21:10:14 +10:00 |
|
Christopher Neugebauer
|
a320f822fc
|
Report for total items sold.
|
2016-08-25 21:05:02 +10:00 |
|
Christopher Neugebauer
|
d131b547f6
|
Delete errant prints
|
2016-08-25 21:01:32 +10:00 |
|
Christopher Neugebauer
|
00476498a8
|
Very first attempt at a staff-facing report (items sold)
|
2016-08-25 20:33:19 +10:00 |
|
Christopher Neugebauer
|
3225a353e0
|
Migrates to the less-deprecated URL syntax
|
2016-08-25 19:51:36 +10:00 |
|
Christopher Neugebauer
|
0b7396c40f
|
Discount line items now describe the product that the discount applies to.
|
2016-08-24 11:46:15 +10:00 |
|
Christopher Neugebauer
|
482fe22d89
|
Better reporting of errors in long-and-thin categories
|
2016-08-22 15:03:08 +10:00 |
|
Christopher Neugebauer
|
d52fc6eb9d
|
Adds a formset for dealing with long-and-thin product categories.
|
2016-08-22 15:00:45 +10:00 |
|
Christopher Neugebauer
|
02e415c104
|
Adds an implementation for item-quantity forms.
|
2016-08-22 15:00:38 +10:00 |
|
Christopher Neugebauer
|
d9f9af9827
|
Modifies the Category model to allow for ITEM_QUANTITY forms
|
2016-08-22 15:00:38 +10:00 |
|
Christopher Neugebauer
|
c4274817a8
|
Moves ProductsForm to the top of its file
|
2016-08-22 10:15:01 +10:00 |
|
Christopher Neugebauer
|
8c34c7498a
|
Factors _ProductsForm into _HasProductsFields
|
2016-08-22 10:13:02 +10:00 |
|
Christopher Neugebauer
|
4f16e4b9d0
|
Oops.
|
2016-08-21 18:28:16 +10:00 |
|
Christopher Neugebauer
|
7bf372f92a
|
Invoices now send e-mails when created, paid, or refunded.
|
2016-08-21 17:14:19 +10:00 |
|
Christopher Neugebauer
|
924906d38c
|
Adds test for e-mails being sent when invoices are generated.
|
2016-08-21 16:56:15 +10:00 |
|
Christopher Neugebauer
|
e946af0f04
|
Adds functions for mailing invoices when certain events occur.
|
2016-08-21 16:56:05 +10:00 |
|
Christopher Neugebauer
|
155f6d42d9
|
Renames patch_datetime to patches, adds e-mail patching bits
|
2016-08-21 16:39:57 +10:00 |
|
Christopher Neugebauer
|
1faa608425
|
Adds email framework shamelessly stolen from Symposion
|
2016-08-21 15:40:05 +10:00 |
|
Christopher Neugebauer
|
de83015776
|
Fixes ordering error in error display
|
2016-05-02 10:55:29 +10:00 |
|
Christopher Neugebauer
|
abe8c12b05
|
Simplifies flag and discount filter functions
|
2016-05-01 19:12:40 +10:00 |
|
Christopher Neugebauer
|
b9b50c6846
|
Bug fixes and query optimisations in flag.py and discount.py
|
2016-05-01 14:56:51 +10:00 |
|
Christopher Neugebauer
|
9ca25e5986
|
Makes sure that the cache is not disturbed by calling end_batch
|
2016-05-01 14:56:51 +10:00 |
|
Christopher Neugebauer
|
3ab5ac32ca
|
Part of CartController->BatchController memoisation
|
2016-05-01 14:56:51 +10:00 |
|
Christopher Neugebauer
|
efb73e7a68
|
Memoises everything else that needs to be memoised.
|
2016-05-01 14:56:51 +10:00 |
|
Christopher Neugebauer
|
3d635521eb
|
CartController now uses BatchController memoisation
|
2016-05-01 14:56:51 +10:00 |
|
Christopher Neugebauer
|
3717adb262
|
Squash this and last two
|
2016-05-01 14:56:46 +10:00 |
|
Christopher Neugebauer
|
ad2de6e9d4
|
Breaks cart batching tests into multiple tests
|
2016-05-01 14:56:46 +10:00 |
|
Christopher Neugebauer
|
94ceaa3bb1
|
Adds test case for CartController batching
|
2016-05-01 14:56:46 +10:00 |
|
Christopher Neugebauer
|
5929c0af3c
|
Adds end_batch functionality
|
2016-05-01 14:56:45 +10:00 |
|
Christopher Neugebauer
|
3db1256895
|
Adds test for end_batch functionality
|
2016-05-01 14:56:45 +10:00 |
|
Christopher Neugebauer
|
a267b60eb9
|
Makes memoise work properly
|
2016-05-01 14:56:45 +10:00 |
|
Christopher Neugebauer
|
27ab44ec44
|
test cases for memoisation
|
2016-05-01 10:47:15 +10:00 |
|
Christopher Neugebauer
|
ddedf54c42
|
Adds batch context manager behaviour
|
2016-05-01 10:47:06 +10:00 |
|
Christopher Neugebauer
|
eb29e7cd09
|
Adds test cases for basic batch cacheing behaviour
|
2016-05-01 10:47:06 +10:00 |
|
Christopher Neugebauer
|
78a41970ea
|
Adds design for BatchController
|
2016-05-01 10:47:06 +10:00 |
|
Christopher Neugebauer
|
162a1f23dd
|
_filtered_discounts is now called _filtered_clauses, and it no longer cares about specific products or categories
|
2016-05-01 09:43:32 +10:00 |
|
Christopher Neugebauer
|
b3491cab8e
|
_filtered_flags now no longer cares about products for filtering. It just does everything.
|
2016-04-30 20:42:41 +10:00 |
|
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
|
fd5cf50fab
|
Makes items_purchased do more database work
|
2016-04-29 11:09:36 +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
|
3b5b958b78
|
Makes the discounts section from _handle_products evaluate lazily, just in case it’s never displayed in a template (those are some very very expensive queries there).
|
2016-04-29 11:09:08 +10:00 |
|
Christopher Neugebauer
|
76e6206d09
|
Wraps the guided registration handler in views.py in a batch marker
|
2016-04-29 11:08:45 +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
|
05269c93cd
|
Marks 0.2.0-dev
|
2016-04-27 11:36:31 +10:00 |
|
Christopher Neugebauer
|
b32c7780c6
|
Marks 0.1.0 release
|
2016-04-26 14:51:12 +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
|
7ccfaed304
|
Removes line that forces segfault avoidance
|
2016-04-25 18:50:09 +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
|
f755b13091
|
Removes EnablingConditionBase, replaces it with FlagBase; adds first tranche of migrations
|
2016-04-25 18:32:11 +10:00 |
|
Christopher Neugebauer
|
f376bba7fd
|
Removes all migrations
|
2016-04-25 18:30:31 +10:00 |
|
Christopher Neugebauer
|
4cdbdb71ce
|
flake8 fixes
|
2016-04-25 17:37:33 +10:00 |
|
Christopher Neugebauer
|
a2fa1d6548
|
Fixes a bunch of variable errors, and adds user_passes_test
|
2016-04-25 17:33:16 +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
|
e2687cfa6f
|
Stops testing using ManualPayment, and just uses PaymentBase instead
|
2016-04-25 16:45:42 +10:00 |
|
Christopher Neugebauer
|
2afa6a8d79
|
Adds “NO SELECTION” to radio buttons form.
Closes #32.
|
2016-04-25 16:16:41 +10:00 |
|
Christopher Neugebauer
|
00f87e30b7
|
Adds an upper limit on quantity boxes (it’s set to 500 for the moment though).
Closes #19.
|
2016-04-25 16:16:22 +10:00 |
|
Christopher Neugebauer
|
42912519f1
|
Adds entered_by to manual payments. Closes #22.
|
2016-04-25 16:06:29 +10:00 |
|
Christopher Neugebauer
|
bf053242de
|
Closes #25 — changes what invoice_access will redirect to
|
2016-04-25 16:00:33 +10:00 |
|
Christopher Neugebauer
|
397ba207bb
|
Adds utility to defeat segfaults in tests. Hopefully you won’t need it.
|
2016-04-25 15:36:55 +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
|
9d25725514
|
Documents the template tags
|
2016-04-25 13:15:06 +10:00 |
|
Christopher Neugebauer
|
1b9f76823f
|
Etc
|
2016-04-25 12:59:43 +10:00 |
|
Christopher Neugebauer
|
4373b7260d
|
Finishes the public views documentation
|
2016-04-25 12:53:01 +10:00 |
|
Christopher Neugebauer
|
2d8602a6da
|
views documentation
|
2016-04-25 11:14:17 +10:00 |
|
Christopher Neugebauer
|
eefec32cb0
|
Makes private helper functions private
|
2016-04-25 10:19:20 +10:00 |
|
Christopher Neugebauer
|
9c289acadd
|
Starts documenting the public views.
|
2016-04-25 10:15:13 +10:00 |
|
Christopher Neugebauer
|
32ffa25895
|
Adds util.all_arguments_optional
|
2016-04-25 09:57:36 +10:00 |
|
Christopher Neugebauer
|
b0d1f69f1a
|
Writes the integration guide
|
2016-04-25 09:49:19 +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
|
9a4574ef2c
|
DRYs up test_invoice a bit
|
2016-04-25 08:25:19 +10:00 |
|
Christopher Neugebauer
|
9f72b67510
|
Uses for_id_or_404 in views.py
|
2016-04-25 07:20:41 +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
|
3b3744578e
|
First pass at the payments documentation.
|
2016-04-24 21:42:20 +10:00 |
|
Christopher Neugebauer
|
e9ebf5da03
|
Writes inventory and overview documentation, and updates docstrings on a LOT of modules.
|
2016-04-22 16:08:18 +10:00 |
|
Christopher Neugebauer
|
875f736d67
|
Consolidates models.py into a directory module.
|
2016-04-22 15:06:24 +10:00 |
|
Christopher Neugebauer
|
ffa1ca6783
|
Fixes flags admin
|
2016-04-12 11:43:38 +10:00 |
|
Christopher Neugebauer
|
87e6fa064a
|
Merge branch 'master' into admin_models_cleanup
|
2016-04-12 11:39:54 +10:00 |
|
Christopher Neugebauer
|
d3f7431f7d
|
Squashes migrations from rename_to_flags branch; marks as normal migration
|
2016-04-12 08:47:17 +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
|
61dbe60cfa
|
Renames the admin-visible names for many model classes, and adds a default ordering where they’re useful too.
|
2016-04-11 19:23:38 +10:00 |
|
Christopher Neugebauer
|
c4c8a7ab82
|
Tidies up the admin interface for flags
|
2016-04-11 18:12:37 +10:00 |
|
Christopher Neugebauer
|
e88a287fef
|
renames test_enabling_condition to test_flag
|
2016-04-11 17:59:20 +10:00 |
|
Christopher Neugebauer
|
7b476fd5cb
|
s/enabling_condition/flag
|
2016-04-11 17:56:11 +10:00 |
|
Christopher Neugebauer
|
4fedc73304
|
Renames EnablingCondition to Flag where possible
|
2016-04-11 17:55:00 +10:00 |
|
Christopher Neugebauer
|
7e8d044a9f
|
Adds the ability to apply or refund a credit note.
|
2016-04-11 13:11:57 +10:00 |
|
Christopher Neugebauer
|
680ce689f6
|
Adds initial credit note display view
|
2016-04-11 13:11:57 +10:00 |
|
Christopher Neugebauer
|
2c94e7538a
|
Adds available_credit tag, and adds a view for refunding an invoice to generate a credit note.
|
2016-04-11 13:11:56 +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
|
97438624e1
|
Makes the guided registration stay on the front page if an incorrect voucher is added but a valid profile is filled out. Resolves #9
|
2016-04-08 19:43:34 +10:00 |
|
Christopher Neugebauer
|
01b9adbaf4
|
Re-writes the guided registration to individually track completed categories, and keep the form page the same until every category is finished. Resolves #14
|
2016-04-08 19:43:34 +10:00 |
|
Christopher Neugebauer
|
ea1d6f52e6
|
Adds payment access codes.
|
2016-04-08 13:20:35 +10:00 |
|
Christopher Neugebauer
|
3dab78ab25
|
Adds the access_code field to Attendee model
|
2016-04-08 13:20:35 +10:00 |
|
Christopher Neugebauer
|
94a42c100b
|
Adds manual payment functionality
|
2016-04-07 19:19:19 +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
|
5633554854
|
Tests now use TestingInvoiceController
|
2016-04-07 17:16:21 +10:00 |
|
Christopher Neugebauer
|
ac10ea4ee8
|
s/cart_controller_helper/controller_helpers/
|
2016-04-07 17:16:04 +10:00 |
|
Christopher Neugebauer
|
8e95bb7469
|
flake8 fixes
|
2016-04-07 13:26:25 +10:00 |
|
Christopher Neugebauer
|
0b7ccfc827
|
Enforces minimum quantity of 0 for quantity boxes
|
2016-04-06 22:59:00 +10:00 |
|
Christopher Neugebauer
|
dba3773636
|
Adds db indices
|
2016-04-06 22:59:00 +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
|
2f77f5bb23
|
Replaces .active = False; .save() pattern in tests with a test controller method
|
2016-04-06 17:24:25 +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
|
812cc0b9c8
|
Resolves #6 — Help text for items without a description is much much nicer
|
2016-04-06 16:45:54 +10:00 |
|
Christopher Neugebauer
|
4021aa3c8e
|
Resolves #12 — each item category shows what items you have already purchased in each category
|
2016-04-06 16:33:04 +10:00 |
|