diff --git a/ansi.scm b/ansi.scm index 64e7cdf..636f3cf 100644 --- a/ansi.scm +++ b/ansi.scm @@ -35,6 +35,7 @@ a:neutral a:default a:muted + a:highlight ansi-tests! ) @@ -79,6 +80,7 @@ (define a:neutral (ansi #:default #:white)) (define a:default (ansi #:default)) (define a:muted (ansi #:black #:bold)) + (define a:highlight (ansi #:blue #:bold)) ;; Performs ANSI module self-tests. (define (ansi-tests!) diff --git a/member-record.scm b/member-record.scm index 6d6ab47..efa6d1e 100644 --- a/member-record.scm +++ b/member-record.scm @@ -98,9 +98,14 @@ (month-in-periods? periods)))) ;; Returns true if the member is now suspended - (define member-suspended? + (define member-is-suspended? (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 (define member-is-student? (member-period-predicate? 'student)) diff --git a/members-base.scm b/members-base.scm index f1e40fa..397c15c 100644 --- a/members-base.scm +++ b/members-base.scm @@ -51,7 +51,8 @@ dictionary member-file primes - member-record) + member-record + ansi) ;; Gets all files and symbolic links from given directory. The ;; symbolic links are represented by cons cells with car being the @@ -250,14 +251,8 @@ (define (print-members-base-info mb) (let ((nicks (list-members-nicks mb)) (ids (list-members-ids mb))) - (print "Members (" - (length nicks) - "): " - (string-intersperse - (sort - nicks - stringnicks-string active-mrs)) - (print " Suspended (" (length suspended-mrs) "): " + (print a:warning " Suspended (" (length suspended-mrs) "): " a:default (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)) (when (not (null? invalid-ids)) - (print " Invalid (" (length invalid-ids) "): " + (print a:error " Invalid (" (length invalid-ids) "): " (string-intersperse (map number->string invalid-ids) - ", ")))))) + ", ") + a:default))))) ;; Performs self-tests of this module. (define (members-base-tests!)