feat: Abfrage-Builder NOT + visual brackets + full field coverage (#194) #195
Reference in New Issue
Block a user
Delete Branch "feature/issue-194-query-builder-not-brackets-fields"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Summary
Implements #194. Extends the visual Abfrage-Builder with three tightly-related capabilities in one go.
NOT operator
not: trueflag supported on both group and leaf nodes in the AST¬toggle and per-group "NICHT" toggle in the UINOT (A AND NOT B))notunchangedExplicit brackets (UX)
()rendered around nested groupsdepth < 3nesting cap; backend validation (max 10) remainsFull field coverage
New member columns:
notizen,zusatz_notizen,einwilligung_datum,juleica_nummer,juleica_ablaufdatumEncrypted:
allergien— full operators, server-side decrypt-and-filter in PHP for content operators; pure-SQL null/empty check foris_empty/is_not_empty. Audit log records field + operator + user but never the value.Related entities (EXISTS subqueries):
telefon,email,familie_name,beitrag_bezahlt_jahr,beitrag_offen_jahr,beitrag_betrag,lager_teilnahme,lager_name,verletzung_vorhandenFields now expose a
groupproperty used by the frontend to render anoptgroup-style grouped dropdown.Security
QueryService::executeWithAllergienFilter()user,field,op,negatedonly)FIELD_MAPwhitelist; no dynamic SQLTest plan
appinfo/info.xml,webpack.config.js,src/main.js(0.2.7 → 0.2.8)notkeys) still round-trips correctly🤖 Generated with Claude Code