Author SHA1 Message Date
klemek 1c7d38fc15 chore: 1.0.2
Python Lint CI / ruff-format-check (push) Successful in 5m3s
Python Lint CI / ruff (push) Successful in 5m4s
Python Lint CI / ty (push) Successful in 4m29s
Docker Build / build (push) Successful in 9m50s
TS Lint / ESLint (push) Successful in 6m54s
TS Lint / Oxlint (push) Successful in 6m57s
TS Lint / TypeScript (push) Successful in 6m43s
2026-07-14 17:44:58 +02:00
klemek 350da88802 fix: max limit on list name
Docker Build / build (push) Has been cancelled
Python Lint CI / ruff (push) Has been cancelled
Python Lint CI / ruff-format-check (push) Has been cancelled
Python Lint CI / ty (push) Has been cancelled
TS Lint / ESLint (push) Has been cancelled
TS Lint / Oxlint (push) Has been cancelled
TS Lint / TypeScript (push) Has been cancelled
2026-07-14 17:44:52 +02:00
klemek 29cdf7bb7e fix: remove uselesse EXPOSE 2026-07-14 17:37:22 +02:00
8 changed files with 29 additions and 9 deletions
-1
View File
@@ -25,7 +25,6 @@ RUN uv pip install . --system
ENV APP_ENV=production
ENV PORT=5000
EXPOSE ${PORT}
ENV BIND=0.0.0.0
COPY --from=front-end /app/dist ./dist
+21
View File
@@ -0,0 +1,21 @@
from tortoise import migrations
from tortoise.migrations import operations as ops
from tortoise import fields
class Migration(migrations.Migration):
dependencies = [('models', '0001_initial')]
initial = False
operations = [
ops.AlterField(
model_name='Task',
name='list_name',
field=fields.CharField(db_index=True, max_length=128),
),
ops.AlterField(
model_name='Task',
name='reset_cron',
field=fields.CharField(null=True, max_length=64),
),
]
+1 -1
View File
@@ -10,7 +10,7 @@ CRONTAB_REGEX = r"^(@(annually|yearly|monthly|weekly|daily|hourly|reboot))|(@eve
class Task(AbstractModel):
list_name = tortoise.fields.CharField(max_length=32, db_index=True, null=False)
list_name = tortoise.fields.CharField(max_length=128, db_index=True, null=False)
name = tortoise.fields.TextField(null=False)
reset_cron = tortoise.fields.CharField(
max_length=64,
+2 -2
View File
@@ -58,13 +58,13 @@ class Server(gunicorn.app.base.BaseApplication):
@self.app.route("/api/lists/<list_name>/tasks", methods=["GET"])
async def get_tasks(list_name: str) -> list:
return await Task.filter(list_name=list_name).values()
return await Task.filter(list_name=list_name[:128]).values()
@self.app.route("/api/lists/<list_name>/tasks", methods=["POST"])
async def post_task(list_name: str) -> typing.Any:
data = flask.request.get_json()
logging.getLogger(self.__class__.__name__).info("%s", data)
data["list_name"] = list_name
data["list_name"] = list_name[:128]
parsed_data = Task.validate_create(data)
if parsed_data is None:
flask.abort(400)
+1 -1
View File
@@ -1,6 +1,6 @@
{
"name": "tout-doux",
"version": "1.0.1",
"version": "1.0.2",
"private": true,
"type": "module",
"engines": {
+1 -1
View File
@@ -1,6 +1,6 @@
[project]
name = "tout-doux"
version = "1.0.1"
version = "1.0.2"
description = ""
requires-python = ">=3.14"
dependencies = [
+2 -2
View File
@@ -150,12 +150,12 @@ function updateTitle() {
}
onBeforeMount(() => {
list.value = route.params.list as string;
list.value = (route.params.list as string).slice(0, 128);
fetchTasks();
});
onBeforeRouteUpdate((to) => {
list.value = to.params.list as string;
list.value = (to.params.list as string).slice(0, 128);
fetchTasks();
});
</script>
Generated
+1 -1
View File
@@ -323,7 +323,7 @@ asyncpg = [
[[package]]
name = "tout-doux"
version = "1.0.1"
version = "1.0.2"
source = { editable = "." }
dependencies = [
{ name = "flask", extra = ["async"] },