Rename info and stats.
This commit is contained in:
parent
e4ad273b06
commit
e54e4bd016
4 changed files with 26 additions and 22 deletions
|
@ -256,7 +256,7 @@
|
||||||
(newline)
|
(newline)
|
||||||
(parameterize ((current-output-port (open-output-file (-fname-))))
|
(parameterize ((current-output-port (open-output-file (-fname-))))
|
||||||
(print-members-base-stats
|
(print-members-base-stats
|
||||||
(members-base-stats MB))))
|
(mbase-stats MB))))
|
||||||
((print-member-file)
|
((print-member-file)
|
||||||
(cond (mr
|
(cond (mr
|
||||||
(newline)
|
(newline)
|
||||||
|
|
|
@ -45,12 +45,16 @@
|
||||||
mbase-free-ids
|
mbase-free-ids
|
||||||
mbase-gen-id
|
mbase-gen-id
|
||||||
|
|
||||||
members-base-info
|
mbase-update
|
||||||
members-base-stats
|
|
||||||
members-base-update
|
mbase-info
|
||||||
|
mbase-stats
|
||||||
|
|
||||||
members-base-add-unpaired
|
members-base-add-unpaired
|
||||||
members-base-unpaired
|
members-base-unpaired
|
||||||
|
|
||||||
members-base-active-emails
|
members-base-active-emails
|
||||||
|
|
||||||
members-base-merge-mailman
|
members-base-merge-mailman
|
||||||
)
|
)
|
||||||
|
|
||||||
|
@ -177,8 +181,19 @@
|
||||||
(vfids (list->vector fids)))
|
(vfids (list->vector fids)))
|
||||||
(vector-ref vfids (pseudo-random-integer (vector-length vfids)))))
|
(vector-ref vfids (pseudo-random-integer (vector-length vfids)))))
|
||||||
|
|
||||||
|
;; Returns new members base with member records matching the
|
||||||
|
;; predicate processed by proc.
|
||||||
|
(define (mbase-update mb pred? proc)
|
||||||
|
(ldict-set mb
|
||||||
|
'members
|
||||||
|
(map (lambda (mr)
|
||||||
|
(if (pred? mr)
|
||||||
|
(proc mr)
|
||||||
|
mr))
|
||||||
|
(mbase-members mb))))
|
||||||
|
|
||||||
;; Returns dictionary with statistics about the members base.
|
;; Returns dictionary with statistics about the members base.
|
||||||
(define (members-base-info mb-arg)
|
(define (mbase-info mb-arg)
|
||||||
(let* ((members (find-members-by-predicate mb-arg brmember-usable?))
|
(let* ((members (find-members-by-predicate mb-arg brmember-usable?))
|
||||||
(di0 (make-ldict))
|
(di0 (make-ldict))
|
||||||
(di1 (ldict-set di0 'invalid
|
(di1 (ldict-set di0 'invalid
|
||||||
|
@ -200,13 +215,13 @@
|
||||||
|
|
||||||
;; Returns a list two lists: keys, data.
|
;; Returns a list two lists: keys, data.
|
||||||
;; Each data record contains values for all keys.
|
;; Each data record contains values for all keys.
|
||||||
(define (members-base-stats mb)
|
(define (mbase-stats mb)
|
||||||
(let ((keys '(month total active suspended students destroyed invalid)))
|
(let ((keys '(month total active suspended students destroyed invalid)))
|
||||||
(let mloop ((data '())
|
(let mloop ((data '())
|
||||||
(month (members-base-oldest-month mb)))
|
(month (members-base-oldest-month mb)))
|
||||||
(if (month<? month (*current-month*))
|
(if (month<? month (*current-month*))
|
||||||
(let ((bi (parameterize ((*current-month* month))
|
(let ((bi (parameterize ((*current-month* month))
|
||||||
(members-base-info mb))))
|
(mbase-info mb))))
|
||||||
(let kloop ((row (list (ldict-ref bi 'month)))
|
(let kloop ((row (list (ldict-ref bi 'month)))
|
||||||
(keys (cdr keys)))
|
(keys (cdr keys)))
|
||||||
(if (null? keys)
|
(if (null? keys)
|
||||||
|
@ -216,17 +231,6 @@
|
||||||
(cdr keys)))))
|
(cdr keys)))))
|
||||||
(list keys (reverse data))))))
|
(list keys (reverse data))))))
|
||||||
|
|
||||||
;; Returns new members base with member records matching the
|
|
||||||
;; predicate processed by proc.
|
|
||||||
(define (members-base-update mb pred? proc)
|
|
||||||
(ldict-set mb
|
|
||||||
'members
|
|
||||||
(map (lambda (mr)
|
|
||||||
(if (pred? mr)
|
|
||||||
(proc mr)
|
|
||||||
mr))
|
|
||||||
(mbase-members mb))))
|
|
||||||
|
|
||||||
;; Adds unpaired transaction to given members-base
|
;; Adds unpaired transaction to given members-base
|
||||||
(define (members-base-add-unpaired mb tr)
|
(define (members-base-add-unpaired mb tr)
|
||||||
(ldict-set mb 'unpaired
|
(ldict-set mb 'unpaired
|
||||||
|
@ -255,7 +259,7 @@
|
||||||
(let ((listname (car ml))
|
(let ((listname (car ml))
|
||||||
(emails (cdr ml)))
|
(emails (cdr ml)))
|
||||||
(foldl (lambda (mb email)
|
(foldl (lambda (mb email)
|
||||||
(members-base-update mb
|
(mbase-update mb
|
||||||
(lambda (mr)
|
(lambda (mr)
|
||||||
(equal? (brmember-info mr 'mail #f)
|
(equal? (brmember-info mr 'mail #f)
|
||||||
email))
|
email))
|
||||||
|
|
|
@ -96,7 +96,7 @@
|
||||||
(varsym-id (transaction-extract-member-id transaction))
|
(varsym-id (transaction-extract-member-id transaction))
|
||||||
(bmember (find-member-by-id mb varsym-id)))
|
(bmember (find-member-by-id mb varsym-id)))
|
||||||
(loop (if bmember
|
(loop (if bmember
|
||||||
(members-base-update
|
(mbase-update
|
||||||
mb
|
mb
|
||||||
(lambda (mr)
|
(lambda (mr)
|
||||||
(compare-member-id (brmember-id mr) varsym-id))
|
(compare-member-id (brmember-id mr) varsym-id))
|
||||||
|
@ -162,7 +162,7 @@
|
||||||
(idx 0)
|
(idx 0)
|
||||||
(accounts all-accounts))
|
(accounts all-accounts))
|
||||||
(if (null? accounts)
|
(if (null? accounts)
|
||||||
(let ((mb (members-base-update mb identity member-sort-payments)))
|
(let ((mb (mbase-update mb identity member-sort-payments)))
|
||||||
(progress%-advance 1)
|
(progress%-advance 1)
|
||||||
mb)
|
mb)
|
||||||
(let ()
|
(let ()
|
||||||
|
|
|
@ -194,7 +194,7 @@
|
||||||
|
|
||||||
;; Prints nicely aligned members base info
|
;; Prints nicely aligned members base info
|
||||||
(define (print-members-base-table mb)
|
(define (print-members-base-table mb)
|
||||||
(let* ((bi (members-base-info mb))
|
(let* ((bi (mbase-info mb))
|
||||||
(all-mrs (ldict-ref bi 'total))
|
(all-mrs (ldict-ref bi 'total))
|
||||||
(invalid-mrs (ldict-ref bi 'invalid))
|
(invalid-mrs (ldict-ref bi 'invalid))
|
||||||
(active-mrs (ldict-ref bi 'active))
|
(active-mrs (ldict-ref bi 'active))
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue