Fix source actions and toggle regressions

This commit is contained in:
Abel Luck 2026-03-30 17:25:37 +02:00
parent 94717b1d1b
commit 2a99edeec3
5 changed files with 122 additions and 5 deletions

View file

@ -26,6 +26,7 @@ from repub.model import (
Job,
create_source,
delete_job_source,
delete_source,
initialize_database,
load_source_form,
load_sources,
@ -209,6 +210,13 @@ def create_app(*, dev_mode: bool = False) -> Quart:
trigger_refresh(app)
return DatastarResponse(SSE.redirect("/sources"))
@app.post("/actions/sources/<string:slug>/delete")
async def delete_source_action(slug: str) -> Response:
delete_source(slug)
get_job_runtime(app).sync_jobs()
trigger_refresh(app)
return Response(status=204)
@app.post("/runs")
async def runs_patch() -> DatastarResponse:
return _page_patch_response(app, lambda: render_runs(app))
@ -383,7 +391,7 @@ def validate_source_form(
source_type = _read_string(signals, "sourceType")
feed_url = _read_string(signals, "feedUrl")
pangea_domain = _read_string(signals, "pangeaDomain")
pangea_category = _read_string(signals, "pangeaCategory")
pangea_category = _read_string(signals, "pangeaCategory", strip=False)
content_format = _read_string(signals, "contentFormat")
content_type = _read_string(signals, "contentType")
max_articles = _read_string(signals, "maxArticles")
@ -474,8 +482,9 @@ def validate_source_form(
return source, None
def _read_string(signals: dict[str, object], key: str) -> str:
return str(signals.get(key, "")).strip()
def _read_string(signals: dict[str, object], key: str, *, strip: bool = True) -> str:
value = str(signals.get(key, ""))
return value.strip() if strip else value
def _read_bool(signals: dict[str, object], key: str, *, default: bool = False) -> bool: