Replace em-dashes and en-dashes with hyphens across 789 shipped source files (py/xml/js/scss) so the delivered module reads as human-written; em-dashes had become a recognizable AI-generated tell. Internal .md dev notes are excluded. The WO-sticker mojibake strippers keep their dash search targets (now written — / –). No logic changes: comments and display strings only; validated with py_compile + lxml parse. Rewrite the 7 customer notification emails to be intake-neutral (ship-in / drop-off / pickup) and repair-aware, and fix the Shipped email documents line (packing slip vs bill of lading; certificate only when issued). Subjects use a hyphen separator. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
39 lines
1.3 KiB
Python
39 lines
1.3 KiB
Python
# -*- coding: utf-8 -*-
|
|
# Copyright 2026 Nexa Systems Inc.
|
|
# License OPL-1
|
|
"""Post-migrate for 19.0.9.0.0 - Aerospace/Defence cert partner toggles.
|
|
|
|
Backfills NULL -> FALSE on the three new Boolean columns added to
|
|
res.partner (x_fc_send_nadcap_cert, x_fc_send_mill_test,
|
|
x_fc_send_customer_specific). Idempotent; safe to re-run. Default
|
|
FALSE = opt-in (only aerospace/defence customers will see these
|
|
flipped on by the admin).
|
|
|
|
Without this backfill, existing partner rows would read NULL on
|
|
the new columns and the resolver's `if p.x_fc_send_nadcap_cert`
|
|
check would short-circuit cleanly anyway - but explicit FALSE makes
|
|
SQL queries / reports cleaner and matches the existing partner-flag
|
|
storage convention.
|
|
"""
|
|
import logging
|
|
|
|
_logger = logging.getLogger(__name__)
|
|
|
|
|
|
def migrate(cr, version):
|
|
if not version:
|
|
return
|
|
_logger.info(
|
|
'19.0.9.0.0 post-migrate: backfilling Aerospace/Defence cert '
|
|
'partner toggles to FALSE on existing res.partner rows'
|
|
)
|
|
for col in (
|
|
'x_fc_send_nadcap_cert',
|
|
'x_fc_send_mill_test',
|
|
'x_fc_send_customer_specific',
|
|
):
|
|
cr.execute(
|
|
"UPDATE res_partner SET %s = FALSE WHERE %s IS NULL" % (col, col)
|
|
)
|
|
_logger.info(' %s: %d rows updated', col, cr.rowcount)
|