T8.4 - CR-012: the delivery location is the shared vocabulary plus fifty feet
Staging is not the pain; the last fifty feet are - the correct floor lay-down,
shark cage or conduit tree instead of material picked at will by whoever is
closest. The Kitting & MIMO section gains:
- Delivery Building / Floor / Sector: the SAME dependent pickers CR-004 built,
through the same fillLocSelect (which learned an optional field-map instead
of being copied), reading the same project location lists, storing PATHS.
A parallel free-text location vocabulary is exactly what CR-004 removed;
none was added.
- A free-text detail field for the specifics ("Shark cage 7, conduit tree C"),
persisted as delivDetail.
- deliveryLoc, the composed display string (labels off the shared lists, then
the detail after a dash) - which is what the CR-011 email already reads
(kitting_body preferred deliveryLoc from day one, with mimoLoc as the
pre-CR-012 fallback) and what the package printout now carries as its own
Delivery Location row.
Verification (each probe run alone): kitting_check.py extended to 26/26 (the
delivery selects are asserted to offer the SAME option list as the CR-004
trio, values persist as paths, the printout carries the composed value);
kitting_notify_check 17/17 now asserting the mail carries CR-012's composed
value, not the fallback. Regression: locations_check 58/58.
Items: CR-012
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
@@ -38,7 +38,9 @@ def ascii_(v, n=300):
|
||||
def save_wp(base, tok, kit_status, extra=None):
|
||||
data = {"constraints": [{"name": "Materials", "status": "cleared", "comment": ""}],
|
||||
"kitStatus": kit_status, "kitOwner": "Sue", "kitOwnerId": "user_sue",
|
||||
"distributionIds": ["user_pat"], "mimoLoc": "Staging 04, dock B"}
|
||||
"distributionIds": ["user_pat"], "mimoLoc": "Staging 04, dock B",
|
||||
# CR-012 (T8.4): the composed delivery location wins over mimoLoc
|
||||
"deliveryLoc": "B-100 / Level 3 / Sector East — Shark cage 7"}
|
||||
data.update(extra or {})
|
||||
return api(base, "/api/wps", tok, "POST", {
|
||||
"id": "wpKN1", "project_id": "projA", "number": "KN-1",
|
||||
@@ -108,7 +110,8 @@ def main():
|
||||
chk("the mail says old status, new status and who",
|
||||
"In Transit" in body and "Delivered" in body and "Root" in body,
|
||||
ascii_(body, 260))
|
||||
chk("...and the delivery location", "Staging 04, dock B" in body)
|
||||
chk("...and the delivery location - CR-012's composed value, not the "
|
||||
"mimoLoc fallback", "Shark cage 7" in body and "Staging 04" not in body)
|
||||
chk("...and a deep link to THAT package, not the app root",
|
||||
"/wp-creation-index.html?project=projA&wp=wpKN1" in body)
|
||||
chk("...in the house convention (greeting + automated-message footer)",
|
||||
|
||||
Reference in New Issue
Block a user