Use members list everywhere in members-base.
This commit is contained in:
		
							parent
							
								
									78164ecafe
								
							
						
					
					
						commit
						f2874ebe5d
					
				
					 1 changed files with 17 additions and 12 deletions
				
			
		|  | @ -89,9 +89,13 @@ | ||||||
| 				   mb1))) | 				   mb1))) | ||||||
| 	     mb))))))) | 	     mb))))))) | ||||||
| 
 | 
 | ||||||
|  |  ;; Returns the internal members list | ||||||
|  |  (define (members-base-members mb) | ||||||
|  |    (dict-ref mb 'members)) | ||||||
|  | 
 | ||||||
|  ;; Gets member based by generic predicate |  ;; Gets member based by generic predicate | ||||||
|  (define (find-member-by-predicate mb pred) |  (define (find-member-by-predicate mb pred) | ||||||
|    (let loop ((mdb mb)) |    (let loop ((mdb (members-base-members mb))) | ||||||
|      (if (null? mdb) |      (if (null? mdb) | ||||||
| 	 #f | 	 #f | ||||||
| 	 (let ((mr (car mdb))) | 	 (let ((mr (car mdb))) | ||||||
|  | @ -126,11 +130,12 @@ | ||||||
| 
 | 
 | ||||||
|  ;; Returns all ids found in the database |  ;; Returns all ids found in the database | ||||||
|  (define (list-members-ids mb) |  (define (list-members-ids mb) | ||||||
|    (map (lambda (mr) (dict-ref mr 'id)) mb)) |    (map (lambda (mr) (dict-ref mr 'id)) | ||||||
|  | 	(members-base-members mb))) | ||||||
| 
 | 
 | ||||||
|  ;; Returns a list of members which match given predicate. |  ;; Returns a list of members which match given predicate. | ||||||
|  (define (filter-members-by-predicate mb pred) |  (define (filter-members-by-predicate mb pred) | ||||||
|    (let loop ((mb mb) |    (let loop ((mb (members-base-members mb)) | ||||||
| 	      (res '())) | 	      (res '())) | ||||||
|      (if (null? mb) |      (if (null? mb) | ||||||
| 	 res | 	 res | ||||||
|  | @ -142,25 +147,25 @@ | ||||||
| 
 | 
 | ||||||
|  ;; Returns all nicks found in the database |  ;; Returns all nicks found in the database | ||||||
|  (define (list-members-nicks mb) |  (define (list-members-nicks mb) | ||||||
|    (map (lambda (mr) (dict-ref (dict-ref mr 'info) 'nick)) mb)) |    (map (lambda (mr) (dict-ref (dict-ref mr 'info) 'nick)) | ||||||
|  | 	(members-base-members mb))) | ||||||
| 
 | 
 | ||||||
|  ;; Returns dictionary with statistics about the members base. |  ;; Returns dictionary with statistics about the members base. | ||||||
|  (define (members-base-info mb-arg) |  (define (members-base-info mb-arg) | ||||||
|    (let* ((mb (filter-members-by-predicate mb-arg member-record-usable?)) |    (let* ((members (filter-members-by-predicate mb-arg member-record-usable?)) | ||||||
| 	  (di0 (make-dict)) | 	  (di0 (make-dict)) | ||||||
| 	  (di1 (dict-set di0 'invalid | 	  (di1 (dict-set di0 'invalid | ||||||
| 			 (filter-members-by-predicate mb | 			 (filter (compose not is-4digit-prime? member-id) members))) | ||||||
| 						      (compose not is-4digit-prime? member-id)))) |  | ||||||
| 	  (di2 (dict-set di1 'active | 	  (di2 (dict-set di1 'active | ||||||
| 			 (filter-members-by-predicate mb member-active?))) | 			 (filter member-active? members))) | ||||||
| 	  (di3 (dict-set di2 'suspended | 	  (di3 (dict-set di2 'suspended | ||||||
| 			 (filter-members-by-predicate mb member-suspended?))) | 			 (filter member-suspended? members))) | ||||||
| 	  (di4 (dict-set di3 'students | 	  (di4 (dict-set di3 'students | ||||||
| 			 (filter-members-by-predicate mb member-student?))) | 			 (filter member-student? members))) | ||||||
| 	  (di5 (dict-set di4 'destroyed | 	  (di5 (dict-set di4 'destroyed | ||||||
| 			 (filter-members-by-predicate mb member-destroyed?))) | 			 (filter member-destroyed? members))) | ||||||
| 	  (di6 (dict-set di5 'month (*current-month*))) | 	  (di6 (dict-set di5 'month (*current-month*))) | ||||||
| 	  (di7 (dict-set di6 'total mb))) | 	  (di7 (dict-set di6 'total members))) | ||||||
|      di7)) |      di7)) | ||||||
| 
 | 
 | ||||||
|  (define (members-base-oldest-month mb) |  (define (members-base-oldest-month mb) | ||||||
|  |  | ||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue