Fixed bug when we use smarty from the cmd line
Posted link to bug report at GitHub
Initial email template
Fixes #1
Let users update their information
 - Still don't let them change the time...yet
Straight port of forecastPretty
- Closes #2
Slight change in about page
(m) bugfix
 - Was using the wrong timestamp in one of the templates
Whereupon we promptly remove the file created in 567a4369c000c341a09f606b81af4c70dee4863e
 - Moved much of the pretty code into the Rainjacket model proper (and trashed the rest)
 - Set up the templates in a database. We can now grab a random one based on the isDay, etc. criteria
 - New function in Scalene.View that takes advantage of Smarty's string templating, which is something I didn't know they had until now
 - Python scripts now output straight json
 - This closes #3 and closes #6
Set a default in in the GetForecast function
Various, minor updates
 - If the customer failed to register, we now put the data they submitted back in the form
 - Customers can now update their time (finally!). We do very little time verification
 - Remove the timeString from the Python scripts. Useless for this
 - Changed default zipcode to USM and added an no-idea-why-but-you-couldn't-register error message
 - Enabled some Smarty XSS protection
Removed vestigial code since #4 was completed
Documenting rainjacket specific code
 - This completes the initial documentation of classes and functions. The code itself could still be commented on.
 - See #8
(m) bugfix - Fix indentation
Added a "night" time for email
 - Already had a field for when we send the morning email. Now we can send one for when they leave work/whatever
Finish code documentation. Closes #8
Fixes #11
More for #8 that missed the earlier commit
Now storing times in UTC
 - For all the (US) timezones!
 - Still trying to figure out how to get the user's timezone initially based on their zipcode. Or whether, where it fits to actually do it. I know *how*, not *where*.
 - Also, timezones are stupid, and they suck.
(m) Slight shift in About link position