Esempio n. 1
0
def create_teams():

    for value in TEAM_CAPTAINS:
        team = Team()
        team.country = value['country']
        team.city = value['city']
        team.name = value['team']
        db.session.add(team)
        tc = User()
        tc.username = value['username']
        tc.email = value['email']
        tc.set_password(value['password'])
        tc.access = ACCESS[TEAM_CAPTAIN]
        tc.is_active = True if value['email'] is not None else False
        tc.team = team
        db.session.add(tc)

    for value in TREASURERS:
        treasurer = User()
        treasurer.username = value['username']
        treasurer.access = ACCESS[TREASURER]
        treasurer.is_active = False
        treasurer.team = db.session.query(Team).filter_by(city=value['city']).first()
        db.session.add(treasurer)

    db.session.commit()
Esempio n. 2
0
 def create_teamcaptains():
     for t in data.TEAMS:
         team = Team.query.filter_by(city=t['city']).first()
         if team is not None:
             tc = User()
             tc.username = f"Teamcaptain{t['city']}"
             tc.access = data.ACCESS[data.TEAM_CAPTAIN]
             tc.team = team
             db.session.add(tc)
             treasurer = User()
             treasurer.username = f"Treasurer{t['city']}"
             treasurer.access = data.ACCESS[data.TREASURER]
             treasurer.team = team
             db.session.add(treasurer)
     db.session.commit()
Esempio n. 3
0
def create_super_volunteer_user_account(form, super_volunteer, external_adjudicator=False):
    super_volunteer_account = User()
    super_volunteer_account.username = form.email.data
    super_volunteer_account.email = form.email.data
    super_volunteer_account_password = random_password()
    super_volunteer_account.set_password(super_volunteer_account_password)
    super_volunteer_account.access = ACCESS[SUPER_VOLUNTEER]
    super_volunteer_account.is_active = True
    super_volunteer_account.send_new_messages_email = True
    super_volunteer_account.super_volunteer = super_volunteer
    if current_user.is_organizer():
        super_volunteer_account.team = Team.query.filter(Team.name == TEAM_ORGANIZATION).first()
    elif external_adjudicator:
        super_volunteer_account.team = Team.query.filter(Team.name == TEAM_ADJUDICATOR).first()
    else:
        super_volunteer_account.team = Team.query.filter(Team.name == TEAM_SUPER_VOLUNTEER).first()
    db.session.add(super_volunteer_account)
    db.session.commit()
    send_super_volunteer_user_account_email(super_volunteer_account, super_volunteer.get_full_name(),
                                            super_volunteer_account_password)
Esempio n. 4
0
def create_dancer_user_account(contestant):
    dancer_account = User()
    dancer_account.team = current_user.team
    dancer_account.username = contestant.email
    dancer_account.email = contestant.email
    dancer_account_password = random_password()
    dancer_account.set_password(dancer_account_password)
    dancer_account.access = ACCESS[DANCER]
    dancer_account.is_active = True
    dancer_account.send_new_messages_email = True
    dancer_account.dancer = contestant
    db.session.add(dancer_account)
    db.session.commit()
    send_dancer_user_account_email(dancer_account, contestant.get_full_name(), dancer_account_password)
