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

fix: component order in get competition

parent 554db4fe
Branches
No related tags found
No related merge requests found
...@@ -14,6 +14,7 @@ class RichSchema(ma.SQLAlchemySchema): ...@@ -14,6 +14,7 @@ class RichSchema(ma.SQLAlchemySchema):
strict = True strict = True
load_instance = True load_instance = True
include_relationships = True include_relationships = True
ordered = False
class QuestionSchemaRich(RichSchema): class QuestionSchemaRich(RichSchema):
......
...@@ -13,6 +13,7 @@ class BaseSchema(ma.SQLAlchemySchema): ...@@ -13,6 +13,7 @@ class BaseSchema(ma.SQLAlchemySchema):
strict = True strict = True
load_instance = False load_instance = False
include_relationships = False include_relationships = False
ordered = False
class IdNameSchema(BaseSchema): class IdNameSchema(BaseSchema):
......
...@@ -19,7 +19,7 @@ from app.database.models import ( ...@@ -19,7 +19,7 @@ from app.database.models import (
User, User,
) )
from sqlalchemy import func from sqlalchemy import func
from sqlalchemy.orm import joinedload from sqlalchemy.orm import joinedload, subqueryload
from sqlalchemy.orm.util import with_polymorphic from sqlalchemy.orm.util import with_polymorphic
...@@ -311,15 +311,15 @@ def component_list(competition_id, slide_id): ...@@ -311,15 +311,15 @@ def component_list(competition_id, slide_id):
def competition(competition_id): def competition(competition_id):
""" Get Competition and all it's sub-entities. """ """ Get Competition and all it's sub-entities. """
os1 = joinedload(Competition.slides).joinedload(Slide.components) join_component = joinedload(Competition.slides).subqueryload(Slide.components)
os2 = joinedload(Competition.slides).joinedload(Slide.questions).joinedload(Question.alternatives) join_alternatives = joinedload(Competition.slides).joinedload(Slide.questions).joinedload(Question.alternatives)
ot = joinedload(Competition.teams).joinedload(Team.question_alternative_answers) join_question_alternative_answer = joinedload(Competition.teams).joinedload(Team.question_alternative_answers)
ot1 = joinedload(Competition.teams).joinedload(Team.question_scores) join_question_score = joinedload(Competition.teams).joinedload(Team.question_scores)
return ( return (
Competition.query.filter(Competition.id == competition_id) Competition.query.filter(Competition.id == competition_id)
.options(os1) .options(join_component)
.options(os2) .options(join_alternatives)
.options(ot) .options(join_question_alternative_answer)
.options(ot1) .options(join_question_score)
.first() .first()
) )
...@@ -19,6 +19,7 @@ class Config: ...@@ -19,6 +19,7 @@ class Config:
SQLALCHEMY_ECHO = False SQLALCHEMY_ECHO = False
USER_LOGIN_LOCKED_ATTEMPTS = 12 USER_LOGIN_LOCKED_ATTEMPTS = 12
USER_LOGIN_LOCKED_EXPIRES = timedelta(hours=3) USER_LOGIN_LOCKED_EXPIRES = timedelta(hours=3)
JSON_SORT_KEYS = False
class DevelopmentConfig(Config): class DevelopmentConfig(Config):
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment