Commit 2225310
committed
fix: Magic shelf filtering bugs and add date format validation
Filter/Query Fixes:
- Fix "is_empty" operator on relationship fields (Series, Publisher, Author, Tag, Language)
Returns books with no related records using ~relationship.any() instead of broken
relationship.any(column == None) which always returned false
- Fix Description field completely broken - was pointing to Books.comments relationship
instead of Comments.text column. Updated FIELD_MAP and RELATIONSHIP_MAP
- Add special handling for is_empty/is_null operators on relationships to check existence
rather than value comparison
Date Format UI Improvements:
- Add dynamic date format hint box (styled like preview results)
- Automatically shows when Published Date or Date Added fields are used in rules
- Displays required format: YYYY-MM-DD with example
- Hides automatically when no date fields are present
- Positioned above preview section for better visibility
Operator Improvements:
- Handle is_empty and is_not_empty correctly for all relationship types
- Preserve existing operator behavior for value-based comparisons
- Add defensive checks in build_filter_from_rule for relationship operators
Files Changed:
- cps/magic_shelf.py: Fix relationship field handling and Description mapping
- cps/templates/magic_shelf_edit.html: Add date hint UI and show/hide logic
- cps/static/css/query_builder.css: Add date-format-hint styling
Resolves issues where:
- Series/Publisher "is empty" queries returned 0 results
- Description filter threw "Invalid rules format" error
- Users had no guidance on required date format (YYYY-MM-DD)
- Relationship fields checked null values instead of existence1 parent 7f7948c commit 2225310
2 files changed
Lines changed: 133 additions & 5 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
139 | 139 | | |
140 | 140 | | |
141 | 141 | | |
142 | | - | |
| 142 | + | |
143 | 143 | | |
144 | 144 | | |
145 | 145 | | |
| |||
182 | 182 | | |
183 | 183 | | |
184 | 184 | | |
| 185 | + | |
185 | 186 | | |
186 | 187 | | |
187 | 188 | | |
| |||
308 | 309 | | |
309 | 310 | | |
310 | 311 | | |
311 | | - | |
312 | | - | |
313 | | - | |
314 | | - | |
| 312 | + | |
| 313 | + | |
| 314 | + | |
| 315 | + | |
| 316 | + | |
| 317 | + | |
| 318 | + | |
| 319 | + | |
| 320 | + | |
| 321 | + | |
| 322 | + | |
315 | 323 | | |
316 | 324 | | |
317 | 325 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
63 | 63 | | |
64 | 64 | | |
65 | 65 | | |
| 66 | + | |
| 67 | + | |
| 68 | + | |
| 69 | + | |
| 70 | + | |
| 71 | + | |
| 72 | + | |
| 73 | + | |
| 74 | + | |
| 75 | + | |
| 76 | + | |
| 77 | + | |
| 78 | + | |
| 79 | + | |
| 80 | + | |
| 81 | + | |
| 82 | + | |
66 | 83 | | |
67 | 84 | | |
68 | 85 | | |
| |||
231 | 248 | | |
232 | 249 | | |
233 | 250 | | |
| 251 | + | |
| 252 | + | |
| 253 | + | |
| 254 | + | |
| 255 | + | |
| 256 | + | |
| 257 | + | |
| 258 | + | |
| 259 | + | |
| 260 | + | |
| 261 | + | |
| 262 | + | |
| 263 | + | |
| 264 | + | |
| 265 | + | |
| 266 | + | |
| 267 | + | |
| 268 | + | |
| 269 | + | |
| 270 | + | |
| 271 | + | |
| 272 | + | |
| 273 | + | |
| 274 | + | |
| 275 | + | |
234 | 276 | | |
235 | 277 | | |
236 | 278 | | |
| |||
371 | 413 | | |
372 | 414 | | |
373 | 415 | | |
| 416 | + | |
| 417 | + | |
| 418 | + | |
| 419 | + | |
| 420 | + | |
| 421 | + | |
374 | 422 | | |
375 | 423 | | |
376 | 424 | | |
| |||
594 | 642 | | |
595 | 643 | | |
596 | 644 | | |
| 645 | + | |
| 646 | + | |
| 647 | + | |
| 648 | + | |
| 649 | + | |
| 650 | + | |
| 651 | + | |
| 652 | + | |
| 653 | + | |
| 654 | + | |
| 655 | + | |
| 656 | + | |
| 657 | + | |
| 658 | + | |
| 659 | + | |
| 660 | + | |
| 661 | + | |
| 662 | + | |
| 663 | + | |
| 664 | + | |
| 665 | + | |
| 666 | + | |
| 667 | + | |
| 668 | + | |
| 669 | + | |
| 670 | + | |
| 671 | + | |
| 672 | + | |
| 673 | + | |
| 674 | + | |
| 675 | + | |
597 | 676 | | |
598 | 677 | | |
599 | 678 | | |
600 | 679 | | |
601 | 680 | | |
602 | 681 | | |
| 682 | + | |
| 683 | + | |
| 684 | + | |
| 685 | + | |
| 686 | + | |
| 687 | + | |
| 688 | + | |
| 689 | + | |
| 690 | + | |
| 691 | + | |
| 692 | + | |
| 693 | + | |
| 694 | + | |
| 695 | + | |
| 696 | + | |
| 697 | + | |
| 698 | + | |
| 699 | + | |
| 700 | + | |
| 701 | + | |
| 702 | + | |
| 703 | + | |
| 704 | + | |
| 705 | + | |
| 706 | + | |
| 707 | + | |
| 708 | + | |
| 709 | + | |
| 710 | + | |
| 711 | + | |
| 712 | + | |
| 713 | + | |
| 714 | + | |
| 715 | + | |
| 716 | + | |
| 717 | + | |
| 718 | + | |
| 719 | + | |
| 720 | + | |
| 721 | + | |
| 722 | + | |
603 | 723 | | |
604 | 724 | | |
605 | 725 | | |
| |||
0 commit comments