Update technical notes for global search

This commit is contained in:
Ivo Oskamp 2026-02-16 16:08:29 +01:00
parent d84d2142ec
commit 79933c2ecd
2 changed files with 24 additions and 0 deletions

View File

@ -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 `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 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 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] ## [2026-02-13]

View File

@ -268,6 +268,27 @@ All pages use **explicit link-based queries** (no date-based logic):
- `templates/main/customers.html` - `templates/main/customers.html`
- `templates/main/jobs.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 ## Feedback Module with Screenshots
- Models: `FeedbackItem`, `FeedbackVote`, `FeedbackReply`, `FeedbackAttachment`. - Models: `FeedbackItem`, `FeedbackVote`, `FeedbackReply`, `FeedbackAttachment`.
- Attachments: - Attachments:
@ -276,6 +297,8 @@ All pages use **explicit link-based queries** (no date-based logic):
## Validation Snapshot ## Validation Snapshot
- 2026-02-16: Test build + push succeeded via `update-and-build.sh t`. - 2026-02-16: Test build + push succeeded via `update-and-build.sh t`.
- Pushed image: `gitea.oskamp.info/ivooskamp/backupchecks:dev`. - 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: - Delete strategy:
- soft delete by default, - soft delete by default,
- permanent delete only for admins and only after soft delete. - permanent delete only for admins and only after soft delete.