From 0d649c2fd05d7e54f49b5ecd4698e180cf360e38 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Dominik=20Pant=C5=AF=C4=8Dek?= Date: Sun, 9 Apr 2023 20:39:59 +0200 Subject: [PATCH] Finish the migration. --- src/cards.scm | 12 ++++---- src/members-base.scm | 54 ++++++++++++++++++------------------ src/members-payments.scm | 14 +++++----- src/members-print.scm | 60 ++++++++++++++++++++-------------------- 4 files changed, 70 insertions(+), 70 deletions(-) diff --git a/src/cards.scm b/src/cards.scm index 3b0bb95..b48f88a 100644 --- a/src/cards.scm +++ b/src/cards.scm @@ -36,7 +36,7 @@ (chicken sort) (chicken format) (chicken irregex) - dictionary + util-dict-list members-base member-record) @@ -46,12 +46,12 @@ mb (lambda (mr) (and (member-active? mr) - (dict-has-key? (dict-ref mr 'info) type) - (not (null? (dict-ref (dict-ref mr 'info) type))))))) + (ldict-contains? (ldict-ref mr 'info) type) + (not (null? (ldict-ref (ldict-ref mr 'info) type))))))) (recs (map (lambda (mr) - (let ((mi (dict-ref mr 'info))) - (cons (dict-ref mi 'nick) - (dict-ref mi type)))) + (let ((mi (ldict-ref mr 'info))) + (cons (ldict-ref mi 'nick) + (ldict-ref mi type)))) rmb)) (srecs (sort recs (lambda (a b) diff --git a/src/members-base.scm b/src/members-base.scm index dc50459..8ae7e9f 100644 --- a/src/members-base.scm +++ b/src/members-base.scm @@ -54,7 +54,7 @@ (chicken sort) testing util-list - dictionary + util-dict-list primes member-record ansi @@ -71,25 +71,25 @@ (define (load-members dn . opts) (let ((progress? (and (not (null? opts)) (car opts)))) - (make-dict + (make-ldict `((members . ,(with-progress% progress? "members" (let* ((fss (load-members-dir dn)) - (tot (sub1 (length (dict-keys fss)))) - (mb0 (dict-map + (tot (sub1 (length (ldict-keys fss)))) + (mb0 (ldict-map (lambda (symfn symlinks prg) (progress%-advance (/ prg tot)) (members-dir-load-member dn symfn symlinks)) fss)) - (mb1 (dict-reduce (make-dict) + (mb1 (ldict-reduce (make-ldict) (lambda (acc symfn mr) - (dict-set acc (dict-ref mr 'id) mr)) + (ldict-set acc (ldict-ref mr 'id) mr)) mb0)) - (mb (dict-reduce '() + (mb (ldict-reduce '() (lambda (acc id mr) (cons mr acc)) mb1))) @@ -97,7 +97,7 @@ ;; Returns the internal members list (define (members-base-members mb) - (dict-ref mb 'members)) + (ldict-ref mb 'members)) ;; Gets member based by generic predicate (define (find-member-by-predicate mb pred) @@ -114,7 +114,7 @@ (find-member-by-predicate mb (lambda (mr) - (eq? (dict-ref mr 'id) id)))) + (eq? (ldict-ref mr 'id) id)))) ;; Returns member record found by id (define (find-member-by-nick mb nick) @@ -122,8 +122,8 @@ mb (lambda (mr) (string-ci=? - (dict-ref - (dict-ref mr 'info) + (ldict-ref + (ldict-ref mr 'info) 'nick) nick)))) @@ -136,7 +136,7 @@ ;; Returns all ids found in the database (define (list-members-ids mb) - (map (lambda (mr) (dict-ref mr 'id)) + (map (lambda (mr) (ldict-ref mr 'id)) (members-base-members mb))) ;; Returns a list of members which match given predicate. @@ -153,25 +153,25 @@ ;; Returns all nicks found in the database (define (list-members-nicks mb) - (map (lambda (mr) (dict-ref (dict-ref mr 'info) 'nick)) + (map (lambda (mr) (ldict-ref (ldict-ref mr 'info) 'nick)) (members-base-members mb))) ;; Returns dictionary with statistics about the members base. (define (members-base-info mb-arg) (let* ((members (filter-members-by-predicate mb-arg member-record-usable?)) - (di0 (make-dict)) - (di1 (dict-set di0 'invalid + (di0 (make-ldict)) + (di1 (ldict-set di0 'invalid (filter (compose not is-4digit-prime? member-id) members))) - (di2 (dict-set di1 'active + (di2 (ldict-set di1 'active (filter member-active? members))) - (di3 (dict-set di2 'suspended + (di3 (ldict-set di2 'suspended (filter member-suspended? members))) - (di4 (dict-set di3 'students + (di4 (ldict-set di3 'students (filter member-student? members))) - (di5 (dict-set di4 'destroyed + (di5 (ldict-set di4 'destroyed (filter member-destroyed? members))) - (di6 (dict-set di5 'month (*current-month*))) - (di7 (dict-set di6 'total members))) + (di6 (ldict-set di5 'month (*current-month*))) + (di7 (ldict-set di6 'total members))) di7)) (define (members-base-oldest-month mb) @@ -186,12 +186,12 @@ (if (monthtable mr) - (let* ((aliases (dict-ref mr 'symlinks)) + (let* ((aliases (ldict-ref mr 'symlinks)) (mid (member-id mr)) (head (list (if (is-4digit-prime? mid) (list "ID:" mid) @@ -101,14 +101,14 @@ (sprintf "~A month~A" msm (if (> msm 1) "s" "")))) #f))) - (info (dict-ref mr 'info)) - (sikeys (sort (dict-keys info) + (info (ldict-ref mr 'info)) + (sikeys (sort (ldict-keys info) (lambda (a b) (stringstring a) (symbol->string b))))) (body (map (lambda (k) - (let ((v (dict-ref info k))) + (let ((v (ldict-ref info k))) (case k ((card desfire credit) (list k @@ -154,9 +154,9 @@ #:row0-border #t #:col-border #t)) (let* ((balance (member-balance mr)) - (fees (dict-ref balance 'fees)) - (credit (dict-ref balance 'credit)) - (payment (dict-ref balance 'payment)) + (fees (ldict-ref balance 'fees)) + (credit (ldict-ref balance 'credit)) + (payment (ldict-ref balance 'payment)) (total (- (+ credit payment) fees))) (print "Total fees: " fees) (print "Total credit: " credit) @@ -167,8 +167,8 @@ ;; Nicely prints the member source with any errors recorded. (define (print-member-source mr) (let* ((lines (member-source mr)) - (file-name (dict-ref mr 'file-name)) - (hls (dict-ref mr 'highlights '()))) + (file-name (ldict-ref mr 'file-name)) + (hls (ldict-ref mr 'highlights '()))) (print file-name ":") (print-source-listing lines @@ -212,11 +212,11 @@ (print "Known members: " (length nicks)) (let* ((bi (members-base-info mb)) - (invalid-mrs (dict-ref bi 'invalid)) - (active-mrs (dict-ref bi 'active)) - (suspended-mrs (dict-ref bi 'suspended)) - (destroyed-mrs (dict-ref bi 'destroyed)) - (student-mrs (dict-ref bi 'students))) + (invalid-mrs (ldict-ref bi 'invalid)) + (active-mrs (ldict-ref bi 'active)) + (suspended-mrs (ldict-ref bi 'suspended)) + (destroyed-mrs (ldict-ref bi 'destroyed)) + (student-mrs (ldict-ref bi 'students))) (print a:success " Active (" (length active-mrs) "): " a:default (member-records->string (sort active-mrs member