Destroyed, students, suspended predicates and base info.

This commit is contained in:
Dominik Pantůček 2023-03-19 07:53:48 +01:00
parent 4b453162cf
commit faf18b928e
3 changed files with 20 additions and 15 deletions

View file

@ -35,6 +35,7 @@
a:neutral a:neutral
a:default a:default
a:muted a:muted
a:highlight
ansi-tests! ansi-tests!
) )
@ -79,6 +80,7 @@
(define a:neutral (ansi #:default #:white)) (define a:neutral (ansi #:default #:white))
(define a:default (ansi #:default)) (define a:default (ansi #:default))
(define a:muted (ansi #:black #:bold)) (define a:muted (ansi #:black #:bold))
(define a:highlight (ansi #:blue #:bold))
;; Performs ANSI module self-tests. ;; Performs ANSI module self-tests.
(define (ansi-tests!) (define (ansi-tests!)

View file

@ -98,9 +98,14 @@
(month-in-periods? periods)))) (month-in-periods? periods))))
;; Returns true if the member is now suspended ;; Returns true if the member is now suspended
(define member-suspended? (define member-is-suspended?
(member-period-predicate? 'suspend)) (member-period-predicate? 'suspend))
;; Suspended must not be destroyed
(define (member-suspended? mr)
(and (member-is-suspended? mr)
(not (member-destroyed? mr))))
;; True if the member is student ;; True if the member is student
(define member-is-student? (define member-is-student?
(member-period-predicate? 'student)) (member-period-predicate? 'student))

View file

@ -51,7 +51,8 @@
dictionary dictionary
member-file member-file
primes primes
member-record) member-record
ansi)
;; Gets all files and symbolic links from given directory. The ;; Gets all files and symbolic links from given directory. The
;; symbolic links are represented by cons cells with car being the ;; symbolic links are represented by cons cells with car being the
@ -250,14 +251,8 @@
(define (print-members-base-info mb) (define (print-members-base-info mb)
(let ((nicks (list-members-nicks mb)) (let ((nicks (list-members-nicks mb))
(ids (list-members-ids mb))) (ids (list-members-ids mb)))
(print "Members (" (print "Known members: "
(length nicks) (length nicks))
"): "
(string-intersperse
(sort
nicks
string<?)
", "))
(print "Total IDs: " (print "Total IDs: "
(length ids) (length ids)
" (" (length (filter is-4digit-prime? ids)) " valid)") " (" (length (filter is-4digit-prime? ids)) " valid)")
@ -266,17 +261,20 @@
(suspended-mrs (filter-members-by-predicate mb member-suspended?)) (suspended-mrs (filter-members-by-predicate mb member-suspended?))
(destroyed-mrs (filter-members-by-predicate mb member-destroyed?)) (destroyed-mrs (filter-members-by-predicate mb member-destroyed?))
(student-mrs (filter-members-by-predicate mb member-student?))) (student-mrs (filter-members-by-predicate mb member-student?)))
(print " Active (" (length active-mrs) "): " (print a:success " Active (" (length active-mrs) "): " a:default
(member-records->nicks-string active-mrs)) (member-records->nicks-string active-mrs))
(print " Suspended (" (length suspended-mrs) "): " (print a:warning " Suspended (" (length suspended-mrs) "): " a:default
(member-records->nicks-string suspended-mrs)) (member-records->nicks-string suspended-mrs))
(print " Students (" (length student-mrs) "): " (print a:warning " Destroyed (" (length destroyed-mrs) "): " a:default
(member-records->nicks-string destroyed-mrs))
(print a:highlight " Students (" (length student-mrs) "): " a:default
(member-records->nicks-string student-mrs)) (member-records->nicks-string student-mrs))
(when (not (null? invalid-ids)) (when (not (null? invalid-ids))
(print " Invalid (" (length invalid-ids) "): " (print a:error " Invalid (" (length invalid-ids) "): "
(string-intersperse (string-intersperse
(map number->string invalid-ids) (map number->string invalid-ids)
", ")))))) ", ")
a:default)))))
;; Performs self-tests of this module. ;; Performs self-tests of this module.
(define (members-base-tests!) (define (members-base-tests!)