ixg_platform/apps/ops
ixgadmin 5e201b2035 Add a shipment entry screen to the ops portal
Walkthrough step 11 said shipment records came through the API or the admin
area, because the portal was read-only. The list and detail pages now carry New
shipment and Edit shipment controls, with /ops/shipments/new/ and
/ops/shipments/<uuid>/edit/ mirroring the intake and batch screens.

The form requires the fields the buyer's page reads — status, vessel, container,
ETD and ETA — and refuses a departure after the arrival. The bill of lading and
the forwarder stay optional, and the ports keep their model defaults. A batch
that already has a shipment is flagged in the dropdown and warned about after
saving rather than blocked, because a split consignment is legitimate. The batch
dropdown labels each batch with its own journey status, and a card explains that
the two statuses are independent.

Also fixes a pre-existing defect the new screen would have shared: the native
date inputs were rendered in the en-gb d/m/Y format, which the browser discards,
so the intake and batch edit forms silently opened with empty dates. They now
carry the ISO format a native date input requires.
2026-09-17 16:03:09 +00:00
..
static/js Add an intake screen to the ops portal 2026-09-17 13:45:39 +00:00
__init__.py Initial commit: IXG Platform 2026-07-29 16:48:48 +00:00
apps.py Initial commit: IXG Platform 2026-07-29 16:48:48 +00:00
forms.py Add a shipment entry screen to the ops portal 2026-09-17 16:03:09 +00:00
tests.py Pin the batch form wording to what the form actually does 2026-09-17 14:50:07 +00:00
urls.py Add a shipment entry screen to the ops portal 2026-09-17 16:03:09 +00:00
views.py Add a shipment entry screen to the ops portal 2026-09-17 16:03:09 +00:00