Display list of forgotten issues.
authorRicardo Wurmus <rekado@elephly.net>
Sun, 10 May 2020 09:23:16 +0000 (11:23 +0200)
committerRicardo Wurmus <rekado@elephly.net>
Sun, 10 May 2020 09:23:16 +0000 (11:23 +0200)
* mumi/messages.scm (forgotten-issues): New procedure.
* mumi/web/controller.scm (controller): Handle /forgotten URL.
* mumi/web/view/html.scm (list-of-forgotten-issues): New procedure.
(index): Show top 10 forgotten issues.

mumi/messages.scm
mumi/web/controller.scm
mumi/web/view/html.scm

index bc87a4e6ff40ad14493cc9dcb5551b2b7c2b3ae5..1f26535b2352fe5f37eb8e3e8fb16309f44a68dd 100644 (file)
@@ -39,6 +39,7 @@
   #:export (search-bugs
             fetch-bug
             recent-bugs
+            forgotten-issues
             easy-bugs
             wishlist-bugs
             bugs-by-severity
@@ -205,6 +206,14 @@ Intersect the result with the id sets in the list SETS."
                     (min amount (length recent-ids)))))
     (status-with-cache ids)))
 
+(define (forgotten-issues amount)
+  "Return up to AMOUNT issues that appear to have been forgotten
+about."
+  (let* ((forgotten-ids (forgotten-bug-numbers (%config 'packages)))
+         (ids (take (reverse forgotten-ids)
+                    (min amount (length forgotten-ids)))))
+    (status-with-cache ids)))
+
 (define (easy-bugs)
   "Return all bugs that have been tagged \"easy\"."
   (let ((ids (db:bugs-by-tag "easy")))
index 160cfae31f845ca2e41ce08488b16fd047cd9469..ca04f1b92fcfc13908c2df9439d9c6cceb7951f6 100644 (file)
@@ -60,6 +60,8 @@
      (render-html (list-of-matching-bugs "tag:easy" (easy-bugs))))
     (('GET "recent")
      (render-html (list-of-recent-issues)))
+    (('GET "forgotten")
+     (render-html (list-of-forgotten-issues)))
     (('GET "wishlist")
      (render-html
       (list-of-matching-bugs "severity:wishlist is:open"
index 3c7fd0e70c743079b3b9cffeb1484d86ab785044..81524f49e19ca89e6ed47919a63d92252345f2e7 100644 (file)
@@ -32,7 +32,8 @@
             error-page
             issue-page
             list-of-matching-bugs
-            list-of-recent-issues))
+            list-of-recent-issues
+            list-of-forgotten-issues))
 
 (define (bug-subject* bug)
   (or (bug-subject bug) "(no subject)"))
@@ -210,6 +211,19 @@ simple query language.  Here is a list of supported query terms:")
        (tbody
         ,@(list-of-bugs (recent-bugs 10))))
 
+      (div (@ (class "mt-4 h4")) "Forgotten issues "
+           (small (a (@ (href "forgotten")) "(More)")))
+      (table
+       (@ (class "table table-borderless table-hover js-sort-table"))
+       (thead
+        (tr (@ (class "heading"))
+            (th (@ (class "js-sort-number")) "ID")
+            (th "Subject")
+            (th "Date submitted")
+            (th "Status")))
+       (tbody
+        ,@(list-of-bugs (forgotten-issues 10))))
+
       (div (@ (class "mt-4 h4")) "Priority bugs")
       (table
        (@ (class "table table-borderless table-hover js-sort-table"))
@@ -633,6 +647,24 @@ m1 3H6v5h2V4zm0 6H6v2h2v-2z")))))
        (tbody
         ,@(list-of-bugs (recent-bugs max))))))))
 
+(define* (list-of-forgotten-issues #:optional (max 100))
+  (layout
+   #:body
+   `(,(header #:search-bar? #f)
+     (div
+      (@ (class "container"))
+      (h1 "Forgotten issues")
+      (table
+       (@ (class "table table-borderless table-hover js-sort-table"))
+       (thead
+        (tr (@ (class "heading"))
+            (th (@ (class "js-sort-number")) "ID")
+            (th "Subject")
+            (th "Date submitted")
+            (th "Status")))
+       (tbody
+        ,@(list-of-bugs (forgotten-issues max))))))))
+
 (define (list-of-matching-bugs query bugs)
   (layout
    #:body