[bot] Merge 26.7 to 26.8 - #1177
Merged
Merged
Conversation
## Rationale Fixes a set of bugs that let the EHR bulk add importer write wrong or incomplete data without reporting anything, in the UI, the browser console, or the server log. Because nothing fails, the damage is only discoverable by diffing the loaded data back against the source, so an import can appear clean while carrying shifted dates, missing dates, lookup values swapped for unrelated ones, animal ids carrying stray whitespace, whole columns absent because their header was spelled differently, and — on tables whose key is assigned by the server — only the last of the pasted rows. The reporting added here echoes pasted text back to the user, so it is escaped; an import commonly starts from a spreadsheet someone else produced. ## Changes - Every date column is parsed like the form's primary date field. The others were read as UTC, so they landed a day early in a negative-offset timezone, and a date on the epoch was dropped as empty. - Lookup and project values require an exact match rather than a leading substring, so a value can no longer resolve to an unrelated record that merely starts with the same text. Matching stays case-insensitive and accepts either the display value or the key. - Every pasted cell is trimmed. A padded animal id previously went in as pasted, registering a second animal on forms that create the animals they name. - A value that resolves to no lookup, project, or date is reported against its row instead of being written through as raw text or left empty, and the import stops so the source can be corrected first. - Pasted text is escaped wherever it appears in an error message. - Headers are matched by a field's name, label, or any import alias, as the rest of the product does. Only the exact name and a single alias were tried before, so any other spelling dropped the column silently. - An unrecognized or duplicated header stops the import before any row is read. Note the behavior change: a spreadsheet carrying extra columns the form does not have must have them removed, where previously they were ignored. - Trimming the pasted block no longer strips tabs, which were the final row's empty trailing cells and made an otherwise correct row look truncated. - A line holding no values is skipped rather than reported as missing every required field, and no longer counts toward the 250-row limit. - A row is measured against the last column a required field occupies rather than the number of required fields, so a row missing only optional trailing cells is no longer rejected. - A problem belonging to the header row is reported once rather than restated on every one of up to 250 rows. - Several rows pasted into a table keyed on a server-assigned column stay separate records instead of collapsing onto the last one.
In 26.7 I noticed some error logs on our server. It's cause by this query no longer parsing correctly. I dont know why it's just now being reported (maybe LK tightened some query syntax in 26.7). Nonetheless, I think this is an obvious (and old) typo.
cnathe
approved these changes
Aug 4, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Generated automatically.
Merging changes from: 5fda1bf
Approve all matching PRs simultaneously.
Approval will trigger automatic merge.
Verify all PRs before approving: https://internal.labkey.com/Scrumtime/Backlog/harvest-gitOpenPullRequests.view?branch=26.8_fb_bot_merge_26.7