Zwei Fehler in der EAN-Liste einer Gruppe, beide gemeldet und nachgestellt. Derselbe Code stand zweimal in der Liste: einmal schreibgeschuetzt mit der Kennzeichnung "Artikel", einmal darunter mit Notizfeld. Grund war, dass _group_to_out die Codes der Artikel unabhaengig von den Gruppen-Codes zusammengestellt hat - seit die Zuordnung automatisch einen Gruppen-Code anlegt, trifft beides auf denselben Code zu. Die schreibgeschuetzte Zeile stand oben, deshalb war das Notizfeld darunter leicht zu uebersehen. Jetzt gibt es eine Zeile je Code. Der Gruppen-Code fuehrt den Artikel mit, ueber den er dazugehoert (neues Feld product_name in BarcodeOut), zeigt weiterhin die Kennzeichnung "Artikel" - und hat trotzdem ein Notizfeld. Der Muelleimer entfaellt bei diesen Codes, denn sie kaemen beim naechsten Speichern des Artikels sofort zurueck; dafuer muss der Artikel die Gruppe wechseln. Zweitens fehlte fuer bestehende Daten der Code ganz. Die automatische Pflege greift nur beim Anlegen und Aendern eines Artikels; Zuordnungen, die es vorher schon gab, hatten nie einen Gruppen-Code bekommen. In der Verwaltung stand der Code deshalb ausschliesslich als schreibgeschuetzte Artikel-Zeile - genau die Stelle, an der sich keine Notiz hinterlegen liess. Neu holt backfill() das beim Start nach: fuer jeden Artikel mit Gruppe und Barcode wird der Gruppen-Code angelegt, sofern er fehlt. Gefahrlos wiederholbar. Getestet: 58 pytest-Tests gruen, einer neu (Backfill legt den fehlenden Code an und beim zweiten Lauf nichts doppelt). Der gemeldete Fall wurde vorher gegen die laufende API nachgestellt - Altbestand ohne Gruppen-Code und ein doppelt gelisteter Code nach einer Neuanlage - und danach als behoben bestaetigt: eine Zeile je Code, mit Artikelnamen und Notizfeld. Web-Build laeuft durch. Die Oberflaeche habe ich nicht selbst bedient. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
61 lines
1.2 KiB
JSON
61 lines
1.2 KiB
JSON
{
|
|
"fill" : {
|
|
"automatic-gradient" : "display-p3:0.68468,0.62596,1.03953,1.00000",
|
|
"orientation" : {
|
|
"start" : {
|
|
"x" : 0.5,
|
|
"y" : 0
|
|
},
|
|
"stop" : {
|
|
"x" : 0.5,
|
|
"y" : 0.7
|
|
}
|
|
}
|
|
},
|
|
"groups" : [
|
|
{
|
|
"layers" : [
|
|
{
|
|
"fill-specializations" : [
|
|
{
|
|
"appearance" : "dark",
|
|
"value" : {
|
|
"solid" : "extended-gray:1.00000,1.00000"
|
|
}
|
|
},
|
|
{
|
|
"appearance" : "tinted",
|
|
"value" : {
|
|
"automatic-gradient" : "extended-gray:0.25000,1.00000"
|
|
}
|
|
}
|
|
],
|
|
"glass" : false,
|
|
"image-name" : "barcode-gelesen.svg",
|
|
"name" : "barcode-gelesen",
|
|
"position" : {
|
|
"scale" : 1.4,
|
|
"translation-in-points" : [
|
|
0,
|
|
0
|
|
]
|
|
}
|
|
}
|
|
],
|
|
"shadow" : {
|
|
"kind" : "neutral",
|
|
"opacity" : 0.5
|
|
},
|
|
"translucency" : {
|
|
"enabled" : true,
|
|
"value" : 0.5
|
|
}
|
|
}
|
|
],
|
|
"supported-platforms" : {
|
|
"circles" : [
|
|
"watchOS"
|
|
],
|
|
"squares" : "shared"
|
|
}
|
|
} |