Use month data type for joined key.
This commit is contained in:
parent
cd2a08e2ec
commit
5f62bb319e
3 changed files with 36 additions and 8 deletions
|
@ -30,6 +30,7 @@
|
|||
(
|
||||
*member-file-context*
|
||||
*member-file-check-syntax*
|
||||
*member-default-joined*
|
||||
load-member-file
|
||||
member-file-tests!
|
||||
)
|
||||
|
@ -63,6 +64,8 @@
|
|||
;; 'quiet - ignore
|
||||
(define *member-file-check-syntax* (make-parameter 'error))
|
||||
|
||||
(define *member-default-joined* (make-parameter (make-month 2015 1)))
|
||||
|
||||
;; Derived keys
|
||||
(define start/stop-keys-keys
|
||||
(map
|
||||
|
@ -233,19 +236,29 @@
|
|||
m)
|
||||
(cdr ks))))))
|
||||
|
||||
;; Converts given key to month if it is a string. Leaves untouched
|
||||
;; otherwise.
|
||||
(define (convert-member-key:month m k)
|
||||
(let ((v (dict-ref m k)))
|
||||
(if (string? v)
|
||||
(dict-set m k (string->month v))
|
||||
m)))
|
||||
|
||||
;; All conversions in one place
|
||||
(define (convert-member-keys m)
|
||||
(convert-member-keys:card
|
||||
(convert-member-key:credit
|
||||
(convert-member-keys:markers->periods m 'suspend 'student))
|
||||
'card 'desfire))
|
||||
(convert-member-key:month
|
||||
(convert-member-keys:card
|
||||
(convert-member-key:credit
|
||||
(convert-member-keys:markers->periods m 'suspend 'student))
|
||||
'card 'desfire)
|
||||
'joined))
|
||||
|
||||
;; Fills-in the defaults
|
||||
(define (make-default-member-info)
|
||||
(dict-set
|
||||
(make-dict)
|
||||
'joined
|
||||
"2015-01"))
|
||||
(*member-default-joined*)))
|
||||
|
||||
;; Processes all lines and returns a dictionary representing given
|
||||
;; member.
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue