diff --git a/gertty/search/__init__.py b/gertty/search/__init__.py index ae5f64c..1a7f125 100644 --- a/gertty/search/__init__.py +++ b/gertty/search/__init__.py @@ -62,7 +62,7 @@ class SearchCompiler(object): if __name__ == '__main__': class Dummy(object): pass - query = 'NOT label:Code-Review<=2 age:5d' + query = 'reviewer:10068' lexer = tokenizer.SearchTokenizer() lexer.input(query) while True: diff --git a/gertty/search/parser.py b/gertty/search/parser.py index 4a70d0e..f931458 100644 --- a/gertty/search/parser.py +++ b/gertty/search/parser.py @@ -125,11 +125,18 @@ def SearchParser(): gertty.db.account_table.c.name == p[2]) def p_reviewer_term(p): - '''reviewer_term : OP_REVIEWER string''' + '''reviewer_term : OP_REVIEWER string + | OP_REVIEWER NUMBER''' filters = [] filters.append(gertty.db.approval_table.c.change_key == gertty.db.change_table.c.key) filters.append(gertty.db.approval_table.c.account_key == gertty.db.account_table.c.key) - if p[2] == 'self': + try: + number = int(p[2]) + except: + number = None + if number is not None: + filters.append(gertty.db.account_table.c.id == number) + elif p[2] == 'self': username = p.parser.username filters.append(gertty.db.account_table.c.username == username) else: