Finish card splitting to pairs of id and label.

This commit is contained in:
Dominik Pantůček 2023-03-16 21:42:12 +01:00
parent 0d20884637
commit 87cff0a8c8

View file

@ -213,10 +213,32 @@
(dict-ref m 'credit))))
m))
;; Converts the card id and any following string to card and label /
;; description string cons.
(define (convert-member-value:card v)
(let* ((va (string-split v))
(v0 (car va))
(vr (substring v (string-length v0))))
(cons v0 vr)))
;; Converts card ids to cons of two strings.
(define (convert-member-keys:card m . ks)
(let loop ((m m)
(ks ks))
(if (null? ks)
m
(let ((k (car ks)))
(loop (if (dict-has-key? m k)
(dict-set m k (map convert-member-value:card (dict-ref m k)))
m)
(cdr ks))))))
;; All conversions in one place
(define (convert-member-keys m)
(convert-member-key:credit
(convert-member-keys:markers->periods m 'suspend 'student)))
(convert-member-keys:card
(convert-member-key:credit
(convert-member-keys:markers->periods m 'suspend 'student))
'card 'desfire))
;; Fills-in the defaults
(define (make-default-member-info)