From 08a2eb2251c83533876ab848ab974b95112dd204 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Dominik=20Pant=C5=AF=C4=8Dek?= Date: Tue, 4 Apr 2023 22:57:14 +0200 Subject: [PATCH] Fix most members base filters. --- src/members-base.scm | 12 +++++++----- src/members-payments.scm | 10 +++++----- src/members-print.scm | 12 ++++++------ 3 files changed, 18 insertions(+), 16 deletions(-) diff --git a/src/members-base.scm b/src/members-base.scm index 754ed53..4deb1c4 100644 --- a/src/members-base.scm +++ b/src/members-base.scm @@ -207,10 +207,12 @@ ;; Returns new members base with member records matching the ;; predicate processed by proc. (define (members-base-update mb pred? proc) - (map (lambda (mr) - (if (pred? mr) - (proc mr) - mr)) - mb)) + (dict-set mb + 'members + (map (lambda (mr) + (if (pred? mr) + (proc mr) + mr)) + (members-base-members mb)))) ) diff --git a/src/members-payments.scm b/src/members-payments.scm index b0859f3..650768b 100644 --- a/src/members-payments.scm +++ b/src/members-payments.scm @@ -128,11 +128,11 @@ (let* ((acc-list (load-accounts-list apikeys-file)) (accounts (if acc-list (load-accounts acc-list dir) #f))) (if accounts - (map member-sort-payments - (foldl members-payments-process-bank - mb - (filter identity - accounts))) + (let ((mbp (foldl members-payments-process-bank + mb + (filter identity + accounts)))) + (members-base-update mb identity member-sort-payments)) (let () (print "Warning: no accounts loaded!") mb))) diff --git a/src/members-print.scm b/src/members-print.scm index 2ec3673..959fb85 100644 --- a/src/members-print.scm +++ b/src/members-print.scm @@ -222,10 +222,10 @@ (member-records->string (sort destroyed-mrs memberstring (sort student-mrs member= (member-suspended-months mr) 24))))) + (>= (member-suspended-months mr) 24)) + suspended-mrs))) (when (not (null? suspended2)) (print (ansi #:magenta) " Suspended for at least 24 months (" (length suspended2) "): " a:default @@ -266,11 +266,11 @@ (members-table-row a:highlight "Students:" student-mrs "~N~E") (members-table-row a:warning "Suspended:" suspended-mrs "~N~E") (members-table-row a:warning "Destroyed:" destroyed-mrs "~N~E") - (let ((suspended2 (filter-members-by-predicate - suspended-mrs + (let ((suspended2 (filter (lambda (mr) (>= (member-suspended-months mr) - (*member-suspend-max-months*)))))) + (*member-suspend-max-months*))) + suspended-mrs))) (if (null? suspended2) #f (members-table-row (ansi #:magenta) "Suspended (long):" suspended2 "~N (~S)")))