diff options
author | Frederic Guillot <fred@kanboard.net> | 2016-08-31 21:32:29 -0400 |
---|---|---|
committer | Frederic Guillot <fred@kanboard.net> | 2016-08-31 21:32:29 -0400 |
commit | 1b6b1cc5e6e26a3e3081cdd9613508a66c3751ee (patch) | |
tree | 10a791ad38fc73f642dff26d1a88223de6abed7c | |
parent | 0cb717f4407b81868d6b909d1d4ef4795c5e4b50 (diff) |
Time spent for subtasks are not rounded too the nearest quarter anymore
-rw-r--r-- | ChangeLog | 4 | ||||
-rw-r--r-- | app/Core/DateParser.php | 14 | ||||
-rw-r--r-- | doc/fr_FR/time-tracking.markdown | 2 | ||||
-rw-r--r-- | doc/time-tracking.markdown | 2 | ||||
-rw-r--r-- | tests/units/Core/DateParserTest.php | 14 |
5 files changed, 10 insertions, 26 deletions
@@ -24,6 +24,10 @@ Improvements: * Show project name in task forms * Convert vanilla CSS to SASS +Other changes: + +* Time spent (in hours) for subtasks are not rounded too the nearest quarter anymore + Bug fixes: * Fix undefined constant in config example file diff --git a/app/Core/DateParser.php b/app/Core/DateParser.php index 5d770241..b9aa9230 100644 --- a/app/Core/DateParser.php +++ b/app/Core/DateParser.php @@ -239,23 +239,11 @@ class DateParser extends Base */ public function getHours(DateTime $d1, DateTime $d2) { - $seconds = $this->getRoundedSeconds(abs($d1->getTimestamp() - $d2->getTimestamp())); + $seconds = abs($d1->getTimestamp() - $d2->getTimestamp()); return round($seconds / 3600, 2); } /** - * Round the timestamp to the nearest quarter - * - * @access public - * @param integer $seconds Timestamp - * @return integer - */ - public function getRoundedSeconds($seconds) - { - return (int) round($seconds / (15 * 60)) * (15 * 60); - } - - /** * Get ISO-8601 date from user input * * @access public diff --git a/doc/fr_FR/time-tracking.markdown b/doc/fr_FR/time-tracking.markdown index 625bc26f..6bf2e7a3 100644 --- a/doc/fr_FR/time-tracking.markdown +++ b/doc/fr_FR/time-tracking.markdown @@ -41,4 +41,4 @@ Pour chaque sous-tâche, le chrono peut être à tout moment arrêté/démarré - Le chrono ne dépend pas du statut de la sous-tâche - Chaque fois que vous démarrez le chrono, un nouvel enregistrement est créé dans la table de suivi des temps - Chaque fois que vous arrêtez l'horloge, la date de fin est enregistrée dans la table de suivi des temps -- Le temps passé est arrondi au quart d’heure le plus proche +- Le temps passé est arrondi au quart d’heure le plus proche (seulement pour Kanboard < 1.0.32) diff --git a/doc/time-tracking.markdown b/doc/time-tracking.markdown index a8444b5d..1009ac03 100644 --- a/doc/time-tracking.markdown +++ b/doc/time-tracking.markdown @@ -40,4 +40,4 @@ For each subtask, the timer can be stopped/started at any time: - The timer doesn't depend of the subtask status - Each time you start the timer a new record is created in the time tracking table - Each time you stop the clock the end date is recorded in the time tracking table -- The calculated time spent is rounded to the nearest quarter +- The calculated time spent is rounded to the nearest quarter (only for Kanboard < 1.0.32) diff --git a/tests/units/Core/DateParserTest.php b/tests/units/Core/DateParserTest.php index ee4e2d54..1cf98bd3 100644 --- a/tests/units/Core/DateParserTest.php +++ b/tests/units/Core/DateParserTest.php @@ -166,17 +166,9 @@ class DateParserTest extends Base $this->assertEquals(1, $dateParser->getHours(new DateTime('2015-03-14 15:00:00'), new DateTime('2015-03-14 16:00:00'))); $this->assertEquals(2.5, $dateParser->getHours(new DateTime('2015-03-14 15:00:00'), new DateTime('2015-03-14 17:30:00'))); $this->assertEquals(2.75, $dateParser->getHours(new DateTime('2015-03-14 15:00:00'), new DateTime('2015-03-14 17:45:00'))); - $this->assertEquals(3, $dateParser->getHours(new DateTime('2015-03-14 14:57:00'), new DateTime('2015-03-14 17:58:00'))); - $this->assertEquals(3, $dateParser->getHours(new DateTime('2015-03-14 14:57:00'), new DateTime('2015-03-14 11:58:00'))); - } - - public function testRoundSeconds() - { - $dateParser = new DateParser($this->container); - $this->assertEquals('16:30', date('H:i', $dateParser->getRoundedSeconds(strtotime('16:28')))); - $this->assertEquals('16:00', date('H:i', $dateParser->getRoundedSeconds(strtotime('16:02')))); - $this->assertEquals('16:15', date('H:i', $dateParser->getRoundedSeconds(strtotime('16:14')))); - $this->assertEquals('17:00', date('H:i', $dateParser->getRoundedSeconds(strtotime('16:58')))); + $this->assertEquals(3.02, $dateParser->getHours(new DateTime('2015-03-14 14:57:00'), new DateTime('2015-03-14 17:58:00'))); + $this->assertEquals(2.98, $dateParser->getHours(new DateTime('2015-03-14 14:57:00'), new DateTime('2015-03-14 11:58:00'))); + $this->assertEquals(0, $dateParser->getHours(new DateTime('2015-03-14 14:57:00'), new DateTime('2015-03-14 14:57:10'))); } public function testGetIsoDate() |