Skip to content
Open
Show file tree
Hide file tree
Changes from 2 commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .python-version
Original file line number Diff line number Diff line change
@@ -1 +1 @@
3.13
3.14
4 changes: 2 additions & 2 deletions Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
# =======================================
# Stage 1: init
# =======================================
FROM ghcr.io/astral-sh/uv:0.7.8-python3.13-bookworm AS init
FROM ghcr.io/astral-sh/uv:0.11.10-python3.14-trixie AS init

WORKDIR /app

Expand Down Expand Up @@ -39,7 +39,7 @@ RUN mv /tmp/client .web/build/client
# =======================================
# Stage 2: copy artifacts into slim image
# =======================================
FROM python:3.13-slim
FROM python:3.14-slim

# Install libpq-dev for psycopg (skip if not using postgres).
RUN apt-get update -y && apt-get install -y libpq-dev && rm -rf /var/lib/apt/lists/*
Expand Down
2 changes: 1 addition & 1 deletion Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -11,4 +11,4 @@ down:
docker compose -f compose.yaml -f compose.prod.yaml down

logs:
docker compose -f compose.yaml -f compose.prod.yaml logs
docker compose -f compose.yaml -f compose.prod.yaml logs -ft
24 changes: 15 additions & 9 deletions aitutor/pages/exercises/state.py
Original file line number Diff line number Diff line change
Expand Up @@ -221,24 +221,30 @@ def load_exercises(self):

# sort open_deadline_exercises by deadline ascending
self.open_deadline_exercises.sort(
key=lambda ex_wth_res: ex_wth_res[0].deadline
if ex_wth_res[0].deadline is not None
else datetime.max
key=lambda ex_wth_res: (
ex_wth_res[0].deadline
if ex_wth_res[0].deadline is not None
else datetime.max
)
)

# sort closed_deadline_exercises by deadline descending
self.closed_deadline_exercises.sort(
key=lambda ex_wth_res: ex_wth_res[0].deadline
if ex_wth_res[0].deadline is not None
else datetime.min,
key=lambda ex_wth_res: (
ex_wth_res[0].deadline
if ex_wth_res[0].deadline is not None
else datetime.min
),
reverse=True,
)

# sort no_deadline_exercises by submitted vs not submitted
self.no_deadline_exercises.sort(
key=lambda ex_wth_res: ex_wth_res[1].submit_time_stamp is not None
if ex_wth_res[1] is not None
else False,
key=lambda ex_wth_res: (
ex_wth_res[1].submit_time_stamp is not None
if ex_wth_res[1] is not None
else False
),
)

self.update_time_left_strings()
2 changes: 1 addition & 1 deletion pyproject.toml
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ authors = [
{name = "AL Group", email = "georg.martius@uni-tuebingen.de"},
]

requires-python = ">=3.13"
requires-python = ">=3.14"
dependencies = [
"reflex[db]",
"pytest",
Expand Down
Loading
Loading