bodhi/controllers.py | 13 ++++++++++++-
1 file changed, 12 insertions(+), 1 deletion(-)
New commits:
commit aac3365bdfe12cd154e2b150d3ce1392c4aab9c2
Author: Luke Macken <lmacken(a)redhat.com>
Date: Fri Apr 3 10:44:26 2009 -0400
Add start_date/end_date and count_only arguments to our list API method (bodhi#141)
diff --git a/bodhi/controllers.py b/bodhi/controllers.py
index 1ea2a22..e0f9fb6 100644
--- a/bodhi/controllers.py
+++ b/bodhi/controllers.py
@@ -190,9 +190,11 @@ class Root(controllers.RootController):
'mine': validators.StringBool(),
'get_auth': validators.StringBool(),
'username': validators.UnicodeString(),
+ 'count_only': validators.StringBool(),
})
def list(self, release=None, bugs=None, cves=None, status=None, type_=None,
- package=None, mine=False, get_auth=False, username=None, **kw):
+ package=None, mine=False, get_auth=False, username=None,
+ start_date=None, end_date=None, count_only=False, **kw):
""" Return a list of updates based on given parameters """
log.debug('list(%s)' % locals())
query = []
@@ -229,10 +231,19 @@ class Root(controllers.RootController):
PackageUpdate.q.submitter == identity.current.user_name)
if username:
query.append(PackageUpdate.q.submitter == username)
+ if start_date:
+ start_date = datetime.strptime(start_date, '%Y-%m-%d %H:%M:%S')
+ query.append(PackageUpdate.q.date_pushed >= start_date)
+ if end_date:
+ end_date = datetime.strptime(end_date, '%Y-%m-%d %H:%M:%S')
+ query.append(PackageUpdate.q.date_pushed <= end_date)
updates = PackageUpdate.select(AND(*query),
orderBy=orderBy).reversed()
+ if count_only:
+ return dict(num_items=updates.count(), updates=[])
+
# The package argument may be an update, build or package.
if package:
try: