aboutsummaryrefslogtreecommitdiff
path: root/devel/nmbug
diff options
context:
space:
mode:
authorJani Nikula <jani@nikula.org>2015-09-26 14:37:51 +0300
committerDavid Bremner <david@tethera.net>2015-09-29 08:25:25 -0300
commit8b35b8f71aec56232a3d305aff6cf315bf31331e (patch)
treec63c31fb36e9e849b638bd5d5c71ab129be7b1cc /devel/nmbug
parent33c8777a967ece2dd4bbda7e83a4e07c195abf51 (diff)
nmbug-status: add support for specifying sort order for each view
Let each view have a "sort" key, typically used with values "oldest-first" or "newest-first" (although all values in Query.SORT are accepted), and sort the results accordingly. Oldest first remains the default. The dynamic approach of mapping sort values is as suggested by W. Trevor King <wking@tremily.us>.
Diffstat (limited to 'devel/nmbug')
-rwxr-xr-xdevel/nmbug/nmbug-status11
1 files changed, 10 insertions, 1 deletions
diff --git a/devel/nmbug/nmbug-status b/devel/nmbug/nmbug-status
index e845c2a5..a289798e 100755
--- a/devel/nmbug/nmbug-status
+++ b/devel/nmbug/nmbug-status
@@ -156,11 +156,20 @@ class Page (object):
stream.write(self.footer)
def _write_view(self, database, view, stream):
+ # sort order, default to oldest-first
+ sort_key = view.get('sort', 'oldest-first')
+ # dynamically accept all values in Query.SORT
+ sort_attribute = sort_key.upper().replace('-', '_')
+ try:
+ sort = getattr(notmuch.Query.SORT, sort_attribute)
+ except AttributeError:
+ raise ConfigError('Invalid sort setting for {}: {!r}'.format(
+ view['title'], sort_key))
if 'query-string' not in view:
query = view['query']
view['query-string'] = ' and '.join(query)
q = notmuch.Query(database, view['query-string'])
- q.set_sort(notmuch.Query.SORT.OLDEST_FIRST)
+ q.set_sort(sort)
threads = self._get_threads(messages=q.search_messages())
self._write_view_header(view=view, stream=stream)
self._write_threads(threads=threads, stream=stream)