diff --git a/docs/changelog-claude.md b/docs/changelog-claude.md index fff50eb..f5a4170 100644 --- a/docs/changelog-claude.md +++ b/docs/changelog-claude.md @@ -16,6 +16,7 @@ This file documents all changes made to this project via Claude Code. - Changed `docs/technical-notes-codex.md` with updated "Last updated" date, Customers→Jobs navigation notes, and test build/push validation snapshot - Changed search matching to be case-insensitive with wildcard support (`*`) and automatic contains behavior (`*term*`) per search term - Changed global search visibility to only include sections accessible to the currently active role +- Changed `docs/technical-notes-codex.md` with a dedicated Global Grouped Search section (route/UI/behavior/access rules) and latest test build digest for `v20260216-02-global-search` ## [2026-02-13] diff --git a/docs/technical-notes-codex.md b/docs/technical-notes-codex.md index 01f8a96..6f48a02 100644 --- a/docs/technical-notes-codex.md +++ b/docs/technical-notes-codex.md @@ -268,6 +268,27 @@ All pages use **explicit link-based queries** (no date-based logic): - `templates/main/customers.html` - `templates/main/jobs.html` +### Global Grouped Search (2026-02-16) +- New route: + - `GET /search` in `main/routes_search.py` +- New UI: + - Navbar search form in `templates/layout/base.html` + - Grouped result page in `templates/main/search.html` +- Search behavior: + - Case-insensitive matching (`ILIKE`). + - `*` wildcard is supported and translated to SQL `%`. + - Automatic contains behavior is applied per term (`*term*`) when wildcard not explicitly set. + - Multi-term queries use AND across terms and OR across configured columns within each section. +- Grouped sections: + - Inbox, Customers, Jobs, Daily Jobs, Run Checks, Tickets, Existing overrides, Reports. +- Access control: + - Search results are role-aware and only show sections/data the active role can access. + - `run_checks` results are restricted to `admin`/`operator`. + - `reports` supports `admin`/`operator`/`viewer`/`reporter`. +- Current performance strategy: + - Per-section limit (`SEARCH_LIMIT_PER_SECTION = 10`), with total count per section. + - No schema migration required for V1. + ## Feedback Module with Screenshots - Models: `FeedbackItem`, `FeedbackVote`, `FeedbackReply`, `FeedbackAttachment`. - Attachments: @@ -276,6 +297,8 @@ All pages use **explicit link-based queries** (no date-based logic): ## Validation Snapshot - 2026-02-16: Test build + push succeeded via `update-and-build.sh t`. - Pushed image: `gitea.oskamp.info/ivooskamp/backupchecks:dev`. +- 2026-02-16: Test build + push succeeded on branch `v20260216-02-global-search`. +- Pushed image digest: `sha256:6996675b9529426fe2ad58b5f353479623f3ebe24b34552c17ad0421d8a7ee0f`. - Delete strategy: - soft delete by default, - permanent delete only for admins and only after soft delete.