Skip to content
Snippets Groups Projects
Commit d1f5e064 authored by robban64's avatar robban64
Browse files

fix: dbc.add use ID instead of item as argument

parent bb82f650
No related branches found
No related tags found
2 merge requests!92Resolve "Refactor/minimize editor code",!88Resolve "Restructure api routes"
This commit is part of merge request !92. Comments created here will be created in the context of that merge request.
......@@ -25,7 +25,7 @@ class CompetitionsList(Resource):
item = dbc.add.competition(**args)
# Add default slide
dbc.add.slide(item)
dbc.add.slide(item.id)
return item_response(schema.dump(item))
......
......@@ -46,6 +46,5 @@ class ComponentList(Resource):
@check_jwt(editor=True)
def post(self, competition_id, slide_id):
args = component_create_parser.parse_args()
item_slide = dbc.get.slide(competition_id, slide_id)
item = dbc.add.component(item_slide=item_slide, **args)
item = dbc.add.component(slide_id=slide_id, **args)
return item_response(schema.dump(item))
......@@ -30,10 +30,9 @@ class QuestionListForSlide(Resource):
return list_response(list_schema.dump(items))
@check_jwt(editor=True)
def post(self, slide_id, competition_id):
def post(self, competition_id, slide_id):
args = question_parser.parse_args(strict=True)
item_slide = dbc.get.slide(competition_id, slide_id)
item = dbc.add.question(item_slide=item_slide, **args)
item = dbc.add.question(slide_id=slide_id, **args)
return item_response(schema.dump(item))
......
......@@ -22,11 +22,9 @@ class SlidesList(Resource):
@check_jwt(editor=True)
def post(self, competition_id):
item_comp = dbc.get.one(Competition, competition_id)
item_slide = dbc.add.slide(item_comp)
dbc.add.question(f"Fråga {item_slide.order + 1}", 10, 0, item_slide)
dbc.utils.refresh(item_comp)
return list_response(list_schema.dump(item_comp.slides))
item_slide = dbc.add.slide(competition_id)
dbc.add.question(f"Fråga {item_slide.order + 1}", 10, 0, item_slide.id)
return item_response(schema.dump(item_slide))
@api.route("/<slide_id>")
......
......@@ -23,8 +23,7 @@ class TeamsList(Resource):
@check_jwt(editor=True)
def post(self, competition_id):
args = team_parser.parse_args(strict=True)
item_comp = dbc.get.one(Competition, competition_id)
item_team = dbc.add.team(args["name"], item_comp)
item_team = dbc.add.team(args["name"], competition_id)
return item_response(schema.dump(item_team))
......
......@@ -91,13 +91,13 @@ def city(name):
return db_add(City(name))
def component(type_id, item_slide, data, x=0, y=0, w=0, h=0):
def component(type_id, slide_id, data, x=0, y=0, w=0, h=0):
"""
Adds a component to the slide at the specified coordinates with the
provided size and data .
"""
return db_add(Component(item_slide.id, type_id, data, x, y, w, h))
return db_add(Component(slide_id, type_id, data, x, y, w, h))
def image(filename, user_id):
......@@ -114,12 +114,12 @@ def user(email, password, role_id, city_id, name=None):
return db_add(User(email, password, role_id, city_id, name))
def question(name, total_score, type_id, item_slide):
def question(name, total_score, type_id, slide_id):
"""
Adds a question to the specified slide using the provided arguments.
"""
return db_add(Question(name, total_score, type_id, item_slide.id))
return db_add(Question(name, total_score, type_id, slide_id))
def question_alternative(text, value, question_id):
......@@ -137,10 +137,10 @@ def code(pointer, view_type_id):
return db_add(Code(code_string, pointer, view_type_id))
def team(name, item_competition):
def team(name, competition_id):
""" Adds a team with the specified name to the provided competition. """
item = db_add(Team(name, item_competition.id))
item = db_add(Team(name, competition_id))
# Add code for the team
code(item.id, 1)
......@@ -148,11 +148,11 @@ def team(name, item_competition):
return item
def slide(item_competition):
def slide(competition_id):
""" Adds a slide to the provided competition. """
order = Slide.query.filter(Slide.competition_id == item_competition.id).count() # first element has index 0
return db_add(Slide(order, item_competition.id))
order = Slide.query.filter(Slide.competition_id == competition_id).count() # first element has index 0
return db_add(Slide(order, competition_id))
def competition(name, year, city_id):
......@@ -164,7 +164,7 @@ def competition(name, year, city_id):
item_competition = _competition(name, year, city_id)
# Add one slide for the competition
slide(item_competition)
slide(item_competition.id)
# TODO: Add two teams
......
......@@ -40,7 +40,7 @@ def _component(item_component, item_slide_new):
add.component(
item_component.type_id,
item_slide_new,
item_slide_new.id,
item_component.data,
item_component.x,
item_component.y,
......@@ -66,7 +66,7 @@ def slide_to_competition(item_slide_old, item_competition):
Does not copy team, question answers.
"""
item_slide_new = add.slide(item_competition)
item_slide_new = add.slide(item_competition.id)
# Copy all fields
item_slide_new.title = item_slide_old.title
......
......@@ -50,8 +50,8 @@ def _add_items():
dbc.edit.default(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)
dbc.add.slide(item_comp.id)
dbc.add.slide(item_comp.id)
# Add slides
for j, item_slide in enumerate(item_comp.slides):
......@@ -67,7 +67,7 @@ def _add_items():
name=f"Question {j}: {question_types_items[j].name}",
total_score=j,
type_id=question_types_items[j].id,
item_slide=item_slide,
slide_id=item_slide.id,
)
for i in range(3):
......@@ -80,7 +80,7 @@ def _add_items():
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)
dbc.add.component(1, item_slide.id, {"text": f"hej{k}"}, x, y, w, h)
# TODO: Remove comments when slide without questions is fixed
# item_slide = dbc.add.slide(item_comp)
......@@ -92,7 +92,7 @@ def _add_items():
# Add teams
for name in teams:
dbc.add.team(f"{name}{i}", item_comp)
dbc.add.team(f"{name}{i}", item_comp.id)
if __name__ == "__main__":
......
......@@ -258,6 +258,8 @@ def test_slide_api(client):
# Add slide
response, body = post(client, f"/api/competitions/{CID}/slides", headers=headers)
assert response.status_code == codes.OK
response, body = get(client, f"/api/competitions/{CID}/slides", headers=headers)
assert body["count"] == 4
# Get slide
......
......@@ -43,8 +43,8 @@ def add_default_values():
for j in range(2):
item_comp = dbc.add.competition(f"Tävling {j}", 2012, item_city.id)
# Add two more slides to competition
dbc.add.slide(item_comp)
dbc.add.slide(item_comp)
dbc.add.slide(item_comp.id)
dbc.add.slide(item_comp.id)
# Add slides
for i, item_slide in enumerate(item_comp.slides):
......@@ -56,10 +56,10 @@ def add_default_values():
dbc.utils.commit_and_refresh(item_slide)
# Add question to competition
dbc.add.question(name=f"Q{i+1}", total_score=i + 1, type_id=1, item_slide=item_slide)
dbc.add.question(name=f"Q{i+1}", total_score=i + 1, type_id=1, slide_id=item_slide.id)
# Add text component
dbc.add.component(1, item_slide, {"text": "Text"}, i, 2 * i, 3 * i, 4 * i)
dbc.add.component(1, item_slide.id, {"text": "Text"}, i, 2 * i, 3 * i, 4 * i)
def get_body(response):
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment