Advanced accessors.

This commit is contained in:
Dominik Pantůček 2023-04-11 22:38:22 +02:00
parent 4bd6837e08
commit 12a911bbff
7 changed files with 25 additions and 25 deletions

View file

@ -48,9 +48,9 @@
(if (eq? ch #\~) (if (eq? ch #\~)
(loop (cddr fmtl) (loop (cddr fmtl)
(cons (case (cadr fmtl) (cons (case (cadr fmtl)
((#\N) (member-nick mr)) ((#\N) (brmember-nick mr))
((#\I) (number->string (member-id mr))) ((#\I) (number->string (brmember-id mr)))
((#\S) (number->string (member-suspended-months mr))) ((#\S) (number->string (brmember-suspended-months mr)))
((#\E) ((#\E)
(let ((n (length (ldict-ref mr 'highlights '())))) (let ((n (length (ldict-ref mr 'highlights '()))))
(if (eq? n 0) (if (eq? n 0)

View file

@ -57,9 +57,9 @@
brmember-existing? brmember-existing?
brmember-flags brmember-flags
member-nick brmember-nick
member-id brmember-id
member-suspended-months brmember-suspended-months
member<? member<?
@ -245,7 +245,7 @@
(define (brmember-has-problems? mr) (define (brmember-has-problems? mr)
(or (member-has-errors? mr) (or (member-has-errors? mr)
(not (brmember-usable? mr)) (not (brmember-usable? mr))
(not (is-4digit-prime? (member-id mr))))) (not (is-4digit-prime? (brmember-id mr)))))
;; Returns true if the member record represents non-existing ;; Returns true if the member record represents non-existing
;; member. The *current-month* is a global parameter from period ;; member. The *current-month* is a global parameter from period
@ -302,16 +302,16 @@
(if (brmember-existing? mr) 'existing #f)))) (if (brmember-existing? mr) 'existing #f))))
;; Nickname as string ;; Nickname as string
(define (member-nick mr) (define (brmember-nick mr)
(brmember-info mr 'nick)) (brmember-info mr 'nick))
;; Returns member id ;; Returns member id
(define (member-id mr) (define (brmember-id mr)
(ldict-ref mr 'id)) (ldict-ref mr 'id))
;; Returns the number of months the user is suspended. Zero if not ;; Returns the number of months the user is suspended. Zero if not
;; suspended. ;; suspended.
(define (member-suspended-months mr) (define (brmember-suspended-months mr)
(if (brmember-suspended? mr) (if (brmember-suspended? mr)
(let ((period (periods-match (brmember-info mr 'suspend)))) (let ((period (periods-match (brmember-info mr 'suspend))))
(if period (if period
@ -321,8 +321,8 @@
;; Comparator of member records based on nickname. ;; Comparator of member records based on nickname.
(define (member<? a b) (define (member<? a b)
(string-ci<? (member-nick a) (string-ci<? (brmember-nick a)
(member-nick b))) (brmember-nick b)))
;; Prepends new payment to given member record payments ;; Prepends new payment to given member record payments
(define (member-record-add-payment mr pt) (define (member-record-add-payment mr pt)

View file

@ -330,8 +330,8 @@
(let loop ((lst nmembers)) (let loop ((lst nmembers))
(when (and (not (null? lst)) (when (and (not (null? lst))
(or (not mr) (or (not mr)
(eq? (member-id mr) (eq? (brmember-id mr)
(member-id (car lst))))) (brmember-id (car lst)))))
(if (-send-emails-) (if (-send-emails-)
(make+send-reminder-email (car lst)) (make+send-reminder-email (car lst))
(make+print-reminder-email (car lst))) (make+print-reminder-email (car lst)))

View file

@ -132,7 +132,7 @@
(filter-members-by-predicate (filter-members-by-predicate
mb mb
(lambda (mr) (lambda (mr)
(substring-index pat (member-nick mr))))) (substring-index pat (brmember-nick mr)))))
;; Returns all ids found in the database ;; Returns all ids found in the database
(define (list-members-ids mb) (define (list-members-ids mb)
@ -161,7 +161,7 @@
(let* ((members (filter-members-by-predicate mb-arg brmember-usable?)) (let* ((members (filter-members-by-predicate mb-arg brmember-usable?))
(di0 (make-ldict)) (di0 (make-ldict))
(di1 (ldict-set di0 'invalid (di1 (ldict-set di0 'invalid
(filter (compose not is-4digit-prime? member-id) members))) (filter (compose not is-4digit-prime? brmember-id) members)))
(di2 (ldict-set di1 'active (di2 (ldict-set di1 'active
(filter brmember-active? members))) (filter brmember-active? members)))
(di3 (ldict-set di2 'suspended (di3 (ldict-set di2 'suspended

View file

@ -99,7 +99,7 @@
(members-base-update (members-base-update
mb mb
(lambda (mr) (lambda (mr)
(compare-member-id (member-id mr) varsym-id)) (compare-member-id (brmember-id mr) varsym-id))
(lambda (mr) (lambda (mr)
(member-record-add-payment mr transaction))) (member-record-add-payment mr transaction)))
(if (and (or (not last-checked) (if (and (or (not last-checked)

View file

@ -77,7 +77,7 @@
(map symbol->string aliases) (map symbol->string aliases)
", ")) ", "))
(when (brmember-suspended? mr) (when (brmember-suspended? mr)
(print " Suspended for " (member-suspended-months mr) " months.")) (print " Suspended for " (brmember-suspended-months mr) " months."))
(newline) (newline)
(let loop ((sinfo sinfo)) (let loop ((sinfo sinfo))
(when (not (null? sinfo)) (when (not (null? sinfo))
@ -89,7 +89,7 @@
;; Returns nicely formatted table ;; Returns nicely formatted table
(define (member-info->table mr) (define (member-info->table mr)
(let* ((aliases (ldict-ref mr 'symlinks)) (let* ((aliases (ldict-ref mr 'symlinks))
(mid (member-id mr)) (mid (brmember-id mr))
(head (list (if (is-4digit-prime? mid) (head (list (if (is-4digit-prime? mid)
(list "ID:" mid) (list "ID:" mid)
(list (ansi-string #:red #:bold "ID:") (list (ansi-string #:red #:bold "ID:")
@ -98,7 +98,7 @@
(string-intersperse (map symbol->string aliases) ", ")) (string-intersperse (map symbol->string aliases) ", "))
(if (brmember-suspended? mr) (if (brmember-suspended? mr)
(list "Suspended for:" (list "Suspended for:"
(let ((msm (member-suspended-months mr))) (let ((msm (brmember-suspended-months mr)))
(sprintf "~A month~A" msm (sprintf "~A month~A" msm
(if (> msm 1) "s" "")))) (if (> msm 1) "s" ""))))
#f))) #f)))
@ -228,7 +228,7 @@
(member-records->string (sort student-mrs member<?))) (member-records->string (sort student-mrs member<?)))
(let ((suspended2 (filter (let ((suspended2 (filter
(lambda (mr) (lambda (mr)
(>= (member-suspended-months mr) 24)) (>= (brmember-suspended-months mr) 24))
suspended-mrs))) suspended-mrs)))
(when (not (null? suspended2)) (when (not (null? suspended2))
(print (ansi #:magenta) " Suspended for at least 24 months (" (print (ansi #:magenta) " Suspended for at least 24 months ("
@ -272,7 +272,7 @@
(members-table-row a:warning "Destroyed:" destroyed-mrs "~N~E") (members-table-row a:warning "Destroyed:" destroyed-mrs "~N~E")
(let ((suspended2 (filter (let ((suspended2 (filter
(lambda (mr) (lambda (mr)
(>= (member-suspended-months mr) (>= (brmember-suspended-months mr)
(*member-suspend-max-months*))) (*member-suspend-max-months*)))
suspended-mrs))) suspended-mrs)))
(if (null? suspended2) (if (null? suspended2)
@ -350,7 +350,7 @@
(credit (ldict-ref balance 'credit)) (credit (ldict-ref balance 'credit))
(payment (ldict-ref balance 'payment)) (payment (ldict-ref balance 'payment))
(total (- (+ credit payment) fees))) (total (- (+ credit payment) fees)))
(list (member-nick mr) (list (brmember-nick mr)
(if (brmember-suspended? mr) (if (brmember-suspended? mr)
'suspended 'suspended
(if (brmember-student? mr) (if (brmember-student? mr)

View file

@ -50,8 +50,8 @@
;; Generate all the files in specified (default current) directory. ;; Generate all the files in specified (default current) directory.
(define (gen-web-static-member mr . dirs) (define (gen-web-static-member mr . dirs)
(let ((nick (member-nick mr)) (let ((nick (brmember-nick mr))
(id (member-id mr)) (id (brmember-id mr))
(dir (if (null? dirs) (dir (if (null? dirs)
(current-directory) (current-directory)
(car dirs)))) (car dirs))))