Adds the amend_registration view, which currently can display all of the products that the user has added to their current cart, and not much else.

This commit is contained in:
Christopher Neugebauer 2016-09-03 14:22:32 +10:00
parent c64d0eaab8
commit 897915f121
3 changed files with 45 additions and 0 deletions

View file

@ -347,3 +347,18 @@ class VoucherForm(forms.Form):
help_text="If you have a voucher code, enter it here", help_text="If you have a voucher code, enter it here",
required=False, required=False,
) )
class StaffProductsForm(forms.Form):
''' Form for allowing staff to add an item to a user's cart. '''
product = forms.ModelChoiceField(
widget=forms.Select,
queryset=inventory.Product.objects.all(),
)
quantity = forms.IntegerField(
min_value=0,
)
StaffProductsFormSet = forms.formset_factory(StaffProductsForm)

View file

@ -13,10 +13,12 @@ from .views import (
invoice_access, invoice_access,
edit_profile, edit_profile,
guided_registration, guided_registration,
amend_registration,
) )
public = [ public = [
url(r"^amend/([0-9]+)$", amend_registration, name="amend_registration"),
url(r"^category/([0-9]+)$", product_category, name="product_category"), url(r"^category/([0-9]+)$", product_category, name="product_category"),
url(r"^checkout$", checkout, name="checkout"), url(r"^checkout$", checkout, name="checkout"),
url(r"^credit_note/([0-9]+)$", credit_note, name="credit_note"), url(r"^credit_note/([0-9]+)$", credit_note, name="credit_note"),

View file

@ -18,6 +18,7 @@ from collections import namedtuple
from django.conf import settings from django.conf import settings
from django.contrib.auth.decorators import login_required from django.contrib.auth.decorators import login_required
from django.contrib.auth.decorators import user_passes_test from django.contrib.auth.decorators import user_passes_test
from django.contrib.auth.models import User
from django.contrib import messages from django.contrib import messages
from django.core.exceptions import ObjectDoesNotExist from django.core.exceptions import ObjectDoesNotExist
from django.core.exceptions import ValidationError from django.core.exceptions import ValidationError
@ -790,3 +791,30 @@ def credit_note(request, note_id, access_code=None):
} }
return render(request, "registrasion/credit_note.html", data) return render(request, "registrasion/credit_note.html", data)
@user_passes_test(_staff_only)
def amend_registration(request, user_id):
''' Allows staff to amend a user's current registration cart, and etc etc.
'''
user = User.objects.get(id=int(user_id))
current_cart = CartController.for_user(user)
items = commerce.ProductItem.objects.filter(
cart=current_cart.cart,
).select_related("product")
initial = [{"product": i.product, "quantity": i.quantity} for i in items]
form = forms.StaffProductsFormSet(
request.POST or None,
initial=initial,
prefix="products",
)
data = {
"form": form,
}
return render(request, "registrasion/amend_registration.html", data)