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

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[elpa] externals/rt-liberation e3cc2f5 57/72: * rt-liberation-report.el:


From: Stefan Monnier
Subject: [elpa] externals/rt-liberation e3cc2f5 57/72: * rt-liberation-report.el: Fix sorting bug.
Date: Wed, 5 Aug 2020 11:57:44 -0400 (EDT)

branch: externals/rt-liberation
commit e3cc2f57ddfc5fb7392fa7889f138ef044d0e1ab
Author: Yoni Rabkin <yrk@gnu.org>
Commit: Yoni Rabkin <yrk@gnu.org>

    * rt-liberation-report.el: Fix sorting bug.
---
 rt-liberation-report.el | 20 +++++++++-----------
 1 file changed, 9 insertions(+), 11 deletions(-)

diff --git a/rt-liberation-report.el b/rt-liberation-report.el
index d6f8182..b5bd0b0 100644
--- a/rt-liberation-report.el
+++ b/rt-liberation-report.el
@@ -57,8 +57,7 @@ return `nil'."
   "Convert TICKET-ALIST to set format."
   (let ((date-resolved (cdr (assoc "Resolved" ticket-alist)))
        (owner         (cdr (assoc "Owner" ticket-alist))))
-    `(,(format-time-string "%s" (date-to-time date-resolved))
-      . ,owner)))
+    `(,(float-time (date-to-time date-resolved)) . ,owner)))
 
 (defun rt-liber-report-scan-interval (interval)
   "Convert the list of tickets into an ordered format."
@@ -66,16 +65,17 @@ return `nil'."
     (error "no tickets in interval"))
   (let ((l (copy-tree interval))
        (r nil))
-
-    ;; the solution is to first convert to seconds, then sort, then
-    ;; finally convert to YYYY-MM-DD format
-    
     (while l
       (setq r (append r `(,(rt-liber-report-scan-ticket (car l)))))
       (setq l (cdr l)))
+    ;; sort the list when it is still in seconds format
     (setq r (sort r
                  #'(lambda (a b)
-                     (string-lessp (car a) (car b)))))
+                     (< (car a) (car b)))))
+    ;; change the sorted list by day-date format, so that we can
+    ;; pigeon-hole count by day later on
+    (dolist (e r)
+      (setcar e (format-time-string "%Y-%m-%d" (car e))))
     r))
 
 (defun rt-liber-report-count (f l)
@@ -119,10 +119,8 @@ return `nil'."
 (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 start-date end-date)
-                 __foo
-                 ))
+                 (rt-liber-report-get-interval
+                  rt-queue start-date end-date)))
        by-date by-owner
        by-date-out
        by-owner-out



reply via email to

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