Fix due status calculation

Signed-off-by: Raul <raul@nextcloud.com>
This commit is contained in:
Raul
2022-05-09 14:44:36 +02:00
committed by Julius Härtl
parent 99f5e8b76e
commit 7575bd0bf7
4 changed files with 17 additions and 16 deletions

View File

@@ -158,11 +158,14 @@ class Card extends RelationalEntity {
return $calendar; return $calendar;
} }
public function getDaysUntilDue(): int { public function getDaysUntilDue(): ?int {
$today = new DateTime(); $today = new DateTime();
$today->setTime(0, 0); $match_date = $this->getDuedate();
if ($match_date === null) {
return null;
}
$match_date = $this->getDueDateTime() ?? new DateTime(); $today->setTime(0, 0);
$match_date->setTime(0, 0); $match_date->setTime(0, 0);
$diff = $today->diff($match_date); $diff = $today->diff($match_date);

View File

@@ -24,8 +24,7 @@ namespace OCA\Deck\Model;
use OCA\Deck\Db\Board; use OCA\Deck\Db\Board;
class BoardSummary extends Board class BoardSummary extends Board {
{
private Board $board; private Board $board;
public function __construct(Board $board) { public function __construct(Board $board) {
@@ -42,7 +41,7 @@ class BoardSummary extends Board
protected function getter($name) { protected function getter($name) {
return $this->board->getter($name); return $this->board->getter($name);
} }
public function __call($name, $arguments) { public function __call($name, $arguments) {
return $this->board->__call($name, $arguments); return $this->board->__call($name, $arguments);

View File

@@ -25,8 +25,7 @@ namespace OCA\Deck\Model;
use OCA\Deck\Db\Board; use OCA\Deck\Db\Board;
use OCA\Deck\Db\Card; use OCA\Deck\Db\Card;
class CardDetails extends Card class CardDetails extends Card {
{
private Card $card; private Card $card;
private ?Board $board; private ?Board $board;
@@ -60,18 +59,18 @@ class CardDetails extends Card
private function getDueStatus(): int { private function getDueStatus(): int {
$diffDays = $this->getDaysUntilDue(); $diffDays = $this->getDaysUntilDue();
if ($diffDays === null || $diffDays > 1) {
return static::DUEDATE_FUTURE;
}
if ($diffDays === 1) { if ($diffDays === 1) {
return static::DUEDATE_NEXT; return static::DUEDATE_NEXT;
} }
if ($diffDays === 0) { if ($diffDays === 0) {
return static::DUEDATE_NOW; return static::DUEDATE_NOW;
} }
if ($diffDays < 0) {
return static::DUEDATE_OVERDUE;
}
return static::DUEDATE_FUTURE; return static::DUEDATE_OVERDUE;
} }
private function appendBoardDetails(&$array): void { private function appendBoardDetails(&$array): void {
if (!$this->board) { if (!$this->board) {
@@ -83,8 +82,8 @@ class CardDetails extends Card
} }
protected function getter($name) { protected function getter($name) {
return $this->card->getter($name); return $this->card->getter($name);
} }
public function __call($name, $arguments) { public function __call($name, $arguments) {
return $this->card->__call($name, $arguments); return $this->card->__call($name, $arguments);
} }

View File

@@ -108,7 +108,7 @@ class OverviewService {
$diffDays = $card->getDaysUntilDue(); $diffDays = $card->getDaysUntilDue();
$key = 'later'; $key = 'later';
if ($card->getDuedate() === null) { if ($diffDays === null) {
$key = 'nodue'; $key = 'nodue';
} elseif ($diffDays < 0) { } elseif ($diffDays < 0) {
$key = 'overdue'; $key = 'overdue';