Finishes the public views documentation

This commit is contained in:
Christopher Neugebauer 2016-04-25 12:53:01 +10:00
parent 2d8602a6da
commit 4373b7260d
2 changed files with 72 additions and 6 deletions

View file

@ -1,5 +1,7 @@
Public-facing views Public-facing views
=================== ===================
Here's all of the views that Registrasion exposes to the public.
.. automodule:: registrasion.views .. automodule:: registrasion.views
:members: :members:

View file

@ -619,7 +619,28 @@ def invoice(request, invoice_id, access_code=None):
@login_required @login_required
def manual_payment(request, invoice_id): def manual_payment(request, invoice_id):
''' Allows staff to make manual payments or refunds on an invoice.''' ''' Allows staff to make manual payments or refunds on an invoice.
This form requires a login, and the logged in user needs to be staff.
Arguments:
invoice_id (castable to int): The invoice ID to be paid
Returns:
render:
Renders ``registrasion/manual_payment.html`` with the following
data::
{
"invoice": models.commerce.Invoice(),
"form": form, # A form that saves a ``ManualPayment``
# object.
}
Raises:
Http404: if the logged in user is not staff.
'''
FORM_PREFIX = "manual_payment" FORM_PREFIX = "manual_payment"
@ -649,8 +670,22 @@ def manual_payment(request, invoice_id):
@login_required @login_required
def refund(request, invoice_id): def refund(request, invoice_id):
''' Allows staff to refund payments against an invoice and request a ''' Marks an invoice as refunded and requests a credit note for the
credit note.''' full amount paid against the invoice.
This view requires a login, and the logged in user must be staff.
Arguments:
invoice_id (castable to int): The ID of the invoice to refund.
Returns:
redirect:
Redirects to ``invoice``.
Raises:
Http404: if the logged in user is not staff.
'''
if not request.user.is_staff: if not request.user.is_staff:
raise Http404() raise Http404()
@ -666,9 +701,36 @@ def refund(request, invoice_id):
return redirect("invoice", invoice_id) return redirect("invoice", invoice_id)
@login_required
def credit_note(request, note_id, access_code=None): def credit_note(request, note_id, access_code=None):
''' Displays an credit note for a given id. ''' Displays a credit note.
This view can only be seen by staff.
If ``request`` is a ``POST`` request, forms for applying or refunding
a credit note will be processed.
This view requires a login, and the logged in user must be staff.
Arguments:
note_id (castable to int): The ID of the credit note to view.
Returns:
render or redirect:
If the "apply to invoice" form is correctly processed, redirect to
that invoice, otherwise, render ``registration/credit_note.html``
with the following data::
{
"credit_note": models.commerce.CreditNote(),
"apply_form": form, # A form for applying credit note
# to an invoice.
"refund_form": form, # A form for applying a *manual*
# refund of the credit note.
}
Raises:
Http404: If the logged in user is not staff.
''' '''
if not request.user.is_staff: if not request.user.is_staff:
@ -705,7 +767,9 @@ def credit_note(request, note_id, access_code=None):
request, request,
"Applied manual refund to credit note." "Applied manual refund to credit note."
) )
return redirect("invoice", invoice.id) refund_form = forms.ManualCreditNoteRefundForm(
prefix="refund_note",
)
data = { data = {
"credit_note": current_note.credit_note, "credit_note": current_note.credit_note,