VxAdmin: Import ERR CDF
Thread reference: https://votingworks.slack.com/archives/CE7LM9LQ2/p1711126552821739
We need to add some ability to import ERR CDF. If we allow generically importing ERR CDF alongside CVRs, we encounter a lot of trouble. First of all, what cut does the ERR CDF represent? If it's only whole election results, then we can no longer generate many of our report cuts and would have to just disable them. Also, we would have to build a whole new representation of the ERR results on the backend. Even if we disable uploading CVRs at the same time, we still would have to suss out the structure / cuts of the ERR data and toggle behavior accordingly unless we just always assume it's full election results. Our manual results, however, already exist, and were designed to address some of these concerns. Manual results require you to enter the ballot style, precinct, and ballot type ahead of time so we work it into our cuts. As a result, we can shoehorn the ERR CDF import into our manual results flow and avoid the complexity of an entirely new source of results.
UX-wise, here's what this could look like:
- On the manual tally summary page, in addition to the "Add Tallies" button there would also be an "Upload Tallies" button. "Add Tallies" could be renamed "Enter Tallies." When you click the "Upload Tallies" button, a modal pops up describing the import requirements (ERR). You can select a file.
- The backend attempts to parse the file and store as a manual results blob on the backend. We'll have to start indicating which manual results are from upload and which are not. Parsing failure is surfaced to the user.
- The summary page now shows the uploaded data in the list. It has a remove button but, unlike the manually entered tallies, it has a "View" button instead of an "Edit" button.
- If you click "View," you're taken to the manual tally entry page but all form entry is disabled.
In this way, we can add a meaningful (if niche) ERR import functionality without touching the core tally logic this close to certification.
@adghayes to flesh this out with more specific direction
@mattroe @kshen0 I updated the description with my vision for this feature - please let me know if you have suggested tweaks or concerns.