The code is primarily based on the work I've been pushing this week on the new API Admin Panel, so, in a way, this is the user-facing payoff for the last two production releases. The new "World" panel not only looks better at all three CSS breakpoints, but should help the dashboard load a little more quickly.
(Current average render times on the dashboard are hovering around 0.480874010989 seconds, and I'd like to get them down to less than half of that. Signing into the legacy app now hits the API, which slows it down, so I'm trying to compensate for that.)
At any rate, work on The Watcher will resume with the next release.
Thanks again for using the Manager!
Corrections and Fixes
- Addressed a bizarre CSS bug that made the "World" dashboard panel appear not to be lined up correctly at all resolutions.
- Worked up a quick workaround for an issue in the legacy webapp that could cause tracebacks when the 'White Box & Promo" expansion content was enabled.
- api.get_api_url() method now supports the 'strip_http' kwarg, which basically cuts the "http://" from its output
- The corner loader HTML element now renders in all views so I can spin it whenever.
- Implemented a new, auto-refreshing, AngularJS-based version of the World panel that uses the API for data.
- deprecated a ton of old, really poorly-written world panel CSS from two years ago
- Re-implemented the world panel as pure AngularJS with in automatic, no-reload refresh of the data every 120 seconds.
- Added the new top innovations table to the panel
- deprecated the legacy html.dashboard.world() method complete
- enhanced the "latest settlement" feature to include the age of the settlement
- Deprecated the "current hunt" feature for now. I don't like it any more and I have no evidence that anyone cares.
- Deprecated the html_world() method from the legacy webapp's User class methods.
- removed API "world" info from the legacy webapp admin panel
- The world asset top_survivor_names now defines its own limit
- The world.get_top() method no longer inflicts a five result minimum if no limit is supplied.
- The latest_kill asset now ships from world.py with strings representing the date and time the monster was killed.
- Cleaned up the documentation re: the /admin routes.
- User blocks in the API Admin Panel now represent the user's age using the utils.get_time_elapsed_since() method.
- Updated utils.get_time_elapsed_since() to do years and replaced the code in models.users.User.get_age() with a call to it.