summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorFrederic Guillot <fred@kanboard.net>2016-08-31 21:32:29 -0400
committerFrederic Guillot <fred@kanboard.net>2016-08-31 21:32:29 -0400
commit1b6b1cc5e6e26a3e3081cdd9613508a66c3751ee (patch)
tree10a791ad38fc73f642dff26d1a88223de6abed7c
parent0cb717f4407b81868d6b909d1d4ef4795c5e4b50 (diff)
Time spent for subtasks are not rounded too the nearest quarter anymore
-rw-r--r--ChangeLog4
-rw-r--r--app/Core/DateParser.php14
-rw-r--r--doc/fr_FR/time-tracking.markdown2
-rw-r--r--doc/time-tracking.markdown2
-rw-r--r--tests/units/Core/DateParserTest.php14
5 files changed, 10 insertions, 26 deletions
diff --git a/ChangeLog b/ChangeLog
index 292da131..5ae7d11a 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -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()