|  | @@ -7,7 +7,7 @@ import {
 | 
	
		
			
				|  |  |  } from '../config/const';
 | 
	
		
			
				|  |  |  import Attachments, { fileStoreStrategyFactory } from "./attachments";
 | 
	
		
			
				|  |  |  import { copyFile } from './lib/fileStoreStrategy.js';
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  | +import { DataCache } from 'meteor-reactive-cache';
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  Cards = new Mongo.Collection('cards');
 | 
	
		
			
				|  |  |  
 | 
	
	
		
			
				|  | @@ -808,27 +808,30 @@ Cards.helpers({
 | 
	
		
			
				|  |  |    },
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |    checklists() {
 | 
	
		
			
				|  |  | -    if (this.isLinkedCard()) {
 | 
	
		
			
				|  |  | -      return Checklists.find({ cardId: this.linkedId }, { sort: { sort: 1 } });
 | 
	
		
			
				|  |  | -    } else {
 | 
	
		
			
				|  |  | -      return Checklists.find({ cardId: this._id }, { sort: { sort: 1 } });
 | 
	
		
			
				|  |  | +    if (!this._checklists) {
 | 
	
		
			
				|  |  | +      let id = this._id;
 | 
	
		
			
				|  |  | +      if (this.isLinkedCard()) {
 | 
	
		
			
				|  |  | +        id = this.linkedId;
 | 
	
		
			
				|  |  | +      }
 | 
	
		
			
				|  |  | +      this._checklists = new DataCache(() => Checklists.find({ cardId: id }, { sort: { sort: 1 } }).fetch(), 1000);
 | 
	
		
			
				|  |  |      }
 | 
	
		
			
				|  |  | +    return this._checklists.get();
 | 
	
		
			
				|  |  |    },
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |    firstChecklist() {
 | 
	
		
			
				|  |  | -    const checklists = this.checklists().fetch();
 | 
	
		
			
				|  |  | +    const checklists = this.checklists();
 | 
	
		
			
				|  |  |      const ret = _.first(checklists);
 | 
	
		
			
				|  |  |      return ret;
 | 
	
		
			
				|  |  |    },
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |    lastChecklist() {
 | 
	
		
			
				|  |  | -    const checklists = this.checklists().fetch();
 | 
	
		
			
				|  |  | +    const checklists = this.checklists();
 | 
	
		
			
				|  |  |      const ret = _.last(checklists);
 | 
	
		
			
				|  |  |      return ret;
 | 
	
		
			
				|  |  |    },
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |    checklistItemCount() {
 | 
	
		
			
				|  |  | -    const checklists = this.checklists().fetch();
 | 
	
		
			
				|  |  | +    const checklists = this.checklists();
 | 
	
		
			
				|  |  |      return checklists
 | 
	
		
			
				|  |  |        .map(checklist => {
 | 
	
		
			
				|  |  |          return checklist.itemCount();
 | 
	
	
		
			
				|  | @@ -839,7 +842,7 @@ Cards.helpers({
 | 
	
		
			
				|  |  |    },
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |    checklistFinishedCount() {
 | 
	
		
			
				|  |  | -    const checklists = this.checklists().fetch();
 | 
	
		
			
				|  |  | +    const checklists = this.checklists();
 | 
	
		
			
				|  |  |      return checklists
 | 
	
		
			
				|  |  |        .map(checklist => {
 | 
	
		
			
				|  |  |          return checklist.finishedCount();
 |