• DevPilot's avatar
    fix(rentals): contract page fataled for every approved contract · 808c63d1
    DevPilot authored
    I broke this. The page-actions block reads $gracePeriod to build the
    bulk-generate confirmation, but $gracePeriod was computed inside the content
    block — and page_actions renders first, so the variable did not exist yet.
    Production turns that notice into a fatal, so the contract page died outright.
    
    It had always been wrong; it was simply unreachable, because the guard above it
    requires status approved or active and until yesterday no contract could reach
    those states (the approve button was hidden on drafts). Making approval possible
    made the broken path reachable, and I shipped it without exercising the page in
    the state I had just unlocked.
    
    The shared variables now sit above both sections, which is where anything either
    section needs has to be.
    
    Why the test missed it: I was piping render output through `grep -v Warning:`,
    which filtered out the exact notice that is fatal in production. The check now
    installs an error handler that promotes every notice to an exception — the same
    thing ExceptionHandler does — and renders the contract page in all eight
    statuses and the invoice page in all three. All pass.
    Co-Authored-By: 's avatarClaude Opus 5 <noreply@anthropic.com>
    808c63d1
Name
Last commit
Last update
..
contract_form.php Loading commit data...
contract_show.php Loading commit data...
entities.php Loading commit data...
entity_form.php Loading commit data...
entity_show.php Loading commit data...
index.php Loading commit data...
invoice_form.php Loading commit data...
invoice_show.php Loading commit data...