mirror of
https://github.com/GAM-team/GAM.git
synced 2026-07-03 20:31:35 +00:00
Add number/numberrange to <RowValueFilter>
This commit is contained in:
@@ -26,6 +26,14 @@ recentdeleteretries <Integer> - Handle group delete/create errors, defaults to 0
|
|||||||
recentdeleteretrydelay <Integer> - Number of seconds to delay between retries, defaults to 5, range 1-60
|
recentdeleteretrydelay <Integer> - Number of seconds to delay between retries, defaults to 5, range 1-60
|
||||||
```
|
```
|
||||||
|
|
||||||
|
Added the following to `<RowValueFilter>` used in CSV input/output row filtering; these are
|
||||||
|
synonyms for `count` and `countrange`.
|
||||||
|
```
|
||||||
|
[(any|all):]number<Operator><Number>|
|
||||||
|
[(any|all):]numberrange!=<Number>/<Number>|
|
||||||
|
[(any|all):]numberrange=<Number>/<Number>|
|
||||||
|
```
|
||||||
|
|
||||||
7.41.01
|
7.41.01
|
||||||
|
|
||||||
Fixed bug in `gam print cigroups members managers owners countsonly totalcount internal external` that caused a trap.
|
Fixed bug in `gam print cigroups members managers owners countsonly totalcount internal external` that caused a trap.
|
||||||
|
|||||||
@@ -3581,8 +3581,8 @@ def SetGlobalVariables():
|
|||||||
return headerFilters
|
return headerFilters
|
||||||
|
|
||||||
ROW_FILTER_ANY_ALL_PATTERN = re.compile(r'^(any:|all:)(.+)$', re.IGNORECASE)
|
ROW_FILTER_ANY_ALL_PATTERN = re.compile(r'^(any:|all:)(.+)$', re.IGNORECASE)
|
||||||
ROW_FILTER_COMP_PATTERN = re.compile(r'^(date|time|count|length)\s*([<>]=?|=|!=)(.+)$', re.IGNORECASE)
|
ROW_FILTER_COMP_PATTERN = re.compile(r'^(date|time|count|length|number)\s*([<>]=?|=|!=)(.+)$', re.IGNORECASE)
|
||||||
ROW_FILTER_RANGE_PATTERN = re.compile(r'^(daterange|timerange|countrange|lengthrange)(=|!=)(\S+)/(\S+)$', re.IGNORECASE)
|
ROW_FILTER_RANGE_PATTERN = re.compile(r'^(daterange|timerange|countrange|lengthrange|numberrange)(=|!=)(\S+)/(\S+)$', re.IGNORECASE)
|
||||||
ROW_FILTER_TIMEOFDAYRANGE_PATTERN = re.compile(r'^(timeofdayrange)(=|!=)(\d\d):(\d\d)/(\d\d):(\d\d)$', re.IGNORECASE)
|
ROW_FILTER_TIMEOFDAYRANGE_PATTERN = re.compile(r'^(timeofdayrange)(=|!=)(\d\d):(\d\d)/(\d\d):(\d\d)$', re.IGNORECASE)
|
||||||
ROW_FILTER_BOOL_PATTERN = re.compile(r'^(boolean):(.+)$', re.IGNORECASE)
|
ROW_FILTER_BOOL_PATTERN = re.compile(r'^(boolean):(.+)$', re.IGNORECASE)
|
||||||
ROW_FILTER_TEXT_PATTERN = re.compile(r'^(text)([<>]=?|=|!=)(.*)$', re.IGNORECASE)
|
ROW_FILTER_TEXT_PATTERN = re.compile(r'^(text)([<>]=?|=|!=)(.*)$', re.IGNORECASE)
|
||||||
@@ -3648,7 +3648,7 @@ def SetGlobalVariables():
|
|||||||
rowFilters.append((columnPat, anyMatch, filterType, mg.group(2), filterValue))
|
rowFilters.append((columnPat, anyMatch, filterType, mg.group(2), filterValue))
|
||||||
else:
|
else:
|
||||||
_printValueError(sectionName, itemName, f'"{column}": "{filterStr}"', f'{Msg.EXPECTED}: {filterValue}')
|
_printValueError(sectionName, itemName, f'"{column}": "{filterStr}"', f'{Msg.EXPECTED}: {filterValue}')
|
||||||
else: # filterType in {'count', 'length'}:
|
else: # filterType in {'count', 'length', 'number'}:
|
||||||
if mg.group(3).isdigit():
|
if mg.group(3).isdigit():
|
||||||
rowFilters.append((columnPat, anyMatch, filterType, mg.group(2), int(mg.group(3))))
|
rowFilters.append((columnPat, anyMatch, filterType, mg.group(2), int(mg.group(3))))
|
||||||
else:
|
else:
|
||||||
@@ -3678,7 +3678,7 @@ def SetGlobalVariables():
|
|||||||
rowFilters.append((columnPat, anyMatch, filterType, mg.group(2), filterValue1, filterValue2))
|
rowFilters.append((columnPat, anyMatch, filterType, mg.group(2), filterValue1, filterValue2))
|
||||||
else:
|
else:
|
||||||
_printValueError(sectionName, itemName, f'"{column}": "{filterStr}"', f'{Msg.EXPECTED}: {filterValue1}/{filterValue2}')
|
_printValueError(sectionName, itemName, f'"{column}": "{filterStr}"', f'{Msg.EXPECTED}: {filterValue1}/{filterValue2}')
|
||||||
else: #countrange|lengthrange
|
else: #countrange|lengthrange|numberrange
|
||||||
if mg.group(3).isdigit() and mg.group(4).isdigit():
|
if mg.group(3).isdigit() and mg.group(4).isdigit():
|
||||||
rowFilters.append((columnPat, anyMatch, filterType, mg.group(2), int(mg.group(3)), int(mg.group(4))))
|
rowFilters.append((columnPat, anyMatch, filterType, mg.group(2), int(mg.group(3)), int(mg.group(4))))
|
||||||
else:
|
else:
|
||||||
|
|||||||
Reference in New Issue
Block a user