From 2a814952504501ffc081e224742054d79d50e476 Mon Sep 17 00:00:00 2001 From: Trey Blancher Date: Fri, 5 Oct 2018 17:40:56 -0400 Subject: [PATCH] Modified README.md to reflect recent changes --- README.md | 40 ++++++++++++++++++---------------------- 1 file changed, 18 insertions(+), 22 deletions(-) diff --git a/README.md b/README.md index 5afd5e1..13c2b06 100644 --- a/README.md +++ b/README.md @@ -9,42 +9,38 @@ This framework is what I use to keep track of my time, as I work. Only one task 2017-12-08 09:10:55: End internal task 1 2017-12-08 09:10:56: Begin internal task 2 2017-12-08 09:15:14: End internal task 2 -2017-12-08 09:15:14: Begin [Customer_1] task 1 -2017-12-08 09:19:52: End [Customer_1] task 1 -2017-12-08 09:19:52: Begin [Customer_1] PDROP-0000000 incident-related task 1 -2017-12-08 09:27:37: End [Customer_1] PDROP-0000000 incident-related task 1 -2017-12-08 09:27:38: Begin [Customer_2] task 2 -2017-12-08 11:00:39: End [Customer_2] task 2 -2017-12-08 11:00:40: Begin [Customer_1] PDROP-0000000 incident-related task 2 -2017-12-08 11:07:24: End [Customer_1] PDROP-0000000 incident-related task 2 +2017-12-08 09:15:14: Begin [Customer 1] task 1 +2017-12-08 09:19:52: End [Customer 1] task 1 +2017-12-08 09:19:52: Begin [Customer 1] PDROP-0000000 incident-related task 1 +2017-12-08 09:27:37: End [Customer 1] PDROP-0000000 incident-related task 1 +2017-12-08 09:27:38: Begin [Customer 2] task 2 +2017-12-08 11:00:39: End [Customer 2] task 2 +2017-12-08 11:00:40: Begin [Customer 1] PDROP-0000000 incident-related task 2 +2017-12-08 11:07:24: End [Customer 1] PDROP-0000000 incident-related task 2 2017-12-08 11:08:56: Begin internal task 3 2017-12-08 16:55:43: End internal task 3 ``` The timestamp is in most-to-least significant units, though any valid date and time should work (however, any other format is untested. BEWARE!). The separator between the timestamp and the Begin or End keywoards is `: `, literally a colon followed by **two** spaces. Anything else will break timetracker.py, and the rest of it will fall down. Each task must have a `Begin` and `End` line, or else the output of timetracker will not be correct. Too many begins or ends should be detected by timetracker.py. The name of the task is free form, and must be identical for the Begin and End (otherwise timetracker.py will think they're different tasks). -Certain strings have special meaning to timetracker.py. The customer name in square brackets specifies that the task is related to a specific customer, to make tallying in Clarizen more straightforward. These can be any string, but I think names containing spaces is untested. The names can be anything, so things like `[Citi]`, `[Wells_Fargo]`, or `[CS_Support]`. The square brackets will be stripped in the report. The other format with significance to timetracker.py is the incident number, e.g. PDROP-0012345. These will tally as a separate line item in the timetracker report. +Certain strings have special meaning to timetracker.py. The customer name in square brackets specifies that the task is related to a specific customer, to make tallying in Clarizen more straightforward. These can be any string, even with spaces, but beware of using shell special characters. The names can be anything, so things like `[Citi]`, `[Wells Fargo]`, or `[CS Support]`. ## timetracker.py usage -The timetracker.py script is the basis, it tallies the time for each task and then outputs a report on how much each task takes to complete. It takes as its argument one or more text files, the log files in the format above. It should only report one line item per task, regardless of how many times it appears in the log. The output looks like this: +The timetracker.py script is the basis, it tallies the time for each task and then outputs a report on how much each task takes to complete. It takes as its argument one or more text files, the log files in the format above. It should only report one line item per task, regardless of how many times it appears in the log. Note that each task now gets rounded **up** to the nearest quarter hour (15minutes). The output looks like this: ### timetracker output ``` -[Customer_1] PDROP-0000000 incident-related task 1 465s 0hrs 7min 0.13hrs -[Customer_1] PDROP-0000000 incident-related task 2 404s 0hrs 6min 0.11hrs -[Customer_1] task 1 278s 0hrs 4min 0.08hrs -[Customer_2] task 2 5581s 1hrs 33min 1.55hrs -internal task 1 709s 0hrs 11min 0.20hrs -internal task 2 258s 0hrs 4min 0.07hrs -internal task 3 20807s 5hrs 46min 5.78hrs +[Customer 1] PDROP-0000000 incident-related task 1 0.25hrs +[Customer 1] PDROP-0000000 incident-related task 2 0.25hrs +[Customer 1] task 1 0.25hrs +[Customer 2] task 2 1.75hrs +internal task 1 0.25hrs +internal task 2 0.25hrs +internal task 3 6.00hrs -Incident total: 0s 0.00hrs -Unnumbered total: 28502s 7.92hrs -Section total: 28502s 7.92hrs +Section total: 28502s 9.00hrs ``` -Note to self: There is a problem here, the Incident total is off. For the other scripts, this total isn't used, which is why I've missed it. - ## `do_process` This script filters the output of timetracker.py, giving each organization (in square brackets) its own section, with its own tallies. This is designed to be directly transferred to Clarizen manually. It calculates the time total for each organization/category, plus anything uncategorized. At the end it prints a grand total for the day, which should be used to cross-verify in Clarizen.