Making "nice" test data easily
Relates to #92 (closed) but I am thinking on a different path: when testing or developing we typically need data suitable for testing at the current moment. In particular this means we want an event with several episodes, each having several puzzles, which you can make guesses on right now to test how progression works. This means that the start times (and end times once #169 (closed) is done) are correct for "right now". Probably we also typically want stuff in the past (to test retrospective stuff, solution archive etc) future stuff (to make sure stuff is appropriately time-gated) and things like that.
Some of this is most important for automated testing, other bits are just to make it convenient to develop and test features without having to laboriously set up data by hand every time. It would be useful to have a manage.py command which sets this stuff up automatically, probably from a list of options, time-adjustable so that you can easily move things around in time e.g.
$ manage.py setdata
Resetting database to `default' fixture timed to 2018-04-05 19:00:00.
This will erase the contents of the current database, are you sure? y
...
$ manage.py setdata stats --time -1d
Resetting database to `stats' fixture timed to 2018-04-04 19:00:00.
This will erase the contents of the current database, are you sure? y
...
The first command would load up some generic fixture and make sure that the times are set so that you can test most situations immediately. The second command would load up fixtures with loads of data suitable for checking stats (probably scraped from a real iHunt) and time it to one day ago - I'm not sure what exactly that means in all cases, but here probably that whatever time the data was capture is brought forward to one day ago.
This might be a lot of work to make a cool generic way of doing this and make it behave sensibly in all situations.