A file value replaces the planned volume of an existing work. Before the
import the page now lists such works with their current and new volume
and unit, highlighting changes and greying out rows that stay the same,
so the user sees what will be overwritten.
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
After a clean check the page loads the existing works of each object and
shows how many works will be created and updated. "Import" writes them
with the same requests as the work dialog: a work with the same title on
the object gets only its planned volume and unit updated, so loading the
same file again does not duplicate works.
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
The /Import/StroyBot/Reports endpoint only validates the file, so the
check now runs as soon as a file is picked. When there are no errors,
"Import" builds the reports from the ids in the response and saves them
with the same Dataverse code as the report form: one report per date,
company, shift and object; resources nested under their work; idle and
repair hours as separate rows.
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Ports the weather check added to stroy-bot-main on 2026-10-16: daily
station weather, report positions with weather per shift and the AI
assessment of working conditions. Opens as ?page=weather&start=&end=
instead of the #weathercheck hash, and hub dates survive the way back.
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Import tests wait for an estimate in the catalogue: the API returns
totalCount 0 for every project.
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Units dictionary has around a hundred entries; typing now filters the
list and Enter picks the first match. Only dictionary values can be
chosen, as before. Generic SearchableSelect lives in shared until the
ui-kit gets one.
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Status choices in the Проекты list are Текущий / Архивный, so the legacy
archive rule matches real data; the projects portal writes its own
status to the API catalogue, which StroyBot does not read.
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Scenarios per section with expected results, role switching with one
account, side-by-side comparison with the legacy pages and a bug report
template, so the workbench check can be done systematically.
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>