fix: trail issues

This commit is contained in:
swve 2024-02-04 21:20:51 +01:00
parent d88c91c5d7
commit bc84d03ac4

View file

@ -17,7 +17,9 @@ async def create_user_trail(
trail_object: TrailCreate,
db_session: Session,
) -> Trail:
statement = select(Trail).where(Trail.org_id == trail_object.org_id, Trail.user_id == user.id)
statement = select(Trail).where(
Trail.org_id == trail_object.org_id, Trail.user_id == user.id
)
trail = db_session.exec(statement).first()
if trail:
@ -213,7 +215,7 @@ async def add_activity_to_trail(
)
statement = select(TrailRun).where(
TrailRun.trail_id == trail.id, TrailRun.course_id == course.id
TrailRun.trail_id == trail.id, TrailRun.course_id == course.id, TrailRun.user_id == user.id
)
trailrun = db_session.exec(statement).first()
@ -231,7 +233,7 @@ async def add_activity_to_trail(
db_session.refresh(trailrun)
statement = select(TrailStep).where(
TrailStep.trailrun_id == trailrun.id, TrailStep.activity_id == activity.id
TrailStep.trailrun_id == trailrun.id, TrailStep.activity_id == activity.id, TrailStep.user_id == user.id
)
trailstep = db_session.exec(statement).first()
@ -253,7 +255,7 @@ async def add_activity_to_trail(
db_session.commit()
db_session.refresh(trailstep)
statement = select(TrailRun).where(TrailRun.trail_id == trail.id)
statement = select(TrailRun).where(TrailRun.trail_id == trail.id , TrailRun.user_id == user.id)
trail_runs = db_session.exec(statement).all()
trail_runs = [
@ -262,7 +264,7 @@ async def add_activity_to_trail(
]
for trail_run in trail_runs:
statement = select(TrailStep).where(TrailStep.trailrun_id == trail_run.id)
statement = select(TrailStep).where(TrailStep.trailrun_id == trail_run.id, TrailStep.user_id == user.id)
trail_steps = db_session.exec(statement).all()
trail_steps = [TrailStep(**trail_step.__dict__) for trail_step in trail_steps]
@ -296,7 +298,9 @@ async def add_course_to_trail(
)
# check if run already exists
statement = select(TrailRun).where(TrailRun.course_id == course.id)
statement = select(TrailRun).where(
TrailRun.course_id == course.id, TrailRun.user_id == user.id
)
trailrun = db_session.exec(statement).first()
if trailrun:
@ -315,7 +319,7 @@ async def add_course_to_trail(
)
statement = select(TrailRun).where(
TrailRun.trail_id == trail.id, TrailRun.course_id == course.id
TrailRun.trail_id == trail.id, TrailRun.course_id == course.id, TrailRun.user_id == user.id
)
trail_run = db_session.exec(statement).first()
@ -332,7 +336,7 @@ async def add_course_to_trail(
db_session.commit()
db_session.refresh(trail_run)
statement = select(TrailRun).where(TrailRun.trail_id == trail.id)
statement = select(TrailRun).where(TrailRun.trail_id == trail.id, TrailRun.user_id == user.id)
trail_runs = db_session.exec(statement).all()
trail_runs = [
@ -341,7 +345,7 @@ async def add_course_to_trail(
]
for trail_run in trail_runs:
statement = select(TrailStep).where(TrailStep.trailrun_id == trail_run.id)
statement = select(TrailStep).where(TrailStep.trailrun_id == trail_run.id , TrailStep.user_id == user.id)
trail_steps = db_session.exec(statement).all()
trail_steps = [TrailStep(**trail_step.__dict__) for trail_step in trail_steps]
@ -385,7 +389,7 @@ async def remove_course_from_trail(
)
statement = select(TrailRun).where(
TrailRun.trail_id == trail.id, TrailRun.course_id == course.id
TrailRun.trail_id == trail.id, TrailRun.course_id == course.id, TrailRun.user_id == user.id
)
trail_run = db_session.exec(statement).first()
@ -394,14 +398,14 @@ async def remove_course_from_trail(
db_session.commit()
# Delete all trail steps for this course
statement = select(TrailStep).where(TrailStep.course_id == course.id)
statement = select(TrailStep).where(TrailStep.course_id == course.id, TrailStep.user_id == user.id)
trail_steps = db_session.exec(statement).all()
for trail_step in trail_steps:
db_session.delete(trail_step)
db_session.commit()
statement = select(TrailRun).where(TrailRun.trail_id == trail.id)
statement = select(TrailRun).where(TrailRun.trail_id == trail.id, TrailRun.user_id == user.id)
trail_runs = db_session.exec(statement).all()
trail_runs = [
@ -410,7 +414,7 @@ async def remove_course_from_trail(
]
for trail_run in trail_runs:
statement = select(TrailStep).where(TrailStep.trailrun_id == trail_run.id)
statement = select(TrailStep).where(TrailStep.trailrun_id == trail_run.id, TrailStep.user_id == user.id)
trail_steps = db_session.exec(statement).all()
trail_steps = [TrailStep(**trail_step.__dict__) for trail_step in trail_steps]