Esempio n. 5
0
def populate_test_data(tournament=None):

    if tournament is None:
        return False

    if tournament not in PAST_TOURNAMENTS:
        return False
    test_contestants = []
    test_configuration = {}

    reset_tournament_state()
    g.ts.organizer_account_set = True
    g.ts.system_configured = True

    if tournament == "NTDS 2018 Enschede":
        test_contestants = ntds2018enschede
        test_configuration = ntds2018enschede_configuration
    if tournament == "ETDS 2018 Brno":
        test_contestants = etds2018brno
        test_configuration = etds2018brno_configuration
    if tournament == "NTDS 2019 Nijmengen":
        test_contestants = ntds2019nijmegen
        test_configuration = ntds2019nijmegen_configuration

    User.query.filter(User.access >= ACCESS[ORGANIZER], User.access < ACCESS[TEAM_CAPTAIN])\
        .update({User.is_active: True})

    g.sc.tournament = test_configuration["tournament"]
    g.sc.number_of_teamcaptains = test_configuration["number_of_teamcaptains"]

    g.sc.beginners_level = test_configuration["beginners_level"]
    g.sc.closed_level = test_configuration["closed_level"]
    g.sc.breitensport_obliged_blind_date = test_configuration[
        "breitensport_obliged_blind_date"]
    g.sc.salsa_competition = test_configuration["salsa_competition"]
    g.sc.polka_competition = test_configuration["polka_competition"]

    g.sc.student_price = test_configuration["student_price"]
    g.sc.non_student_price = test_configuration["non_student_price"]
    g.sc.phd_student_category = test_configuration["phd_student_category"]
    g.sc.phd_student_price = test_configuration["phd_student_price"]

    g.sc.first_time_ask = test_configuration["first_time_ask"]
    g.sc.ask_adult = test_configuration["ask_adult"]
    g.sc.ask_diet_allergies = test_configuration["ask_diet_allergies"]
    g.sc.ask_volunteer = test_configuration["ask_volunteer"]
    g.sc.ask_first_aid = test_configuration["ask_first_aid"]
    g.sc.ask_emergency_response_officer = test_configuration[
        "ask_emergency_response_officer"]
    g.sc.ask_adjudicator_highest_achieved_level = test_configuration[
        "ask_adjudicator_highest_achieved_level"]
    g.sc.ask_adjudicator_certification = test_configuration[
        "ask_adjudicator_certification"]

    for merchandise in test_configuration["merchandise"]:
        if merchandise["shirt"]:
            item = MerchandiseItem(description=merchandise["description"],
                                   shirt=merchandise["shirt"],
                                   price=merchandise["price"])
            for size in SHIRT_SIZES:
                MerchandiseItemVariant(merchandise_item=item, variant=size)
            db.session.add(item)
        else:
            item = MerchandiseItem(description=merchandise["description"],
                                   shirt=merchandise["shirt"],
                                   price=merchandise["price"])
            for variant in merchandise["variants"]:
                MerchandiseItemVariant(merchandise_item=item, variant=variant)
            db.session.add(item)

    g.sc.finances_refund = test_configuration["finances_refund"]
    g.sc.finances_refund_percentage = test_configuration[
        "finances_refund_percentage"]

    now = datetime.datetime.now()
    now = datetime.datetime(year=now.year, month=now.month, day=now.day)
    refund_date = now + datetime.timedelta((2 - now.weekday()) % 7)
    merchandise_date = refund_date + datetime.timedelta(days=8)
    tournament_start_date = merchandise_date + datetime.timedelta(days=8)
    g.sc.tournament_starting_date = int(tournament_start_date.timestamp())
    g.sc.finances_refund_date = int(refund_date.timestamp())
    g.sc.merchandise_closing_date = int(merchandise_date.timestamp())

    db.session.commit()

    for test_c in test_contestants:
        c = Contestant()
        c.contestant_id = test_c['contestant_id']
        c.first_name = test_c['first_name']
        if 'prefixes' in test_c:
            c.prefixes = test_c['prefixes']
        c.last_name = test_c['last_name']
        print('... Adding {}'.format(c.get_full_name()))
        c.email = test_c['email']
        db.session.add(c)
        c_info = ContestantInfo()
        c_info.number = test_c['number']
        c_info.team_captain = test_c['team_captain']
        c_info.student = test_c['student']
        c_info.first_time = test_c['first_time']
        c_info.diet_allergies = test_c['diet_allergies']
        c_info.team = db.session.query(Team).filter_by(
            city=test_c['team']).first()
        c_info.contestant = c
        for di in test_c['dancing_info']:
            d_info = DancingInfo()
            d_info.contestant = c
            d_info.competition = di['competition']
            d_info.level = di['level']
            d_info.role = di['role']
            d_info.blind_date = di['blind_date']
            d_info.partner = di['partner']
            db.session.add(d_info)
        v_info = VolunteerInfo()
        v_info.volunteer = test_c['volunteer']
        v_info.first_aid = test_c['first_aid']
        v_info.emergency_response_officer = test_c[
            'emergency_response_officer']
        v_info.jury_ballroom = test_c['jury_ballroom']
        v_info.jury_latin = test_c['jury_latin']
        v_info.license_jury_ballroom = test_c['license_ballroom']
        v_info.license_jury_latin = test_c['license_latin']
        v_info.level_ballroom = test_c['ballroom_highest_level']
        v_info.level_latin = test_c['latin_highest_level']
        v_info.jury_salsa = test_c['jury_latin']
        v_info.jury_polka = test_c['jury_latin']
        v_info.contestant = c
        a_info = AdditionalInfo()
        a_info.sleeping_arrangements = test_c['sleeping_arrangements']
        a_info.contestant = c
        s_info = StatusInfo()
        s_info.guaranteed_entry = test_c['guaranteed_entry']
        s_info.contestant = c
        m_info = MerchandiseInfo()
        m_info.contestant = c
        for p in test_c['merchandise']:
            if test_c['merchandise'][p] != NO:
                variant = MerchandiseItemVariant.query.join(MerchandiseItem)\
                    .filter(MerchandiseItemVariant.variant == test_c['merchandise'][p],
                            MerchandiseItem.description == p).first()
                MerchandisePurchase(merchandise_info=m_info,
                                    merchandise_item_variant=variant)
        p_info = PaymentInfo()
        p_info.contestant = c
        dancer_account = User()
        dancer_account.team = db.session.query(Team).filter_by(
            city=test_c['team']).first()
        dancer_account.username = test_c['email']
        dancer_account.email = test_c['email']
        dancer_account.set_password('test')
        dancer_account.access = ACCESS[DANCER]
        dancer_account.is_active = True
        dancer_account.send_new_messages_email = False
        dancer_account.dancer = c
    db.session.commit()
    return True