You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
ongoing: find and fix/resolve sources of fatal exceptions, so that plans console can continue if dmg dies
rebuild / rebuild all: overhaul again: just-nuke-everything probably won't work since we need to preserve old outings (i.e. there is no source map assignment with the same title)
working directory / resource file directory locations - shared directory so other nodes can see?
download PDF to specified directory (and also specified shared dir), with filename that includes outing name, when generate PDF button is clicked
after initial trailer testing:
prior-outing creation: assignment AA (no number) with track AA101a - this probably means DMG wasn't started until after AA 101 was complete and unassigned; should create outing AA 101, possible with a message or note
add sync to plans console regardless of dmg:
keep assignment/team table in sync with assignments on map - two-way sync - populate table from map
investigate the broader topic of outing/team/assignment GUI and integration and capabilities, possibly like AssignmentTracker
allow intelligent display of multiple team markers in same assignment: we want them x pixels away from each other regardless of zoom, but that's not possible - maybe one marker with all team names in the label - investigate relevance
compound PDF generation from GUI (all outings for a given assignment shape; all K9 teams; etc)
better logging passing from sartopo_python
handled exceptions that stop sync should show a popup
geom op failure exceptions should show a popup
exiting fiddler (if it was running when pc started) causes sync abort - fix this
why call getFeature for sgt= at start of propertyUpdateCallback?
allow local print request - internet-only print is not reasonable - but handle the case where the local server does not generate a pdf (i.e. CTD 4214)
remember plans console AND debrief dialog locations (seemed to be reverting to screen#2)
config popup: map layer/s, utm grid, etc
get debrief tracks from apptracks (finished or not finished) as well as lines
allow operator to add notes from GUI, saved in json
change source track name: should change cropped debrief track name(s)
rebuild outing buttons (requires confirmation)
rebuild all button (requires confirmation)
checklist items from before 1/14/2022:
resolve high-priority sartopo_python issues
regression-test sartopo_python
update startopo_python on pypi
correspondence table (source-map IDs to target-map IDs (could be more than on, e.g. after crop)
change prop / geom on source map; it should automatically update in target map
import clues
import non-clue markers
import non-assignment lines and polygons
non-assignment lines and polygons should show up on debrief maps, but should not determine bounds of debrief map
should clues go into outing folders? Should assignment AA clues show up on team debrief map for AB?
restart handling - exit and restart the background process, after the target page already has several items in place - see restart handling #1
other high priority items 1/26/22:
crop: fix incorrect crop (see sartopo_python #41)
PC: make sure radiolog watching still works
PC: assignment entry should be case insensitive (Steve, Jan 20)
PC: incorrect entry should beep (Steve, Jan 20)
automated debrief map creation
plans console exit confirmation
propertyUpdateCallback does not receive geometry - change the function to deal with this fact
incident map: allow retry after failed connection
incident map: allow change while running plans console
debrief map: allow retry after failed connection
debrief map: allow change while running dmg
make sure restore still works; enhance as needed to include debrief map etc
log file name - don't call it dmg.log when dmg is not running - would be good to have a consistent name
clean up .rc file - dead entries, bad names, etc
decide a common working directory (log file(s), dmg_xxx_xxx.json, save_plans_console.txt (maybe a better name or format); and maybe a separate resource / options file dir too - plans_console.rc, sts.ini, etc; should not be the same as the code directory - maybe the same as radiolog data dir
log success or failure of connection attempt (and message box)
log clean shutdown request
roaming teams: don't crop to assignment boundary; how to determine crop shape if any?
features could be added after initial testing:
repeated widget creation during tick - is this a memory leak?
GUI: select map dialog should be shrink-wrapped to contents
GUI: select map dialog and options dialog should be fixed size after same-screen move
GUI: 'incident' doesn't fit in space allowed on certain screen size - generally, check for fit on resize
change debrief map default to 'new map'
GUI: gray out the 'Debrief Map ID' group box label when 'New Map' is selected
desktop icon (isn't there already a desktop icon for plans console / is this an issue specific to this repo?)
investigate dmg-startup on local 3char map, which is then synced as 4char: is restart dmg strictly required or would it work to just change the json name and keep going?
allow for different debrief types: show all outings in given area; show all K9 activity; etc
provide for duplicate track handling (GPS and apptrack from same searcher) - if appropriate, allow operator to choose which one to use; check accountId, see if it can be matched to username etc
geom ops: ensure unique suffix (i.e. check to see if a suffix already exists before using it)
features added to the list during testing, compiled 3-2-2022:
check for appropriate behavior of other feature types on source map: range ring, folder, viewshed, sector, etc
change name of new debrief map to reflect name of incident map (with dmg prefix or suffix)
exception during sync which causes sync to stop with or without messagebox, but does not cause a crash: need a GUI indication that sync has stoppped, and opportunity to restart - similar to pause/resume
incident map feature change folder - check for appropriate behavior
specify map dialog - select by map name, similar to map list
orphan utid (after track drawn outside assignment then title changed to whatever assignment it was drawn over, see sartopo_bg/bug: 'false' in dmg 'tids' causes TypeError #15): make sure print works; prevent the orphans in the first place, by deleting the other-outing utid when the track is re-imported to the correct outing
restore and dmg-with-existing-map: warning (or error) if dmd file not found
rebuild / rebuild all: overhaul again: just-nuke-everything probably won't work since we need to preserve old outings (i.e. there is no source map assignment with the same title)
does debrief map need initial processing at startup?
pause: debrief link lights sometimes stay green
scan code for 'TODO'/'TMG'/'hardcode'
PDF button invalidation (invalidate a button when its outing changes; invalidate all buttons that have changed non-owned features within their bounds)
PDF button grouping: needs-build on top, built on bottom, with separator
show PDF URL in PDF button / table row
detect when PDF is done loading, and show a spinner in PDF button until then
allow other computers to open debrief PDFs
progress bar for lengthy processing of a single sync result (large rjrsf in doSync)
'shutting down' messagebox
debrief table - highlight most recent cells
investigate putting PDF code into sartopo_python
investigate putting SelectMapDialog class and GUI into sartopo_python repo (they are PyQt-specific)
debrief table tooltips: outing/tracks/clues cells --> show outing/track/clue names table; notes column --> show full outing log; PDF column: show URL, time generated, etc
pdf options: line colors and weights
pdf: hide boundary label
pdf: hide track labels / draw a legend instead, even if it's actual features generated in the pdf
roaming teams - determine (or draw) crop shape
save backup before rebuild
asynchronous delete request for rebuild (like bulk ops)
investigate async requests for other processing
investigate using a separate thread for initial map pre-sync work which could take a few minutes of high CPU usage and would currently interfere with other plans console work
to investigate from training map PDF critique (accuracy / objective):
AB 102: AB102f, AB102c not cropped; check the crop shape; boundary is very strange
AC 101: apptracks with same titles as tracks: Ac101C, Ac101D - is this an issue? Are they the same data? Ac101C line has same ID as Ac101C apptrack, which does not appear in corr and was not imported to the outing - same with Ac101D
AI 103: utid in dmd - 66b3 <-- 13e9 = AI103A
AI 103: tracks AI103b, AI103d were not imported
AD 105: looks like bounds were calculated using tracks AD105a and AD105f that did not get cropped - why?
AJ 104: line AJ-104-f did not get imported to outing - trackParse should ignore hyphens
features added after PDF critique from training map:
omit team markers
omit medical markers (when different than team markers)
omit lines (and apptracks) where titles are searcher names (lastname#nnn or 'John Doe' etc)
IC marker should appear on top of LZ marker - does changing the order in the request affect the render order?
shorten long marker names like 'Mark 11/12/2021, 7:43:09 PM'
consider adding apptrack name change history as a tooltip in apptracks dialog
include assignment boundary color in legend
looks like bounds are calculated from cropped tracks as well as assignment boundary - is that appropriate?
consider a PDF orientation option (auto / landscape / portrait) - setting the landscape (even if the calculated bounds are portrait) would fill up the big screen with more map, but, is that relevant? It would result in a smaller scale when printing a portrait bounds on landscape paper.
consider cleaning straight-line track segments within the boundary (AD105d, AJ104b) - and find out why these exist when other tracks are high-resolution
consider coloring owned clues different than other clues (and drawing on top of other clues and on top of tracks, if possible)
PDF option for bounds-buffer-percentage?
companion program to run on other node(s), to watch shared dir (or dmd file or ?) for available debrief PDFs, with outing name and generation time, and open in web browser when clicked
testing - BASIC:
add several unnamed assignments, then reletter starting with AA; they should not become outings yet; then renumber; make sure each has its own folder with name and boundary, etc
batches: repeat the above in batches of new assignments (add some, autoletter, add some more, autoletter, etc)
add non-assignment-related features (IC, trail, etc): they should be imported to debrief map, in the default folder
import track: draw a line with appopriate track name for an existing outing; it should be imported with the correct color, cropped, moved to the correct folder, and appear in dmd
delete object from source map: remove from cache; delete corresponding target map feature(s); remove from dmd as appropriate (deleting an assignment should only delete the outing if there are no tracks or clues)
assignment boundary shape changed in source: should automatically update boundary of outing with matching name in target map (should it only update if the outing has no tracks or clues ?? - should it update at all once it is an outing?)
unassignment: number is removed from assignment: pairing entry should not be deleted or edited
edit assignment shape after unassignment: remove number from assignment; change assignment geometry; boundary of that assignment's previous outing should not change in target map
non-outing features: property edit in source should get propagated to target (color, symbol, etc)
non-outing features: geometry edit in source should get propagated to target
testing - ADVANCED:
import track after unassignment: imported tracks with old pairing's name should be imported and cropped correctly (requires that the old pairing folder was not deleted on unassignment)
repeated assignment with different team: 1) assignment AB 101 (should become an outing); 2) change to AB (unassignment); 3) change to AB 102: new pairing entry, new boundary and folder in target map should be created with same sid
unclaimed track: 1) line AB102a, 2) assignment AB 102: track should get imported to outing AB 102 and cropped
unclaimed track in passing: 1) assignment AB, 2) line AB102a, 3) change assignment to AB 102: track should get imported to outing AB 102 and cropped
unclaimed track after reassignment: 1) assignment AB 102, 2) line AB105a, 3) change assignment to AB 105: track should not be imported or cropped to AB 102, but should be imported and cropped to AB 105
unclaimed clue: 1) assignment AA, 2) clue owned by assignment AA (no outing exists yet), 3) assignment --> AA 101 - the unclaimed clue should be claimed by outing AA 101
unclaimed clue: 1) assignment (and outing) AA 101, 2) clue with no assignment value, 3) change clue assignment to AA 101
NOTE: this is a good time to compare data across restart, and to compare data across rebuild-all. Export json of the debrief map, rename it to include 'before-restart'; copy the dmg_xxx_yyy.json to include 'before-restart'; then do a restart and compare. Same comparisons for rebuild-all.
unclaimed track spanning restart: 1) line AB102a; 2) restart (after line is imported as unclaimed); 3) assignment AB 102: track should get imported to outing AB 102 and cropped
track added in source map with incorrect name (e.g. ACTIVE LOG...), then changed to correct name: should get imported to outing after rename
track added in source map with correct name for a different existing outing, then changed to correct name for assignment in question: target track should be deleted from incorrect assignment and moved to correct assignment - this affects crop as well as folder
clue owner change: 1) assignments AA 101 and AB 102; 2) clue owned by AA 101; 3) clue owner changed to AB 102: debrief table and dmd should update accordingly, but nothing else should change
clue owner name change: 1) assignment AB 102, 2) clue owned by AB 102, 3) change assignment to AB 103: clue should stay in same table row (note - clues are not placed into folders in debrief map, so that they will show up on all debrief pdfs)
track suffix changed in source map: no change to folder or crop, but track name and probably color should change
restart: compare dmg_ and exported .json before vs after - files should be identical
track suffix change spanning restart: properly named already-imported track: change suffix before restart: should be reimported with correct color and crop on restart
new features spanning restart: source features that don't already exist on target map should be imported to target map
updated geometry spanning restart: update geometries of existing corresponding features that changed before restart
updated properties spanning restart: update properties of existing corresponding features that changed before restart
testing - larger data
import bunch-o-lines.json; check for correct sync
import bunch-o-assignments.json; check for correct sync
import bunch-o-tracks.json; check for correct sync
import bunch-o-clues.json; check for correct sync
import json from a real search; check for correct sync
testing - plans console table:
These actions should happen when 'Ok' is clicked:
abort with message if named assignment doesn't exist
abort with message for multiple assignments with specified name
add team marker (medical if checked, team type if not)
when one number is specified: one number should get added to incident map assignment feature (preserve existing number(s))
when comma-delimited list of numbers is specified: all numbers should get added to incident map assignment feature
dmg: new outing(s) created as appropriate, for single-team as well as multi-team
if assignment = 'RM', remove the team marker and remove number from the assignment's 'number' field
if assignment = 'IC' and team type = 'LE', add marker offset from IC location
testing - apptracks:
generated PDF should include unfinished associated apptracks up to the latest update
new apptrack AA101a, with clean finish: show in associated table on start; remove from associated table on end and show in track count in debrief table ('0 + 1' --> '1')
new apptrack Joe123, then change title to AA101a from app, then finish: show in unassociated table initially, automatically shift to associated table on name change (and dmd and debrief table ('0' --> '0 + 1'), clean finish as above (debrief table track 0+1 --> 1; remove from associated table; show in tids in dmd)
apptrack name Joe123 for most or all of search, then rename to AA101a mid-search and leave unfinished: confirm it shows up on AA101 debrief map
apptrack name change from web browser or phone should propagate to apptrack dialog (with new correct association)
apptracks started before dmg startup - should be correctly handled as above in all cases
POSTPONED:
delete processed object from target map; it should automatically re-import to target map
companion program to run on other node(s), to watch shared dir (or dmd file or ?) for available debrief PDFs, with outing name and generation time, and open in web browser when clicked
The text was updated successfully, but these errors were encountered:
caver456
changed the title
development checklist
development and testing checklists
Aug 23, 2021
These items need to be done before the project is ready for testing during a training or incident:
Highest priorities as of 3/27/22, mostly taken from items below:
after initial trailer testing:
from 1/14/2022 design meeting:
checklist items from before 1/14/2022:
other high priority items 1/26/22:
features could be added after initial testing:
features added to the list during testing, compiled 3-2-2022:
to investigate from training map PDF critique (accuracy / objective):
features added after PDF critique from training map:
testing - BASIC:
testing - ADVANCED:
NOTE: this is a good time to compare data across restart, and to compare data across rebuild-all. Export json of the debrief map, rename it to include 'before-restart'; copy the dmg_xxx_yyy.json to include 'before-restart'; then do a restart and compare. Same comparisons for rebuild-all.
testing - larger data
testing - plans console table:
These actions should happen when 'Ok' is clicked:
testing - apptracks:
POSTPONED:
The text was updated successfully, but these errors were encountered: