Adds a new unique attribute on the ContactProperties in config. These properties can be on place_properties or contact_properties.
When unique attributes are set on place_properties, they actually verify the true uniqueness of the data by checking it against production data on the instance. When unique attributes are set on contact_properties, they verify only the uniqueness of the data within the current batch of loaded jobs. This was done for performance reasons to avoid downloading and managing the cache of thousands of person contacts.
Adds a new WarningSystem library which supports abstract "Warning Classifiers"
Adds UniquePropertyClassifier to trigger warnings whenever data is not unique (eg. the CHP Area name is not unique within the CHU; or the CHU code is not unique within the county)
Adds RedundantReplaceClassifier to trigger warnings whenever multiple entries are replacing the same place
Integration tests capture requirements for 20 unique warning scenarios
Updates Kenya, Uganda, and Togo configs to specify keys which should be unique
Here is how warnings appear to the user:
Other Stuff:
161 broke the credential download experience, so I refactored that so there is a single test for it
Bug Fix: proper sorting of breadcrumbs when moving CHPs
Bug Fix: clicking on places in the move_result screen should open them in new windows so the posted information isn't lost
Refactors the interface on RemotePlaceCache to fetch and cache all needed information in parallel and to store only the needed information required to ensure uniqueness
20
Note this is based on #161
Warning System:
unique
attribute on theContactProperties
in config. These properties can be onplace_properties
orcontact_properties
.unique
attributes are set on place_properties, they actually verify the true uniqueness of the data by checking it against production data on the instance. Whenunique
attributes are set on contact_properties, they verify only the uniqueness of the data within the current batch of loaded jobs. This was done for performance reasons to avoid downloading and managing the cache of thousands ofperson
contacts.Here is how warnings appear to the user:
Other Stuff:
161 broke the credential download experience, so I refactored that so there is a single test for it
RemotePlaceCache
to fetch and cache all needed information in parallel and to store only the needed information required to ensure uniqueness