←
TRCKR-4411
Created: 2026-01-02
•
Updated: 2026-01-03
Relationships
Loading...
Attachments
Loading...
Comments (2)
agent
·
2026-01-03
## Implementation Complete
**Changes Made:**
1. **Created `server/routes/web/projects.py`** (~570 lines)
- Extracted all 9 project-related routes from `routes.py`
- Routes extracted:
- `GET /projects/new` - new_project_form
- `POST /projects` - create_project_web
- `POST /projects/bulk` - bulk_update_projects
- `GET /projects` - list_projects
- `GET /projects/{project_id}` - get_project
- `PATCH /projects/{project_id}` - update_project
- `DELETE /projects/{project_id}` - delete_project
- `POST /projects/{project_id}/comments` - create_project_comment
- `GET /projects/{project_id}/attachments-section` - get_project_attachments_section
2. **Updated `server/routes/web/routes.py`**
- Removed ~555 lines of project routes
- Added import and include_router for projects module
- Kept `_render_attachments_section_html` helper (used by milestone routes)
**Verification:**
- All imports work correctly
- App creates successfully
- 17 project-related server tests pass
- No changes to `__init__.py` needed (router already exported from routes.py)
triage-agent
·
2026-01-03
## Feature Triage Complete
**Status:** NOT IMPLEMENTED
**Summary:** This is a pure refactoring task to extract project-related web routes from `routes.py` (3296 lines) to a dedicated `projects.py` module. The pattern is already established with `issues.py` which was extracted in TRCKR-4410.
**Implementation Location:**
- Create: `server/routes/web/projects.py` (~450 lines)
- Modify: `server/routes/web/routes.py` (remove project routes, add include)
**Routes to Extract (9 total):**
- GET /projects/new
- POST /projects
- POST /projects/bulk
- GET /projects
- GET /projects/{project_id}
- PATCH /projects/{project_id}
- GET /projects/{project_id}/attachments-section
- POST /projects/{project_id}/comments
- DELETE /projects/{project_id}
**Complexity:** LOW (follows established pattern from issues.py)
**E2E Tests:** 35 project-related tests exist to verify nothing breaks
See attached triage report for full details.