Use members list everywhere in members-base.
This commit is contained in:
parent
78164ecafe
commit
f2874ebe5d
1 changed files with 17 additions and 12 deletions
|
@ -89,9 +89,13 @@
|
|||
mb1)))
|
||||
mb)))))))
|
||||
|
||||
;; Returns the internal members list
|
||||
(define (members-base-members mb)
|
||||
(dict-ref mb 'members))
|
||||
|
||||
;; Gets member based by generic predicate
|
||||
(define (find-member-by-predicate mb pred)
|
||||
(let loop ((mdb mb))
|
||||
(let loop ((mdb (members-base-members mb)))
|
||||
(if (null? mdb)
|
||||
#f
|
||||
(let ((mr (car mdb)))
|
||||
|
@ -126,11 +130,12 @@
|
|||
|
||||
;; Returns all ids found in the database
|
||||
(define (list-members-ids mb)
|
||||
(map (lambda (mr) (dict-ref mr 'id)) mb))
|
||||
(map (lambda (mr) (dict-ref mr 'id))
|
||||
(members-base-members mb)))
|
||||
|
||||
;; Returns a list of members which match given predicate.
|
||||
(define (filter-members-by-predicate mb pred)
|
||||
(let loop ((mb mb)
|
||||
(let loop ((mb (members-base-members mb))
|
||||
(res '()))
|
||||
(if (null? mb)
|
||||
res
|
||||
|
@ -142,25 +147,25 @@
|
|||
|
||||
;; Returns all nicks found in the database
|
||||
(define (list-members-nicks mb)
|
||||
(map (lambda (mr) (dict-ref (dict-ref mr 'info) 'nick)) mb))
|
||||
(map (lambda (mr) (dict-ref (dict-ref mr 'info) 'nick))
|
||||
(members-base-members mb)))
|
||||
|
||||
;; Returns dictionary with statistics about the members base.
|
||||
(define (members-base-info mb-arg)
|
||||
(let* ((mb (filter-members-by-predicate mb-arg member-record-usable?))
|
||||
(let* ((members (filter-members-by-predicate mb-arg member-record-usable?))
|
||||
(di0 (make-dict))
|
||||
(di1 (dict-set di0 'invalid
|
||||
(filter-members-by-predicate mb
|
||||
(compose not is-4digit-prime? member-id))))
|
||||
(filter (compose not is-4digit-prime? member-id) members)))
|
||||
(di2 (dict-set di1 'active
|
||||
(filter-members-by-predicate mb member-active?)))
|
||||
(filter member-active? members)))
|
||||
(di3 (dict-set di2 'suspended
|
||||
(filter-members-by-predicate mb member-suspended?)))
|
||||
(filter member-suspended? members)))
|
||||
(di4 (dict-set di3 'students
|
||||
(filter-members-by-predicate mb member-student?)))
|
||||
(filter member-student? members)))
|
||||
(di5 (dict-set di4 'destroyed
|
||||
(filter-members-by-predicate mb member-destroyed?)))
|
||||
(filter member-destroyed? members)))
|
||||
(di6 (dict-set di5 'month (*current-month*)))
|
||||
(di7 (dict-set di6 'total mb)))
|
||||
(di7 (dict-set di6 'total members)))
|
||||
di7))
|
||||
|
||||
(define (members-base-oldest-month mb)
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue