Saturday, July 1, 2017

Change Log: 2.12.376

Release 2.12.376 is a housekeeping release. It does not add any new features and mostly does break/fix work on the last release.

There is some new development in the form of new API functionality around survivors, Survival and Survival Actions. The front-end team is hard at work on the Survivor Sheet in The Watcher and this release pushes a handful of fixes and enhancements related to that.

And, speaking of that, 2.12.376 also focuses on API documentation, which has sort of...lapsed over the last few releases. As of today all functioning API methods are documented. Additionally, I have revised many of the documents, added usage tips and cleaned up the presentation.

Expect another feature-enhancement release during the long weekend or, worst case scenario, this coming week: I'm working on a few things and I'm excited to get them pushed out to the production webapp!

Thanks for using the Manager!

Corrections and Fixes

Application Improvements

  • Swapped out the loading.io spinner for a new loading GIF. Hourglass design by Logan Ogden. Animation by Yours Truly. Shout-out to gifmaker.me
  • Updated kdmManager.postJSONtoAPI() to automatically select asset ID based on asset collection (i.e. to use $scope.settlement_id or $scope.survivor_id, depending on the target collection). 
  • Failure to submit new user creation form with an actual email address gets a custom failure message.
  • Login error warning divs now disappear when you click/tap on them. They have also been re-styled at all break points to appear in better spots.
  • session.Session.save() now supports the 'verbose' kwarg, which allows it to be muted (and which should tamp down some of the log spam around JWT refresh activity).
  • Muted the save() call in api.refresh_jwt_token() to keep log spam down.
  • Deprecated/removed legacy webapp assets.Settlement class methods:
    • add/rm expansions
    • update location level
    • get_lost_settlements()
    • ad/rm methods for locations
  • Deprecated assets.Settlement.update_lost_settlements() from the class and from the modify() function.
  • Deprecated/removed the 'localhost_addr' item from settings.cfg and replaced it with a new method: utils.get_local_ip() uses the socket built-in and the old 8.8.8.8:80 trick to get the IP address of the main network interface.

API Improvements

  • Cleaned up the documentation, especially the methods/routes for settlement operations.
  • models.settlements.update_nemesis_levels() now validates incoming params (and fails if they are incomplete).
  • Removed some vestigial/deprecated angularjs directive code from the API documentation code.
  • Added support for a "verbose" kwarg to Models.get_request_params() for DRYer/simpler dev/debug request access.
  • Enhanced Models.UserAsset.log_event() to work regardless of the asset class calling it (formerly it only worked for settlement objects).
  • Models.UserAsset.load() now sets a generic 'settlement_id' value upon loading a survivor/settlement user asset (just out of sheer laziness).
  • Implemented and documented a models.survivors.toggle_sotf_reroll() method for updating a survivor's once-per-lifetime SotF reroll attribute. Gotta start somewhere!
  • Ported update_lost_settlements() method to API; enabled it as an API method. Wrote documentation.
  • Added documentation row/headers to make the docs more readable/searchable.
  • Deprecated {'expansion': 'HIDDEN'} hack in assets.epithets.
  • Ported 127 Abilities and Impairments from the legacy app to the API.
  • Removed the 'curse' dictionary from assets.abilities_and_impairments.py and absorbed the curses back into the core and expansions dictionaries
  • Models.set_assets_from_root_module() now respects assets' 'type' attribute (and does not overwrite it).
  • Keyed in a bunch of new epithets based on ported A&Is that used custom/one-off epithets.
  • Models.UserAsset.get_asset() now supports the use of 'backoff_to_name' kwarg which allows it to fail gracefully to a name lookup if it can't find the handle in self.assets.
  • models.survivors.get_survival_actions() now uses survivor Abilities and Impairments to determine what Survival Arts are available to the survivor.
  • Added new methods to models.survivors.Survivor that return bools for the survivor's ability to gain and spend survival; added these to survivor JSON
  • Created laziness method Models.UserAsset.list_assets() to create lists of asset dictionaries for any user asset. Should really help DRYness in the models.
  • Refactored models.survivors.Survivor.get_sex() to no longer hard code for the Belt of Gender Swap; did the same for models.survivors.Survivor.can_be_nominated_for_intimacy() and the "Destroyed Genitals" SI. 
  • Created models.survivors.Survivor.update_survival() method.
  • Removed api.thewatcher.service from git since it is installation-specific and created at install time now.

No comments:

Post a Comment