[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[elpa] externals/rt-liberation 8ce06cf52f: * rt-liberation.el: new funct
From: |
ELPA Syncer |
Subject: |
[elpa] externals/rt-liberation 8ce06cf52f: * rt-liberation.el: new function |
Date: |
Sun, 9 Jan 2022 22:57:41 -0500 (EST) |
branch: externals/rt-liberation
commit 8ce06cf52ff9ee29a7af11a4afdd93f0a9cc2263
Author: Yoni Rabkin <yrk@gnu.org>
Commit: Yoni Rabkin <yrk@gnu.org>
* rt-liberation.el: new function
---
.gitignore | 1 +
doc/rt-liber.texinfo | 16 ++++++++++++++++
rt-liberation.el | 24 ++++++++++++++++++++++++
3 files changed, 41 insertions(+)
diff --git a/.gitignore b/.gitignore
index 6d9f4fe2c9..766efb7098 100644
--- a/.gitignore
+++ b/.gitignore
@@ -2,3 +2,4 @@
rt-liberation-autoloads.el
rt-liberation-pkg.el
/etc/
+/doc/rt-liber.info
diff --git a/doc/rt-liber.texinfo b/doc/rt-liber.texinfo
index 352ee3fb67..f2ff2e43e6 100644
--- a/doc/rt-liber.texinfo
+++ b/doc/rt-liber.texinfo
@@ -625,6 +625,22 @@ buffers will be created displaying the query results and
named
"*new tickets*"))
@end lisp
+It is also possible to display an arbitrary group of tickets and unify
+them under a single buffer with a descriptive name, which can be done
+with @code{rt-liber-display-ticket-list}:
+
+@defun rt-liber-display-ticket-list queue ticket-id-list &optional buffer-name
+Display from QUEUE the tickets TICKET-ID-LIST.
+@end defun
+
+For example:
+@lisp
+(rt-liber-display-ticket-list
+ "proposals"
+ '(1002 1003 255 5007 12999 27)
+ "job proposals under review from last year")
+@end lisp
+
@c --------------------------------------------------
@node Ticket Viewer
diff --git a/rt-liberation.el b/rt-liberation.el
index 189f7e07ab..2e97f3d990 100644
--- a/rt-liberation.el
+++ b/rt-liberation.el
@@ -1270,6 +1270,30 @@ ASSOC-BROWSER if non-nil should be a ticket browser."
(id ticket-id))
(concat "#" ticket-id))))
+(defun rt-liber-reduce-op (op seq)
+ "Simple reduction function for ticket IDs."
+ (concat "Id = "
+ (format "'%s'" (car seq))
+ (rt-liber-reduce-op-int "OR" (cdr seq) "")))
+
+(defun rt-liber-reduce-op-int (op seq acc)
+ "Simple reduction function for ticket IDs (internal)."
+ (cond ((not seq) acc)
+ (t (rt-liber-reduce-op-int
+ op
+ (cdr seq)
+ (concat acc " " op " Id = " (format "'%s'" (car seq)))))))
+
+(defun rt-liber-display-ticket-list (que ticket-id-list &optional buffer-name)
+ "Display from QUEUE the tickets TICKET-ID-LIST.
+
+BUFFER-NAME: optionally name the resultant browser buffer."
+ (rt-liber-browse-query
+ (rt-liber-compile-query
+ (and (queue que)
+ ((or (rt-liber-reduce-op "OR" ticket-id-list)))))
+ buffer-name))
+
(provide 'rt-liberation)
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [elpa] externals/rt-liberation 8ce06cf52f: * rt-liberation.el: new function,
ELPA Syncer <=