Wednesday, October 18, 2017

Change Log: 2.38.777 (API r0.61.581)

http://thewatcher.io Alpha release coming soon!
Before I get into the notes for release 2.38.777, since 1.5 shipping is already underway, I should reiterate that I'm probably going to be going back to daily/every-other-day updates very soon: this release will probably be the last "major upgrade" type of release (where I add/enhance multiple features) for a while.

Also, hanks to everyone who responded to The Watcher alpha-release survey when it went out yesterday! We're going through the responses now!

OK, so as far as this release goes, I am happy to announce that release 2.38.777 (finally) pushes the major upgrades to the Campaign Summary view that I have been teasing lately, including:
  • The view pulls all settlement data from the API now: literally nothing comes from the legacy webapp, which should dramatically improve load times.
  • Survivors can be moved into/out of the Departing survivors group without reloading the view (though it does spin the wheel for a second while it refreshes...for now).
  • Individual Survivor's basic stats (Courage, Understanding, etc.) can be updated from the Campaign Summary view, i.e. without having to open their Sheet.
  • The Campaign Summary view checks itself on load and, if you cannot manage any survivors, will reinitialize until you can.
  • Dead survivors get a big, red 'X' over their avatar on the Campaign Summary. Which...just makes me happy, for some reason.
There is also a heaping helping of bug/presentation fixes in this one as well: as usual, thanks to everyone who has checked in with an issue since the last release went out!

And thanks for using the Manager!

