Alter guided_registrasion logic to handle new page
This is required for the new method of accepting terms and conditions
This commit is contained in:
parent
b8dcbd89b7
commit
362ed28be2
2 changed files with 29 additions and 9 deletions
6
vendor/registrasion/registrasion/forms.py
vendored
6
vendor/registrasion/registrasion/forms.py
vendored
|
@ -262,8 +262,12 @@ class _CheckboxProductsForm(_ProductsForm):
|
||||||
@classmethod
|
@classmethod
|
||||||
def set_fields(cls, category, products):
|
def set_fields(cls, category, products):
|
||||||
for product in products:
|
for product in products:
|
||||||
|
if product.price:
|
||||||
|
label='%s -- $%s' % (product.name, product.price)
|
||||||
|
else:
|
||||||
|
label='%s' % (product.name)
|
||||||
field = forms.BooleanField(
|
field = forms.BooleanField(
|
||||||
label='%s -- $%s' % (product.name, product.price),
|
label=label,
|
||||||
required=False,
|
required=False,
|
||||||
)
|
)
|
||||||
cls.base_fields[cls.field_name(product)] = field
|
cls.base_fields[cls.field_name(product)] = field
|
||||||
|
|
32
vendor/registrasion/registrasion/views.py
vendored
32
vendor/registrasion/registrasion/views.py
vendored
|
@ -1,6 +1,9 @@
|
||||||
import datetime
|
import datetime
|
||||||
import zipfile
|
import zipfile
|
||||||
import os
|
import os
|
||||||
|
import logging
|
||||||
|
|
||||||
|
from django.contrib import messages
|
||||||
|
|
||||||
from . import forms
|
from . import forms
|
||||||
from . import util
|
from . import util
|
||||||
|
@ -43,7 +46,6 @@ from registrasion.contrib.badger import (
|
||||||
InvalidTicketChoiceError
|
InvalidTicketChoiceError
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
_GuidedRegistrationSection = namedtuple(
|
_GuidedRegistrationSection = namedtuple(
|
||||||
"GuidedRegistrationSection",
|
"GuidedRegistrationSection",
|
||||||
(
|
(
|
||||||
|
@ -107,9 +109,10 @@ def guided_registration(request, page_number=None):
|
||||||
|
|
||||||
PAGE_PROFILE = 1
|
PAGE_PROFILE = 1
|
||||||
PAGE_TICKET = 2
|
PAGE_TICKET = 2
|
||||||
PAGE_PRODUCTS = 3
|
PAGE_TERMS = 3
|
||||||
PAGE_PRODUCTS_MAX = 4
|
PAGE_PRODUCTS = 4
|
||||||
TOTAL_PAGES = 4
|
PAGE_PRODUCTS_MAX = 5
|
||||||
|
TOTAL_PAGES = 5
|
||||||
|
|
||||||
ticket_category = inventory.Category.objects.get(
|
ticket_category = inventory.Category.objects.get(
|
||||||
id=settings.TICKET_PRODUCT_CATEGORY
|
id=settings.TICKET_PRODUCT_CATEGORY
|
||||||
|
@ -136,12 +139,18 @@ def guided_registration(request, page_number=None):
|
||||||
products = inventory.Product.objects.filter(
|
products = inventory.Product.objects.filter(
|
||||||
productitem__cart=cart.cart
|
productitem__cart=cart.cart
|
||||||
)
|
)
|
||||||
products = products.filter(category=ticket_category)
|
tickets = products.filter(category=ticket_category)
|
||||||
|
|
||||||
if products.count() == 0:
|
logger.debug("tickets count %s" % tickets.count())
|
||||||
|
logger.debug("products: %s" % products.count())
|
||||||
|
if tickets.count() == 0:
|
||||||
# If no ticket, they can only see the profile or ticket page.
|
# If no ticket, they can only see the profile or ticket page.
|
||||||
max_page = PAGE_TICKET
|
max_page = PAGE_TICKET
|
||||||
redirect_page = PAGE_TICKET
|
redirect_page = PAGE_TICKET
|
||||||
|
elif products.count() == 1:
|
||||||
|
# They have a ticket, now to accept terms and conditions
|
||||||
|
max_page = PAGE_TERMS
|
||||||
|
redirect_page = PAGE_TERMS
|
||||||
else:
|
else:
|
||||||
# If there's a ticket, they should *see* the general products page#
|
# If there's a ticket, they should *see* the general products page#
|
||||||
# but be able to go to the overflow page if needs be.
|
# but be able to go to the overflow page if needs be.
|
||||||
|
@ -180,6 +189,12 @@ def guided_registration(request, page_number=None):
|
||||||
sections = _guided_registration_products(
|
sections = _guided_registration_products(
|
||||||
request, GUIDED_MODE_TICKETS_ONLY
|
request, GUIDED_MODE_TICKETS_ONLY
|
||||||
)
|
)
|
||||||
|
elif page_number == PAGE_TERMS:
|
||||||
|
# Accept terms
|
||||||
|
title = "Terms and Conditions"
|
||||||
|
sections = _guided_registration_products(
|
||||||
|
request, GUIDED_MODE_TERMS
|
||||||
|
)
|
||||||
elif page_number == PAGE_PRODUCTS:
|
elif page_number == PAGE_PRODUCTS:
|
||||||
# Select additional items
|
# Select additional items
|
||||||
title = "Additional items"
|
title = "Additional items"
|
||||||
|
@ -219,8 +234,9 @@ def guided_registration(request, page_number=None):
|
||||||
|
|
||||||
|
|
||||||
GUIDED_MODE_TICKETS_ONLY = 2
|
GUIDED_MODE_TICKETS_ONLY = 2
|
||||||
GUIDED_MODE_ALL_ADDITIONAL = 3
|
GUIDED_MODE_TERMS = 3
|
||||||
GUIDED_MODE_EXCLUDE_COMPLETE = 4
|
GUIDED_MODE_ALL_ADDITIONAL = 4
|
||||||
|
GUIDED_MODE_EXCLUDE_COMPLETE =5
|
||||||
|
|
||||||
|
|
||||||
@login_required
|
@login_required
|
||||||
|
|
Loading…
Reference in a new issue