diff --git a/lib/DAV/Calendar.php b/lib/DAV/Calendar.php index 6e73999a4..7e02013b5 100644 --- a/lib/DAV/Calendar.php +++ b/lib/DAV/Calendar.php @@ -52,12 +52,6 @@ class Calendar extends ExternalCalendar { $this->board = $board; $this->principalUri = $principalUri; - - if ($board) { - $this->children = $this->backend->getChildren($board->getId()); - } else { - $this->children = []; - } } public function getOwner() { @@ -122,7 +116,7 @@ class Calendar extends ExternalCalendar { public function getChild($name) { if ($this->childExists($name)) { $card = array_values(array_filter( - $this->children, + $this->getBackendChildren(), function ($card) use (&$name) { return $card->getCalendarPrefix() . '-' . $card->getId() . '.ics' === $name; } @@ -137,7 +131,7 @@ class Calendar extends ExternalCalendar { public function getChildren() { $childNames = array_map(function ($card) { return $card->getCalendarPrefix() . '-' . $card->getId() . '.ics'; - }, $this->children); + }, $this->getBackendChildren()); $children = []; @@ -148,9 +142,23 @@ class Calendar extends ExternalCalendar { return $children; } + private function getBackendChildren() { + if ($this->children) { + return $this->children; + } + + if ($this->board) { + $this->children = $this->backend->getChildren($this->board->getId()); + } else { + $this->children = []; + } + + return $this->children; + } + public function childExists($name) { return count(array_filter( - $this->children, + $this->getBackendChildren(), function ($card) use (&$name) { return $card->getCalendarPrefix() . '-' . $card->getId() . '.ics' === $name; } diff --git a/lib/Db/CardMapper.php b/lib/Db/CardMapper.php index 883e425d1..e23f8046f 100644 --- a/lib/Db/CardMapper.php +++ b/lib/Db/CardMapper.php @@ -193,6 +193,7 @@ class CardMapper extends QBMapper implements IPermissionMapper { ->from('deck_cards', 'c') ->join('c', 'deck_stacks', 's', 's.id = c.stack_id') ->where($qb->expr()->eq('s.board_id', $qb->createNamedParameter($boardId))) + ->andWhere($qb->expr()->eq('c.archived', $qb->createNamedParameter(false, IQueryBuilder::PARAM_BOOL))) ->andWhere($qb->expr()->eq('c.deleted_at', $qb->createNamedParameter('0'))) ->orderBy('c.duedate') ->setMaxResults($limit)