emacs-elpa-diffs
[Top][All Lists]
Advanced

[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)
 



reply via email to

[Prev in Thread] Current Thread [Next in Thread]