Corrections and Fixes

  1. Fixed a stupid mistake in request_broker.py that caused tracebacks when an Admin Panel API call failed.
  2. Resolved a typo-related issue that prevented the utils.InvalidUsage() method from logging/alerting on failures
  3. Resolved an issue that prevented legacy settlements (I'm talking really old) from loading and could break the dashboard (i.e. prevent settlements/campaigns from loading).
  4. Addressed an issue where clicking on a survivor name to edit it and then not editing it could throw an API error due to a bizarre typo problem.
  5. Fixed some logging in the API Settlement object's set_principle() method that didn't have its string substitutions.
  6. Addressed an issue where unsetting a settlement principle could throw an exception
  7. Using the Settlement Sheet's "unset principle" controls no  longer "removes" non-set principles or adds lines to the settlement Event Log. -Alex J
  8. The Campaign Summary's population count by sex no longer includes dead survivors.
  9. Fixed an issue where the Campaign Summary incorrectly represented settlement death count if survivor COD's had been changed.
  10. Addressed a presentation issue where the 'X' that closes the modal window could appear in random locations at mobile resolution.
  11. Addressed an issue where the Survivor's update_survival() method could only be called via API request (i.e. if you called it from another request or from outside of a request, it threw an exception during initialization).
  12. Survivors with the 'Secretive' disorder are (once again) automatically forced to skip the next hunt.
  13. Fixed an issue where endeavor tokens were set prior to survivor return in the event log.
  14. Addressed a presentation issue where the Dashboard "alert" button could look weird at especially wide resolutions.
  15. Cleaned up the wide resolution presentation of the Dashboard "updates" modal (i.e. the Twitter stuff) so that Twitter's dumbass embed isn't gigantic at wide resolution.
  16. Normalized presentation of the Campaign Summary Endeavors control subtitle text.

Application Enhancements

  1. Upgraded the Campaign Summary view:
    1. Swapped out legacy webapp calls for settlement attribs (e.g. population, death count, etc.) with references to API data in JS scope
    2. Replaced the 'sex_count' template substitution with a reference to the new API data (see below)
    3. Moved the 'no survivors' error/alert into the AngularJS HTML code (it's not its own method anymore). The error/alert now shows based on API data, rather than legacy webapp data.
    4. Updated kdmManager.js and the initialize() method to support the initialization of the settlement via the API's new get_campaign route.
    5. Survivor controls only appear now if there is a survivor in the group; same goes for individual group headings.
    6. Added a new controller to campaignSummary.js for managing survivors.
    7. Moving survivors into and out of the Departing group no longer reloads the view.
    8. Insane survivors Insanity score appears in maroon on the Campaign Summary view.
    9. Dead survivors may no longer be added to the Departing group.
    10. Death count is given as 'death' if there's only one.
    11. Deprecated html.Survivor.campaign_asset HTML stub.
    12. Deprecated the Survivors join_departing_survivors() method and removed support for it from modify()
    13. The "Manage Departing Survivors" button now says how many survivors it manages.
    14. Deprecated legacy webapp can_manage_departing_survivors() method of the User object and the modify_departing_survivors() method of the Settlement object.
    15. Departing Survivors control button appears/disappears depending on whether survivors are in the Departing group. 
    16. Deprecated the Survivor's heal() method.
    17. Deprecated the Survivor's update_returning_survivor_years() method and removed all references to it.
    18. Deprecated the brain_damage() method (which was all kinds of screwed-up: it's amazing that worked at all).
    19. Deprecated the return_departing_survivors() method and ported it to the API.
    20. Survivors are flagged as "Returning Survivors" in the years they are Returning survivors as well as when they are Returning survivors in current LY - 1.
    21. Survivor "groups" now have an up/down expand/collapse type arrow that changes when groups are shown or hidde.
  2. Killed the legacy webapp Settlement object's get_genealogy() method. (It's been superseded by the more than adequate API get_lineage() stuff at this point and...I don't figure we'll need to revisit it, so it's dead for real now.)
  3. Deprecated the legacy webapp's need for and ability to retrieve API assets:
    1. Removed the Survivor object's get_api_asset() and set_api_asset() methods.
    2. Removed the bit in the Survivor's initialize() method where it did API stuff.
  4. Removed support the the Campaign Summary style get_survivors() 'return_type' in the Settlement's get_survivors() method.
  5. Added "last chance" overwrites to the main style.css file for "hit it with a hammer" overwrites. Added the affinity/savior and 'disabled' styles to the section.
  6. Created a 'dragon_king' CSS style with a cool radial gradient.
  7. The all-important postJSONtoAPI() method now backs off to $rootScope when looking for a survivor OID to modify (i.e. so the other JS modules can bubble-up params to it via $rootScope, which is a dirty hack, but ask me if I give a shit).
  8. Clicking the sidenav/burger buttons shows the full-page loader now if the button changes the view. It's nice.
  9. Incrementing/decrementing survivor attributes on the Survivor Sheet no longer re-inits the whole settlement.
  10. Refactored the initialize() method and moved the logic for setting the 'user_endpoint' and 'settlement_endpoint' variables in kdmManager.js 
  11. Clicking the Dragon Traits button on the Survivor Sheet re-calcs the Constellations table.
  12. Clicking on the burger/sidenav button to return to the Dashboard shows the full-page loader and closes the nav.
  13. Keyed in a whole grip of male, female and settlement names from The Watcher survey.

API Development

  1. Enhanced the Settlement object's get_population() method to accept a 'return_type' kwarg value of 'sex' (this gets you a dictionary where we count survivors according to their effective sex).
  2. The Settlement object's get_survivors() method now supports the 'return_type' kwarg value 'groups', which gets you back a element under user_assets that organizes the survivors by groups (for use in Campaign Summary type views).
  3. Added a new settlement route /settlement/get_campaign/<oid> which gets you the 'groups' type settlement object back.
  4. Documented the get_campaign route.
  5. utils.InvalidUsage() now has the ability to write to the 'error.log' log. It also has email hooks still, but that's not implemented yet.
  6. Added support to the Survivor and Settlement objects for departing/returning:
    1. The survivor attribute 'in_hunting_party' has been deprecated and is converted to 'departing' on normalization: the baseline() method sets it to a Boolean.
    2. Added 'departing' to the survivor data model (and the docs). Also added it to the survivor status flags (making it settable by the set_status_flag() method, etc.)
    3. Created a return_survivor() method for the Survivor object (that ports the deprecated heal() method from the legacy webapp).
    4. Created a reset_attribute_details() method for survivors that zeroes out all 'attribute_detail' data. Updated other class methods to use it.
    5. Added update_returning_survivor_years() method to Survivor class object (ported it from legacy).
    6. Added a reset_damage() method that removes all damage keys. 
    7. Added support for 'on_return' attrib disorders to the return_survivor() method.
    8. Added a return_survivors() method to the Settlement object, which basically ports the old one, but takes advantage of the native API methods instead of hardcoding a bunch of crap.
    9. Added a new route /settlement/return_survivors/<oid> to the API; documented it.
  7. The Survivor's set_status_flag() method now supports unsetting via API call.
  8. Added the /get_random_names/<count> route; wrote a get_random_names() method for the names Asset class. -Caleb
  9. Wrote a nice documentation entry for get_random_names
  10. The Settlement object's get_survivors() method can now exclude dead survivors.
  11. Added a route and a Survivor object method called set_bleeding_tokens() that allows for direct sets. -Khoa
  12. Documented the set_bleeding_tokens() route.
  13. Recent settlements in the Admin Panel now appear with the OID.
  14. Added a new method to the Settlement object called update_survivors() that updates a single attribute according to an incoming modifier for survivors in a target group.
  15. Calling the Survivor's update_attribute() method attempting to update Survival hands the request off to the Survivor's update_survival() method.
  16. Similarly, the update_attribute() method will hand off requests to update 'brain_event_damage' to the damage_brain() method.
  17. The Survivor object's update_attribute() method enforces a hard maximum of nine for Courage and Understanding.
  18. Added the update_survivors() route for Settlements and documented it.
  19. Ported the Survivor damage_brain() method from the legacy webapp.
  20. The Settlement object's get_survivors() method now supports the 'departing' value for kwarg 'return_type', which gets you a list of un-initialized survivors with 'departing=True'. 

No comments:

Post a Comment