comparison doc/user_guide.txt @ 8173:079958914ed7

doc/test: issue2551374 - add error handling for filter expressions Added doc that invalid filter expressions are silently ignored and a fallback search is generated. Added disabled test that uses incorrect filter expression examples from this issue.
author John Rouillard <rouilj@ieee.org>
date Mon, 02 Dec 2024 13:53:23 -0500
parents 6a58acc3f39f
children cae1bbf2536b
comparison
equal deleted inserted replaced
8172:6a58acc3f39f 8173:079958914ed7
447 447
448 Advanced Searching with Property Expressions 448 Advanced Searching with Property Expressions
449 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 449 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
450 450
451 You can create more advanced searches in your tracker by using Reverse 451 You can create more advanced searches in your tracker by using Reverse
452 Polish Notation (`RPN`_) to make property expressions. By default, when 452 Polish Notation (`RPN`_) to make property expressions. By default,
453 filtering by multiple items, the expression type is 'or'. For 453 when filtering by multiple items, the expression type is 'or'. For
454 instance, if you filter the property assignedto by adding the query 454 instance, if you filter the property assignedto by adding the query
455 string element "assignedto=2,3,40", it matches users "2 or 3 or 455 string element ``assignedto=2,3,40``, it matches users numbered ``2 or
456 40". In RPN, this would be written as "2, 3, or, 4, or". Roundup uses 456 3 or 40``. In RPN, this would be written as ``2, 3, or, 4,
457 negative numbers to represent operators. For example, using "-1" for a 457 or``. Roundup uses negative numbers to represent operators. For
458 single value (e.g. the assignedto Link property, but not the keyword 458 example, using "-1" for a single value (e.g. the assignedto Link
459 multivalued/MultiLink property) matches an issue where the property is 459 property, but not the keyword multivalued/MultiLink property) matches
460 'not set'. 460 an issue where the property is 'not set'.
461 461
462 The operators and their corresponding numbers are: 462 The operators and their corresponding numbers are:
463 463
464 * 'not' is represented by -2 464 * 'not' is represented by -2
465 * 'and' is represented by -3 465 * 'and' is represented by -3
466 * 'or' is represented by -4 466 * 'or' is represented by -4
467 467
468 So, "assignedto=2,3,40" is the same as 468 So, ``assignedto=2,3,40`` is the same as
469 "assignedto=2,3,-4,40,-4". While this example is the same as 469 ``assignedto=2,3,-4,40,-4``. While this example is the same as
470 "2,3,40", the expression "keyword=1,2,-3,-2" filters issues that don't 470 ``2,3,40``, the expression ``keyword=1,2,-3,-2`` filters issues that
471 have both keywords 1 and 2. 471 don't have both keywords 1 and 2.
472 472
473 Another example is: ``creator=3,-2,1,-2,-3``. This is the same as the 473 Another example is: ``creator=3,-2,1,-2,-3``. This is the same as the
474 expression: ``(not user3) and (not user1)``. Using the rules of logic, 474 expression: ``(not user3) and (not user1)``. Using the rules of logic,
475 this is the same as: ``not (user3 or user1)`` which is expressed in 475 this is the same as: ``not (user3 or user1)`` which is expressed in
476 RPN as ``creator=3,1,-4,-2``. Compare this to ``creator=3,1,-2`` which 476 RPN as ``creator=3,1,-4,-2``. Compare this to ``creator=3,1,-2`` which
477 returns issues created by user3 or any user other than user1. 477 returns issues created by user3 or any user other than user1.
478 478
479 Another example, useful when filtering issues, is: 479 Another example, useful when filtering issues, is::
480 480
481 keyword=-1,-2,1,8,-3,-2,-3 481 keyword=-1,-2,1,8,-3,-2,-3
482 482
483 which returns issues that have one or more keywords set and the issue 483 which returns issues that have one or more keywords set and the issue
484 does not have keyword1 and keyword8 both set. In more standard infix 484 does not have keyword1 and keyword8 both set. In more standard infix
485 form: 485 form::
486 486
487 not empty and not (keyword1 and keyword8) 487 not empty and not (keyword1 and keyword8)
488 488
489 Typing these expressions manually can be tiresome, so there's an 489 Typing these expressions manually can be tiresome and tricky. On the
490 expression editor on the search page. You can access it by clicking on 490 search page, there's an expression editor. You can access it by
491 the ``(expr)`` link, which makes creating these expressions a bit 491 clicking on the ``(expr)`` link, which makes creating these
492 easier. But at least you can use this info to understand the search 492 expressions a bit easier.
493 syntax in the URL. 493
494 Note that errors in your expression (e.g. a missing operand) are
495 silently ignored and a fallback search is conducted. This is
496 `considered a bug <https://issues.roundup-tracker.org/issue2551374>`_
497 and will hopefully be fixed in the future. But at least you can use
498 this info to understand the search syntax in the URL if you see
499 something strange.
494 500
495 Using the Classhelper 501 Using the Classhelper
496 --------------------- 502 ---------------------
497 503
498 The classhelper makes finding the id number or name for linked items 504 The classhelper makes finding the id number or name for linked items

Roundup Issue Tracker: http://roundup-tracker.org/