Add is:watched to p_is_term()

Add a rudimentary implementation of is:watched that finds all
subscribed projects.

Change-Id: I1c0f9953c075015f17d1fd3075017847bb6b2aae
This commit is contained in:
K Jonathan Harker 2015-03-27 14:21:46 -07:00 committed by K Jonathan Harker
parent a1a2344dbf
commit cb336c4fab
1 changed files with 3 additions and 1 deletions

View File

@ -249,7 +249,7 @@ def SearchParser():
def p_is_term(p):
'''is_term : OP_IS string'''
#TODO: implement watched, draft
#TODO: implement draft
username = p.parser.username
if p[2] == 'reviewed':
filters = []
@ -278,6 +278,8 @@ def SearchParser():
filters.append(gertty.db.account_table.c.username == username)
s = select([gertty.db.change_table.c.key], correlate=False).where(and_(*filters))
p[0] = gertty.db.change_table.c.key.in_(s)
elif p[2] == 'watched':
p[0] = gertty.db.project_table.c.subscribed == True
else:
raise gertty.search.SearchSyntaxError('Syntax error: is:%s is not supported' % p[2])