[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[elpa] externals/rt-liberation e7779ce 54/72: * rt-liberation-report.el:
From: |
Stefan Monnier |
Subject: |
[elpa] externals/rt-liberation e7779ce 54/72: * rt-liberation-report.el: Add Total, found bug. |
Date: |
Wed, 5 Aug 2020 11:57:43 -0400 (EDT) |
branch: externals/rt-liberation
commit e7779ce1381fe6e00c73f8e506b2870fff170e30
Author: Yoni Rabkin <yrk@gnu.org>
Commit: Yoni Rabkin <yrk@gnu.org>
* rt-liberation-report.el: Add Total, found bug.
---
rt-liberation-report.el | 25 +++++++++++++++++++++----
1 file changed, 21 insertions(+), 4 deletions(-)
diff --git a/rt-liberation-report.el b/rt-liberation-report.el
index b2af361..efb958b 100644
--- a/rt-liberation-report.el
+++ b/rt-liberation-report.el
@@ -50,10 +50,11 @@ return `nil'."
(rt-liber-rest-run-ls-query
(rt-liber-compile-query
(and (queue rt-queue)
- (resolved start-date end-date)
+ (resolved end-date start-date)
(status "resolved"))))))
(defun rt-liber-report-scan-ticket (ticket-alist)
+ "Convert TICKET-ALIST to set format."
(let ((date-resolved (cdr (assoc "Resolved" ticket-alist)))
(owner (cdr (assoc "Owner" ticket-alist))))
`(,(format-time-string "%d-%m-%Y" (date-to-time date-resolved))
@@ -74,6 +75,7 @@ return `nil'."
r))
(defun rt-liber-report-count (f l)
+ "Apply function F to list L to produce a count."
(let (out)
(while l
(let* ((head (car l))
@@ -84,13 +86,23 @@ return `nil'."
(setq l (cdr l)))
out))
+(defun rt-liber-report-count-total (l)
+ (let ((c 0))
+ (while l
+ (setq c (+ c (cdr (car l))))
+ (setq l (cdr l)))
+ c))
+
(defun rt-liber-report-count-by-date (l)
+ "Count resolved tickets by date."
(rt-liber-report-count #'car l))
(defun rt-liber-report-count-by-owner (l)
+ "Count resolved tickets by owner."
(rt-liber-report-count #'cdr l))
(defun rt-liber-report-print-csv (header l)
+ "Output list L in a CSV format, starting with HEADER."
(let (out)
(with-temp-buffer
(insert (format "\n%s\n" header))
@@ -101,12 +113,14 @@ return `nil'."
out))
(defun rt-liber-report (rt-queue start-date end-date)
+ "Print tickets resolved between START-DATE and END-DATE."
(let ((tickets (rt-liber-report-scan-interval
(rt-liber-report-get-interval
- rt-queue end-date start-date)))
+ rt-queue start-date end-date)))
by-date by-owner
by-date-out
- by-owner-out)
+ by-owner-out
+ total)
(when (not tickets)
(error (concat "no tickets in interval between "
start-date " and " end-date)))
@@ -119,9 +133,12 @@ return `nil'."
by-owner
#'(lambda (a b)
(> (cdr a) (cdr b)))))
+ ;; count total
+ (setq total (rt-liber-report-count-total by-owner))
;; print
(insert (rt-liber-report-print-csv "date, resolved" by-date))
- (insert (rt-liber-report-print-csv "owner, resolved" by-owner))))
+ (insert (rt-liber-report-print-csv "owner, resolved" by-owner))
+ (insert (format "\ntotal tickets resolved: %d\n" total))))
(provide 'rt-report)
- [elpa] externals/rt-liberation c95b745 45/72: Update email address., (continued)
- [elpa] externals/rt-liberation c95b745 45/72: Update email address., Stefan Monnier, 2020/08/05
- [elpa] externals/rt-liberation f2d75b7 55/72: * rt-liberation-report.el: pass to main machine., Stefan Monnier, 2020/08/05
- [elpa] externals/rt-liberation a039fb5 56/72: * rt-liberation-report.el: Bump to other machine., Stefan Monnier, 2020/08/05
- [elpa] externals/rt-liberation d683385 63/72: * why-rt-liberation-is-under-gplv3.txt: what it says, Stefan Monnier, 2020/08/05
- [elpa] externals/rt-liberation 5fc9f6d 66/72: friendlier caption, Stefan Monnier, 2020/08/05
- [elpa] externals/rt-liberation dd92e88 65/72: * more upgrade work, Stefan Monnier, 2020/08/05
- [elpa] externals/rt-liberation b152b61 70/72: * rt-liberation.el: complete elpa header, Stefan Monnier, 2020/08/05
- [elpa] externals/rt-liberation cdd81a8 46/72: * rt-report.el: Add new file., Stefan Monnier, 2020/08/05
- [elpa] externals/rt-liberation cd29eac 52/72: Add collation., Stefan Monnier, 2020/08/05
- [elpa] externals/rt-liberation 26d77ec 53/72: * rt-liberation-report.el: Complete first working version., Stefan Monnier, 2020/08/05
- [elpa] externals/rt-liberation e7779ce 54/72: * rt-liberation-report.el: Add Total, found bug.,
Stefan Monnier <=
- [elpa] externals/rt-liberation e3cc2f5 57/72: * rt-liberation-report.el: Fix sorting bug., Stefan Monnier, 2020/08/05
- [elpa] externals/rt-liberation 0cfaa45 59/72: Merge branch 'report', Stefan Monnier, 2020/08/05
- [elpa] externals/rt-liberation bab09f7 64/72: Upgrade to GPLv3, Stefan Monnier, 2020/08/05
- [elpa] externals/rt-liberation 1629dd3 68/72: * why-rt-liberation-is-under-gplv3.txt: better explanation, Stefan Monnier, 2020/08/05
- [elpa] externals/rt-liberation ea3e01b 71/72: * NEWS: new file, Stefan Monnier, 2020/08/05
- [elpa] externals/rt-liberation 277378d 47/72: Rename to fit file naming convention., Stefan Monnier, 2020/08/05
- [elpa] externals/rt-liberation cca328c 49/72: * rt-liberation.el: Add Resolved time predicate., Stefan Monnier, 2020/08/05
- [elpa] externals/rt-liberation 09f7ac0 60/72: * rt-liberation.el: new function rt-liber-print-query, Stefan Monnier, 2020/08/05
- [elpa] externals/rt-liberation 05beb9f 72/72: * rt-liberation.el: remove old cli code, Stefan Monnier, 2020/08/05