diff --git a/server/populate.py b/server/populate.py index 7fb6a37011c452d804b325dae6182f206944a87d..48ed2f955860c048ba62d1b5e4e57bf76358df4d 100644 --- a/server/populate.py +++ b/server/populate.py @@ -1,6 +1,8 @@ +import random + import app.database.controller as dbc from app import create_app, db -from app.database.models import City, Competition, QuestionType, Role +from app.database.models import City, QuestionType, Role def _add_items(): @@ -36,28 +38,58 @@ def _add_items(): city_id = City.query.filter(City.name == "Linköping").one().id - text_id = QuestionType.query.filter(QuestionType.name == "Text").one().id - # Add users dbc.add.user("admin@test.se", "password", admin_id, city_id) dbc.add.user("test@test.se", "password", editor_id, city_id) - # Add competitions to db - for i in range(3): - dbc.add.competition(f"Test{i+1}", 1971, city_id) - - item_comps = Competition.query.all() - - for item_comp in item_comps: - for item_slide in item_comp.slides: - dbc.edit.slide(item_slide, timer=5, title="test-slide-title") - - for i in range(3): - dbc.add.question(f"Q{i+1}", i + 1, text_id, item_slide) - - # Add teams to competition - for team_name in teams: - dbc.add.team(team_name, item_comp) + question_types_items = dbc.get.all(QuestionType) + + # Add competitions + for i in range(len(question_types_items)): + item_comp = dbc.add.competition(f"Tävling {i}", 2000 + i, city_id) + dbc.edit.slide(item_comp.slides[0], timer=5, title="test-slide-title") + + # Add two more slides to competition + dbc.add.slide(item_comp) + dbc.add.slide(item_comp) + + # Add slides + for j, item_slide in enumerate(item_comp.slides): + # Populate slide with data + item_slide.title = f"Slide {j}" + item_slide.body = f"Body {j}" + item_slide.timer = 100 + j + # item_slide.settings = "{}" + dbc.utils.commit_and_refresh(item_slide) + + # Add question to competition + dbc.add.question( + name=f"Question {j}: {question_types_items[j].name}", + total_score=j, + type_id=question_types_items[j].id, + item_slide=item_slide, + ) + + # Add text components + # TODO: Add images as components + for k in range(3): + x = random.randrange(1, 500) + y = random.randrange(1, 500) + w = random.randrange(150, 400) + h = random.randrange(150, 400) + dbc.add.component(1, item_slide, {"text": f"hej{k}"}, x, y, w, h) + + # TODO: Remove comments when slide without questions is fixed + # item_slide = dbc.add.slide(item_comp) + # item_slide.title = f"Slide {len(item_comp.slides)}" + # item_slide.body = f"Body {len(item_comp.slides)}" + # item_slide.timer = 100 + j + # # item_slide.settings = "{}" + # dbc.utils.commit_and_refresh(item_slide) + + # Add teams + for name in teams: + dbc.add.team(f"{name}{i}", item_comp) if __name__ == "__main__":