|More work in progress on this guy.|
- Survivor Sheet "Disorders" controls no longer reload the page!
- Survivor Sheet "Lineage" controls and presentation have been completely re-done and upgraded to show more/better data, including basic survivor biographies.
- Changing a Survivor's parents no longer reloads the page.
- Integration with the Manager's Twitter account.
- A good-size handful of bug and presentation fixes
|Counterweighted Axe detail.|
The account has been around for a while now, but as of release 2.37.747, I finally got around to integrating it and replacing the old alert mechanism. Effective immediately, the pink "alert" box on the dashboard has been replaced with a blue "!" box.
Another thing to point out about this release is that a lot of what it does is intended to help page load speeds.
For instance, a major part of the lag on rendering the Survivor Sheet in the legacy webapp was the "Lineage" information: gathering that could take in excess of two seconds in some cases, and it slowed down the page load substantially. In release 2.37.747, the API does the lineage stuff asynchronously (i.e. in parallel with the main page load) and the Survivor Sheet should be able to load that much faster.
Another small improvement that some users might notice in this release is that the Survivor Sheet no longer totally refreshes/re-initializes itself when making trivial changes (e.g. adding/removing epithets, changing Survival, toggling "Favorite" status, etc.).
At any rate, work on The Watcher continues in the background, and I expect to have a pretty major announcement about that in the next few weeks. Stay tuned!
And thanks for using the Manager!
Corrections and Fixes
- Removed some extraneous print-debugging from panel.py
- Addressed an issue affecting /user/dashboard/<oid> where settlements with unconverted expansions (names instead of handles) could bomb the whole request out.
- Addressed a wide resolution presentation issue where the Dashboard's "World" panel was separated from its button by a weird gap.
- Fixed the problem with the legacy webapp admin panel where the full page loader didn't clear on page load.
- The popularity contest for expansion content (on the dash and the API Admin Panel) is now sorted by weight.
- Fixed a few Sunstalker-related location/endeavor issues (old references to names that should have been updated to handles).
- Pushed the style code for the first-time login modal (most of which was missing, and broke the presentation at tablet and wide resolution).
- Fixed a bug that prevented the dashboard from initializing for some users. -Bodaster
- Normalized the bottom border/horizontal rule presentation at wide resolution on the right pane of the Survivor Sheet (it was formerly a sort of hodge-podge).
- Addressed a presentation issue affecting tablet resolution that caused Survivor Sheet information to have weird, extreme margins.
- Fixed the JS that causes survivor Insanity to turn maroon when the survivor is in insane (that must have broke...ages ago.)
- Deprecated the vestigial admin.render_about_panel() method.
- Added html.meta.hide_full_page_loader() HTML stub for DRYness.
- Changing a survivor's avatar now shows the full page loader/spinner on change, to prevent users clicking other buttons/firing other forms while the upload is happening.
- Updated kdmManager.js so that the all-important postJSONtoAPI() method can be called in such a way that it DOES NOT reinitialize the view.
- Removed view reinitialization for the following operations:
- Survivor Sheet "Favorite" toggle
- Survivor Sheet "Retired" toggle
- Survivor Sheet Survival
- Survivor Sheet permanent affinities controller
- Weapon Proficiency (score)
- Hunt XP, Courage and Understanding
- Add/remove epithets
- The z-index.css file is now versioned (i.e. it force-downloads on a version update)
- Integrated the kdmManager Twitter feed into the Dashboard; styled it at all three resolutions
- Re-implemented Survivor Sheet 'Lineage' management:
- Parents, Siblings, Children and Intimacy Partner information/controls only appear on the Survivor Sheet if necessary: Parents controls only show up if the survivor is not a founder, the other ones only show up if necessary.
- Re-did parent setting controls in AngularJS and integrated them with new API development (below)
- Survivor Lineage is in its own div now and, if the API fails, the block will fail and no one will know the difference. #gracefulFailure
- Deprecated the following legacy methods from the legacy webapp's assets.py Survivor class: get_parents(), get_intimacy_partners(), get_siblings(), get_children()
- The "Lineage" block now includes a section called "Biography", which includes various survivor life stats.
- Initializing a settlement (via kdmManager.js) automatically updates the settlement's 'last_accessed' value
- postJSONtoAPI() now has the ability to suppress the "Saving..." pop-up/modal.
- Deprecated Disorders management in the legacy webapp:
- Removed the 'disorders' normalization from the legacy Survivor class normalize() method
- Removed the get_disorders() method from the Survivor class
- Removed add_game_asset() method from the legacy Survivor class (which is a BFD)
- Also removed rm_game_asset() from the legacy Survivor class.
- Removed support for Disorders management from models.py
- Removed 'on_return' support from the legacy app's return_departing_survivors() method
- Removed legacy webapp Disorder HTML control rendering and support from the Survivor modify() method for adding/removing disorders
- Added a new AngularJS controller for Disorder operations
- Added HTML 'cards' for disorders (that show expansion source, look like the paper versions etc.)
- updated initAssetLists() method in kdmManager.js to initialize a Disorder picker when loading a Survivor Sheet view.
- Added controls for adding Disorders via API
- Survivor Sheet Fighting Arts controls no longer load with placeholder content before the survivor is initialized
- Removed vestigial JS code that formerly applied strikethrough style to Fighting Arts if Fighting Arts were disabled
- Checking the 'Cannot use Fighting Arts' box now gives Fighting Arts 30% opacity.
- Toggling the once-in-a-lifetime SotF reroll no longer reinitializes the Survivor Sheet.
- Moved the SotF re-roll to a more appropriate, more prominent spot on the Survivor Sheet.
- Moved the all-purpose incrementAttrib() and updateAttrib() methods to the root scope of survivorSheet.js
- settlements.Settlement.get_expansions() now backs off to asset names, if it cannot find an asset handle.
- Touched up a couple of display elements on the Admin Panel so that the response times table looks a little neater
- Signed out users are a different color now on the Admin Panel (for ease of identification); they also get a parenthetical note to the effect.
- Settlements can now be stamped with a 'last_accessed' timestamp:
- Added a method called set_last_accessed()
- Created a route for it
- Documented the route
- Muted the logging, etc., so that this can happen without looking like anything is happening from the user perspective
- Admin panel shows recently accessed settlements (in addition to recently modified settlements) and the query in panel.py that retrieves them no longer users the event log mdb collection.
- Implemented ancestor and intimacy partner management in the API:
- added a get_parents() method to the Survivor class that returns the survivor's parents in a couple of different ways.
- Added a get_parents() method to the Settlement class as well: this one checks all survivors and returns a dictionary of unique <ahem> couplings.
- added a set_parent() method and a route to it; built in some user-friendliness/graceful failures, etc.
- Added a new get_lineage() route and method to the Survivor class.
- Documented the new /survivor/set_parent/<oid> route
- Touched up the docs to include a reference to the /survivor/get_lineage/<oid> route.
- Updated Models.UserAsset.save() so that it can be verbose (or not).
- The utils.InvalidUsage() class/exception type now logs to error.log and has hooks for sending alert emails.
- The Settlement object's get_survivors() method now supports the 'exlcuded' kwarg, which lets you exclude a list of survivor OIDs.
- Keyed in a bunch of random female names (just to even it out a bit).
- Implemented Disorders management in the API
- ported 51 disorders (core + 1.3/1.4 expansions) from the legacy webapp
- Created a models.disorders.py module to controle the asset init
- Added a convert_disorders() method to the Survivor class; included it in the normalize() routine with a version check, etc.
- Settlements are now initialized to include Disorder assets in their game_assets
- Verified that "Skip Next Hunt" can be set by disorders
- add_game_assets() has been updated to handle the 'retired' key (which auto-retires the survivor on asset addition)
- Admin Panel now sorts application administrators based on their login name.