@@ -4,13 +4,13 @@ import sys
import django
import dj_database_url
import saml2
import saml2.saml
from datetime import date, datetime
from datetime import date, datetime, timedelta
from dataclasses import dataclass
PROJECT_ROOT = os.path.abspath(os.path.join(os.path.dirname(__file__), os.pardir))
PACKAGE_ROOT = os.path.abspath(os.path.dirname(__file__))
DJANGO_ROOT = os.path.abspath(os.path.dirname(django.__file__))
@@ -441,35 +441,65 @@ SETTINGS_EXPORT = [
]
if DEV_MODE and DEV_MODE == "LAPTOP":
print("ENABLING LAPTOP MODE")
from .devmode_settings import *
# Ticket information
class Category(object):
tickets = []
@classmethod
def order(cls, ticket) -> int:
return (cls.tickets.index(ticket) + 1) * 10
@dataclass(frozen=True)
class Ticket:
name: str
regular_price: Decimal
earlybird_price: Decimal
def earlybird_discount(self):
return self.regular_price - self.earlybird_price
class PenguinDinnerTicket:
class DinnerTicket:
price: Decimal
description: str
reservation: timedelta
cat: Category
def order(self):
return self.cat.order(self)
class SpeakersDinnerTicket:
class PenguinDinnerTicket(DinnerTicket):
pass
class SpeakersDinnerTicket(DinnerTicket):
class SpeakersDinnerCat(Category):
def create(cls, name: str, price: Decimal, description: str, reservation: timedelta) -> SpeakersDinnerTicket:
t = SpeakersDinnerTicket(name, price, description, reservation, cls)
cls.tickets.append(t)
return t
class PenguinDinnerCat(Category):
def create(cls, name: str, price: Decimal, description: str, reservation: timedelta) -> PenguinDinnerTicket:
t = PenguinDinnerTicket(name, price, description, reservation, cls)
LCA_START = datetime(2020, 1, 13)
LCA_END = datetime(2020, 1, 17)
EARLY_BIRD_DEADLINE = datetime(2019, 11, 1)
PENGUIN_DINNER_TICKET_DATE = date(2020, 1, 15)
@@ -499,14 +529,25 @@ PENGUIN_DINNER_ADULT = PenguinDinnerTicket("Adult", Decimal("95.00"),
PENGUIN_DINNER_CHILD = PenguinDinnerTicket("Child", Decimal("50.00"),
"Children 14 and under. "
"Includes a child's meal and soft drink service.")
PENGUIN_DINNER_INFANT = PenguinDinnerTicket("Infant", Decimal("0.0"),
"Includes no food or beverage service.")
SPEAKERS_DINNER_ADULT = SpeakersDinnerTicket("Adult", Decimal("100.00"),
"Includes an adult's meal and full beverage service.")
SPEAKERS_DINNER_CHILD = SpeakersDinnerTicket("Child", Decimal("60.00"),
SPEAKERS_DINNER_INFANT = SpeakersDinnerTicket("Infant", Decimal("00.00"),
"Infant must be seated in an adult's lap. "
"No food or beverage service.")
SPEAKERS_DINNER = SpeakersDinnerCat
PENGUIN_DINNER = PenguinDinnerCat
SPEAKERS_DINNER_ADULT = SpeakersDinnerCat.create(
"Adult", Decimal("100.00"),
"Includes an adult's meal and full beverage service.",
timedelta(hours=1))
SPEAKERS_DINNER_CHILD = SpeakersDinnerCat.create(
"Child", Decimal("60.00"),
"Includes a child's meal and soft drink service.",
SPEAKERS_DINNER_INFANT = SpeakersDinnerCat.create(
"Infant", Decimal("00.00"),
"No food or beverage service.",