diff --git a/backend/app/services/assessment/prefilter/pipeline.py b/backend/app/services/assessment/prefilter/pipeline.py index 55bfb4f71..a298b64ce 100644 --- a/backend/app/services/assessment/prefilter/pipeline.py +++ b/backend/app/services/assessment/prefilter/pipeline.py @@ -9,14 +9,15 @@ def resolve_prefilter_settings(prefilter_config: dict[str, Any]) -> dict[str, An dup_config = prefilter_config.get("duplicate_detection") or {} tr_columns = tr_config.get("columns") or [] + tr_attachment_columns = tr_config.get("attachment_columns") tr_prompt = tr_config.get("prompt") or "" dup_columns = dup_config.get("columns") or [] return { "tr_columns": tr_columns, "tr_prompt": tr_prompt, - "tr_attachment_columns": tr_config.get("attachment_columns"), + "tr_attachment_columns": tr_attachment_columns, "dup_columns": dup_columns, - "tr_enabled": bool(tr_columns and tr_prompt), + "tr_enabled": bool((tr_columns or tr_attachment_columns) and tr_prompt), "dup_enabled": bool(dup_columns), } diff --git a/backend/app/tests/assessment/test_pipeline.py b/backend/app/tests/assessment/test_pipeline.py index c807d415d..35056ece0 100644 --- a/backend/app/tests/assessment/test_pipeline.py +++ b/backend/app/tests/assessment/test_pipeline.py @@ -33,6 +33,24 @@ def test_disabled_when_empty(self) -> None: assert cfg["tr_enabled"] is False assert cfg["dup_enabled"] is False + def test_tr_enabled_with_attachment_columns_only(self) -> None: + cfg = resolve_prefilter_settings( + { + "topic_relevance": { + "columns": [], + "attachment_columns": ["Answer Sheet"], + "prompt": "rubric", + } + } + ) + assert cfg["tr_enabled"] is True + + def test_tr_disabled_when_columns_empty_and_no_prompt(self) -> None: + cfg = resolve_prefilter_settings( + {"topic_relevance": {"attachment_columns": ["Answer Sheet"]}} + ) + assert cfg["tr_enabled"] is False + class TestPipeline: def test_full_pipeline_order(self) -> None: