@@ -58,13 +58,13 @@ class Command(BaseCommand):
self.ticket = self.find_or_make(
inv.Category,
("name",),
name="Ticket",
description="Each type of ticket has different included products. "
"For details of what products are included, see our "
"<a href='https://linux.conf.au/attend/tickets/'>registration page</a>",
"<a href='https://linux.conf.au/attend/tickets/'>registration page</a>.",
required=True,
render_type=inv.Category.RENDER_TYPE_RADIO,
limit_per_user=1,
order=1,
)
self.terms = self.find_or_make(
@@ -98,19 +98,16 @@ class Command(BaseCommand):
self.speakers_dinner_ticket = self.find_or_make(
name="Speakers' Dinner Ticket",
description="Tickets to our exclusive Speakers' Dinner on the "
"evening of "
f"{settings.SPEAKER_DINNER_TICKET_DATE: %A %d %B}. "
"You may purchase up "
"to 5 tickets in total, for significant others and "
"family members.",
f"{settings.SPEAKER_DINNER_TICKET_DATE: %A %d %B}.",
required=False,
render_type=inv.Category.RENDER_TYPE_QUANTITY,
limit_per_user=5,
order=30,
self.pdns_category = self.find_or_make(
name="Professional Delegates Networking Session Ticket",
@@ -126,14 +123,16 @@ class Command(BaseCommand):
order=40,
self.t_shirt = self.find_or_make(
name="Shirt",
description="Commemorative conference polo shirts, featuring the "
f"linux.conf.au {settings.LCA_START.year} artwork.",
description="Commemorative conference shirts, featuring the "
f"linux.conf.au {settings.LCA_START.year} artwork. "
"View the <a href=\"https://linux.conf.au/attend/shirts\">"
"sizing guide</a>.",
render_type=inv.Category.RENDER_TYPE_ITEM_QUANTITY,
order=50,
# self.accommodation = self.find_or_make(
# inv.Category,
@@ -352,19 +351,23 @@ class Command(BaseCommand):
order=10,
# Shirts
ShirtGroup = namedtuple("ShirtGroup", ("prefix", "sizes"))
shirt_names = {
"mens": ShirtGroup(
"Men's/Straight Cut",
("S", "M", "L", "XL", "2XL", "3XL", "4XL"),
"straight": ShirtGroup(
"Straight Cut",
("S", "M", "L", "XL", "2XL", "3XL", "4XL", "5XL"),
),
"semi_fitted": ShirtGroup(
"Semi-Fitted",
("XS", "S", "M", "L", "XL", "2XL"),
"womens": ShirtGroup(
"Women's Classic Fit",
("8", "10", "12", "14", "16", "18"),
"fitted": ShirtGroup(
"Fitted",
}
self.shirts = {}
order = 0
for name, group in shirt_names.items():
@@ -460,13 +463,13 @@ class Command(BaseCommand):
self.ticket_sponsor,
])
volunteer_ticket_cap = self.find_or_make(
cond.TimeOrStockLimitFlag,
("description", ),
description="Reserrved for volunteers and organizers",
description="Reserved for volunteers and organisers",
condition=cond.FlagBase.DISABLE_IF_FALSE,
limit=62,
volunteer_ticket_cap.products.set([
self.ticket_team,
self.ticket_volunteer,
@@ -560,20 +563,20 @@ class Command(BaseCommand):
is_presenter=True,
is_copresenter=False,
speaker_tickets.proposal_kind.set(self.main_conference_proposals)
speaker_tickets.products.set([self.ticket_speaker, ])
# Speaker dinner tickets are for primary and secondary speakers
# Speaker dinner tickets are for primary speakers only
speaker_dinner_tickets = self.find_or_make(
cond.SpeakerFlag,
description="Speaker dinner tickets",
condition=cond.FlagBase.ENABLE_IF_TRUE,
is_copresenter=True,
speaker_dinner_tickets.proposal_kind.set(self.main_conference_proposals)
speaker_dinner_tickets.categories.set([self.speakers_dinner_ticket, ])
# PDNS tickets are complicated.
# They can be enabled by tickets
@@ -764,13 +767,13 @@ class Command(BaseCommand):
free_category(ticket_student_inclusions, self.t_shirt)
# Team ticket inclusions
ticket_staff_inclusions = self.find_or_make(
cond.IncludedProductDiscount,
description="Complimentary for ticket holder staff)",
description="Complimentary for ticket holder (Staff)",
ticket_staff_inclusions.enabling_products.set([
free_category(ticket_staff_inclusions, self.penguin_dinner)