<feed xmlns='http://www.w3.org/2005/Atom'>
<title>timetasker/timetask, branch v0.0.1</title>
<subtitle>A CLI for submitting Time Task time sheets</subtitle>
<link rel='alternate' type='text/html' href='https://git.teddywing.com/timetasker/'/>
<entry>
<title>GenerateWeeklyTimesheet: Auto-fill the date with all days in the week</title>
<updated>2017-03-12T20:59:58+00:00</updated>
<author>
<name>Teddy Wing</name>
</author>
<published>2017-03-12T20:59:58+00:00</published>
<link rel='alternate' type='text/html' href='https://git.teddywing.com/timetasker/commit/?id=ca1e693cbde486d4a8f62bc6b41f72fc3922c299'/>
<id>ca1e693cbde486d4a8f62bc6b41f72fc3922c299</id>
<content type='text'>
Get Monday's date from the current week using the When library (which
provides natural language date parsing, making it super easy to get a
time object for Monday). Then when creating the `TimeEntry`ies for the
generator, fill in Monday–Friday's dates in the output.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Get Monday's date from the current week using the When library (which
provides natural language date parsing, making it super easy to get a
time object for Monday). Then when creating the `TimeEntry`ies for the
generator, fill in Monday–Friday's dates in the output.
</pre>
</div>
</content>
</entry>
<entry>
<title>Add GenerateWeeklyTimesheet()</title>
<updated>2017-03-12T17:47:21+00:00</updated>
<author>
<name>Teddy Wing</name>
</author>
<published>2017-03-12T17:47:21+00:00</published>
<link rel='alternate' type='text/html' href='https://git.teddywing.com/timetasker/commit/?id=4b1de1d7bfb0261d28a192171b73388cb639eae4'/>
<id>4b1de1d7bfb0261d28a192171b73388cb639eae4</id>
<content type='text'>
A function to generate a weekly time sheet.

Add a new `defaults` key to the config.yml file. Looks like this:

    defaults:
      client:
      project:
      module:
      task:
      work_type:
      time:
      billable:

This will be used to fill in default values when a timesheet is
generated.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
A function to generate a weekly time sheet.

Add a new `defaults` key to the config.yml file. Looks like this:

    defaults:
      client:
      project:
      module:
      task:
      work_type:
      time:
      billable:

This will be used to fill in default values when a timesheet is
generated.
</pre>
</div>
</content>
</entry>
<entry>
<title>TimeEntry.UnmarshalYAML: Don't error if date empty string</title>
<updated>2017-03-12T17:45:06+00:00</updated>
<author>
<name>Teddy Wing</name>
</author>
<published>2017-03-12T17:45:06+00:00</published>
<link rel='alternate' type='text/html' href='https://git.teddywing.com/timetasker/commit/?id=72ce73048e3c04982012c7900eef080ca5b1f726'/>
<id>72ce73048e3c04982012c7900eef080ca5b1f726</id>
<content type='text'>
The date is allowed to be empty in the config defaults hash. Don't error
if it is.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
The date is allowed to be empty in the config defaults hash. Don't error
if it is.
</pre>
</div>
</content>
</entry>
<entry>
<title>SubmitTimeEntries: Add required params</title>
<updated>2017-03-12T16:54:46+00:00</updated>
<author>
<name>Teddy Wing</name>
</author>
<published>2017-03-12T16:54:46+00:00</published>
<link rel='alternate' type='text/html' href='https://git.teddywing.com/timetasker/commit/?id=378a38f5550f9a73feeb3e32ad74dec6e36e2527'/>
<id>378a38f5550f9a73feeb3e32ad74dec6e36e2527</id>
<content type='text'>
These tell the Time Task form endpoint that we're submitting a
multiple-time submission request.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
These tell the Time Task form endpoint that we're submitting a
multiple-time submission request.
</pre>
</div>
</content>
</entry>
<entry>
<title>Change all `uint` types to `int`</title>
<updated>2017-03-12T16:51:04+00:00</updated>
<author>
<name>Teddy Wing</name>
</author>
<published>2017-03-12T16:51:04+00:00</published>
<link rel='alternate' type='text/html' href='https://git.teddywing.com/timetasker/commit/?id=a14736cd1311595f9d0aaf94e6852b246a606d13'/>
<id>a14736cd1311595f9d0aaf94e6852b246a606d13</id>
<content type='text'>
Because `strings.Itoa` is so much easier to call than
`strconv.ParseUint`, and I needed to parse ints into strings to build
the URL params in `buildSubmissionParams`
(17f4ecc63615e3f3bef21a80f15e7c7b0e0cffa1).
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Because `strings.Itoa` is so much easier to call than
`strconv.ParseUint`, and I needed to parse ints into strings to build
the URL params in `buildSubmissionParams`
(17f4ecc63615e3f3bef21a80f15e7c7b0e0cffa1).
</pre>
</div>
</content>
</entry>
<entry>
<title>http.go: Add `buildSubmissionParams` function</title>
<updated>2017-03-12T16:50:30+00:00</updated>
<author>
<name>Teddy Wing</name>
</author>
<published>2017-03-12T16:47:29+00:00</published>
<link rel='alternate' type='text/html' href='https://git.teddywing.com/timetasker/commit/?id=17f4ecc63615e3f3bef21a80f15e7c7b0e0cffa1'/>
<id>17f4ecc63615e3f3bef21a80f15e7c7b0e0cffa1</id>
<content type='text'>
Function that takes a list of `TimeEntry`ies and builds the necessary
URL params for submission to the Time Task form endpoint.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Function that takes a list of `TimeEntry`ies and builds the necessary
URL params for submission to the Time Task form endpoint.
</pre>
</div>
</content>
</entry>
<entry>
<title>fields.go: Get rid of unused `thingsByName` function</title>
<updated>2017-03-12T16:50:17+00:00</updated>
<author>
<name>Teddy Wing</name>
</author>
<published>2017-03-12T16:46:15+00:00</published>
<link rel='alternate' type='text/html' href='https://git.teddywing.com/timetasker/commit/?id=e51719722bd5eead4b414f7188d39fd07af81312'/>
<id>e51719722bd5eead4b414f7188d39fd07af81312</id>
<content type='text'>
Not relevant. See 89f766854443a6f7ae20c330547083fd0e075ba9.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Not relevant. See 89f766854443a6f7ae20c330547083fd0e075ba9.
</pre>
</div>
</content>
</entry>
<entry>
<title>fields.go: Add methods that allow us to extract objects by name</title>
<updated>2017-03-12T16:49:36+00:00</updated>
<author>
<name>Teddy Wing</name>
</author>
<published>2017-03-12T16:43:20+00:00</published>
<link rel='alternate' type='text/html' href='https://git.teddywing.com/timetasker/commit/?id=89f766854443a6f7ae20c330547083fd0e075ba9'/>
<id>89f766854443a6f7ae20c330547083fd0e075ba9</id>
<content type='text'>
We want to be able to get Client, Project, etc. objects given their
name. These functions will look through the fields or objects containing
a list of the thing looked for and return if if its name matches the
search string.

