Skip dokuwiki checks if no dokuwiki is loaded.

This commit is contained in:
Dominik Pantůček 2023-06-26 21:48:16 +02:00
parent c4f81dacbe
commit 697dcd24db
2 changed files with 39 additions and 31 deletions

View file

@ -314,32 +314,38 @@
;; Adds dokuwiki information to all users found, returns new mbase
;; and list of remaining users.
(define (mbase-merge-dokuwiki mb dw)
(let loop ((dw dw)
(mb mb)
(rem '()))
(if (null? dw)
(values mb rem)
(let* ((row (car dw))
(username (car row))
(mr (find-member-by-nick mb username))
(groups (list-ref row 3))
(email (list-ref row 2)))
(if mr
(let ((mid (brmember-id mr)))
(loop (cdr dw)
(mbase-update mb
(lambda (mr)
(eq? (brmember-id mr) mid))
(lambda (mr)
(let ((dws (ldict-ref mr 'dokuwiki (make-ldict))))
(brmember-set mr #:dokuwiki
(ldict-set
(ldict-set dws 'groups groups)
'email email)))))
rem))
(loop (cdr dw)
mb
(cons row rem)))))))
(if (null? dw)
(values (mbase-update mb
(lambda (mr) #t)
(lambda (mr)
(brmember-set mr #:dokuwiki #t)))
dw)
(let loop ((dw dw)
(mb mb)
(rem '()))
(if (null? dw)
(values mb rem)
(let* ((row (car dw))
(username (car row))
(mr (find-member-by-nick mb username))
(groups (list-ref row 3))
(email (list-ref row 2)))
(if mr
(let ((mid (brmember-id mr)))
(loop (cdr dw)
(mbase-update mb
(lambda (mr)
(eq? (brmember-id mr) mid))
(lambda (mr)
(let ((dws (ldict-ref mr 'dokuwiki (make-ldict))))
(brmember-set mr #:dokuwiki
(ldict-set
(ldict-set dws 'groups groups)
'email email)))))
rem))
(loop (cdr dw)
mb
(cons row rem))))))))
;; Simple syntax wrapper
(define-syntax with-mbase-progress%

View file

@ -136,11 +136,13 @@
(mailman (list (list "Mailing Lists"
(string-intersperse (brmember-mailman mr) "\n"))))
(dokuwiki (if (ldict-contains? mr 'dokuwiki)
(list (list "DokuWiki"
(format "Groups: ~A\nEmail: ~A"
(brmember-sub-ref mr 'dokuwiki 'groups)
(brmember-sub-ref mr 'dokuwiki 'email)
)))
(if (eq? (ldict-ref mr 'dokuwiki) #t)
(list #f)
(list (list "DokuWiki"
(format "Groups: ~A\nEmail: ~A"
(brmember-sub-ref mr 'dokuwiki 'groups)
(brmember-sub-ref mr 'dokuwiki 'email)
))))
(list (list (ansi-string #:red "DokuWiki")
(ansi-string #:red "---")))))
(result (filter identity (append head body mailman dokuwiki))))