Release 0.8.1
This commit is contained in:
55
CHANGELOG.md
55
CHANGELOG.md
@@ -10,6 +10,61 @@ ADR-007 and ADR-002.
|
||||
|
||||
## [Unreleased]
|
||||
|
||||
## [0.8.1] - 2026-08-05
|
||||
|
||||
Everything here shipped after v0.8.0 was tagged the same morning, driven by two
|
||||
sites putting real data in for the first time. Most of it is defects that only
|
||||
appear when somebody who did not build the software tries to use it.
|
||||
|
||||
### Fixed
|
||||
|
||||
- A blank optional code could be saved once and never again. A unique nullable
|
||||
column accepts any number of NULLs but exactly one empty string, so the second
|
||||
business unit with no code collided with the first and returned 500 from a
|
||||
field the form correctly showed as optional. Blank now stores as NULL, which
|
||||
covers every unique nullable column - asset numbers, hostnames, item codes,
|
||||
subnet names, gage-lab tags - not just the one that was reported. A genuine
|
||||
duplicate answers 409 with a readable message instead of a bare 500.
|
||||
- A lobby display with exactly two slides never changed between them. The
|
||||
slideshow was started twice, and two timer chains advancing one slide each
|
||||
landed back on the first every cycle. With three or more slides it advanced by
|
||||
two and merely skipped one, which is why it went unnoticed. The per-slide
|
||||
duration the feed has always sent was also ignored in favour of a hardcoded
|
||||
ten seconds.
|
||||
- Clicking slightly outside a modal discarded a part-filled form, in 35 modals
|
||||
across 30 files. Confirmation dialogs still dismiss that way, since they hold
|
||||
nothing to lose.
|
||||
- Selecting a filter while past page one returned an empty list, because the
|
||||
filter asked for page five of a result set that now had one page.
|
||||
- Model photos could not be saved: an uploaded photo sets the field to an
|
||||
application path, and the input was type="url", which demands an absolute
|
||||
address. The upload button was also hidden when creating a model.
|
||||
- An empty bordered box appeared after Notes on the network device form.
|
||||
|
||||
### Added
|
||||
|
||||
- The equipment catalog travels. `flask seed catalog` loads 53 vendors, 128
|
||||
models with photos, 146 printer supply part numbers and every type vocabulary,
|
||||
so a new site can start adding printers immediately instead of retyping a
|
||||
catalog another site spent a year building. Idempotent and additive; catalog
|
||||
only, with nothing site-specific. Offered by the installer as a tick-box and
|
||||
by the operator console.
|
||||
- `shopdb-admin.ps1 repair` completes an interrupted provisioning, and `check`
|
||||
now says when a server is not fully provisioned instead of leaving it to be
|
||||
inferred from 500s on unrelated pages.
|
||||
- Network devices can be linked to a catalog model, and their map position is
|
||||
picked on the floor plan rather than typed as coordinates.
|
||||
- An asset's vendor and type can be derived from its catalog model, by exact
|
||||
name match only, with a reviewable backfill script.
|
||||
|
||||
### Changed
|
||||
|
||||
- Labels say whose type they mean: Machine Type, PC Type, Printer Type, Device
|
||||
Type, next to the catalog's Model type.
|
||||
- The 3D parts kiosk label prefix is a setting rather than one site's initials
|
||||
hardcoded in the source.
|
||||
- The operator console menu is grouped by what each action touches.
|
||||
|
||||
## [0.8.0] - 2026-08-05
|
||||
|
||||
First release to carry the Windows installer. Everything below shipped after
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "shopdb-frontend",
|
||||
"version": "0.8.0",
|
||||
"version": "0.8.1",
|
||||
"private": true,
|
||||
"type": "module",
|
||||
"scripts": {
|
||||
|
||||
@@ -42,7 +42,7 @@ __contract_version__ = '0.15.0'
|
||||
# plugin-contract version above are distinct series with independent
|
||||
# bump rules. Not part of the shopdb.api contract surface, so it is
|
||||
# not re-exported there.
|
||||
__version__ = '0.8.0'
|
||||
__version__ = '0.8.1'
|
||||
|
||||
|
||||
def create_app(config_name: str = None) -> Flask:
|
||||
|
||||
Reference in New Issue
Block a user