Originally had the idea to generalise the body of the function, but had
trouble making the types generic. Still on the table for later if we
want to deduplicate the code. For now I'm leaving in the repetition
because it works and I don't care with this project.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
We want to be able to get Client, Project, etc. objects given their
name. These functions will look through the fields or objects containing
a list of the thing looked for and return if if its name matches the
search string.

Originally had the idea to generalise the body of the function, but had
trouble making the types generic. Still on the table for later if we
want to deduplicate the code. For now I'm leaving in the repetition
because it works and I don't care with this project.
</pre>
</div>
</content>
</entry>
<entry>
<title>fields.go: Get rid of `IDName`</title>
<updated>2017-03-12T16:38:19+00:00</updated>
<author>
<name>Teddy Wing</name>
</author>
<published>2017-03-12T16:38:19+00:00</published>
<link rel='alternate' type='text/html' href='https://git.teddywing.com/timetasker/commit/?id=d9ca7b7d412f34f0d1f93a04c7c566f041b99524'/>
<id>d9ca7b7d412f34f0d1f93a04c7c566f041b99524</id>
<content type='text'>
Embedding this struct prevented us from correctly unmarshalling data
into them. This is because they need to be created like:

    Client{IDName{ID: , Name: ,}}

The fields can't be added in directly.

Save ourselves the headache and just manually repeat the fields. So that
importing works right.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Embedding this struct prevented us from correctly unmarshalling data
into them. This is because they need to be created like:

    Client{IDName{ID: , Name: ,}}

The fields can't be added in directly.

Save ourselves the headache and just manually repeat the fields. So that
importing works right.
</pre>
</div>
</content>
</entry>
<entry>
<title>TimeEntry: Add missing Module field</title>
<updated>2017-03-12T16:35:05+00:00</updated>
<author>
<name>Teddy Wing</name>
</author>
<published>2017-03-12T16:35:05+00:00</published>
<link rel='alternate' type='text/html' href='https://git.teddywing.com/timetasker/commit/?id=2404a41cf283b9f390e8dac1f678066a85dc1e53'/>
<id>2404a41cf283b9f390e8dac1f678066a85dc1e53</id>
<content type='text'>
Forgot to add this field originally. Do the same as when we added the
`Time` field.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Forgot to add this field originally. Do the same as when we added the
`Time` field.
</pre>
</div>
</content>
</entry>
</feed>
