Age | Commit message (Collapse) | Author |
|
This will work differently for conferences and non-conferences once we
add proper timezone support, so abstract it out into a separate couple
of functions. For now they both return the same thing, but this will
change in a later commit.
In passing, fix missing datetime.now() -> timezone.now() conversions.
|
|
|
|
Out of settings.py and into the database, and while at it make it
possible to select which invoice methods can be used for membership
invoices.
|
|
Sibling imports should be prefixed with a period. Good idea in py2, will
eventually become required in py3, so another small step.
|
|
Basically reverse the flow - instead of having the invoice system
refund an invoice and trigger an action in the attached systems (such
as confreg or membership) to remove something, have the actual end
systems like confreg handle the cancelation and just tell the invoice
system what the refund is.
This makes the system a lot more flexible and makes it possible to
handle things like multi-attendee invoices that get partially refunded
more than once.
Other than the order-reversal:
1. Each invoice can now have multiple refund notes. In doing this, the
view of "refunded invoices" has also been retired, as it makes less
sense now.
2. Refund notices now include a "previously refunded" section if they
are anything except the first refund note, to track across multiple
refunds. This creates a breaking change in the API for PDF
generation, but recent other updates to the skinning broke them all
anyway.
3. For confreg, implement "refund patterns". This is a set of rules
with "refund x% minus fees of y" rules that can be applied when
canceling a registration. They are applied to the individual costs
being refunded. They can also be given a start/end date during
which they should be used, which is used as a hint in the UI.
|
|
|
|
|
|
Many of these were masked with the using of tabs, but were basically
incorrect all the time. It's all in places where whitespace doesn't
actually matter, but let's try to match up to PEP8.
|
|
In an effort to close up with PEP8, we should use spaces for indent
rather than tabs... Time to update your editor config!
|
|
When there is no way to automatically remove something because of a
refund, don't block the refund completely. Instead allow it to go
through and leave it up to the operator to manually verify.
|
|
Move the number of years and the cost per renewal to the settings file,
allowing others to change these values as they see fit.
(Minor fixes for non-python-style code by Mangus)
|
|
Instead, as of now we run all content over https always. The enforcment of this is
placed in the webserver, which makes it impossible to miss it on some feature.
This retires the setting SITEBASE_SSL, and changes SITEBASE to be https.
It also retires DISABLE_HTTPS_REDIRECTS, which has no use anymore.
And finally, SESSION_COOKIE_SECURE is now set by default, and needs to be turned
off in local development environments.
|
|
This will for example remove a conference registration automatically,
but most importantly it let's us keep track of our actual invoice
payments properly.
|
|
When cancelling a confreg or memebership invoice, we need to actually
unlink it from the system that generated it, and not just flag the invoice
itself as deleted.
Also generate an email for cancelled invoices, so the person who originally
got it knows it doesn't need to be paid anymore.
|
|
We'll send a notification email 30, 20 and 10 days before expiry,
and a final message when it actually expires.
|
|
Now uses a decorator instead of manual checks inside each view.
Also add SSL decorators to the new invoice and paypal code to make sure
it's served over SSL.
Finally, define two new settings for SITEBASE and SITEBASE_SSL to override
the website names in a local sandbox install. Makes it possible to for example
test the full paypal workflow, since we need to be able to pass an actual
working URL to paypal in that case.
|
|
|