IDENTITY

title: "TICKET_043B: Add Missing Odoo Module Dependencies"
type: ticket
subtype: execution
purpose: "Add Project, Approvals, Email Marketing, Sign, and Studio to struxio_iso19650 depends list."
status: done
priority: P0
sprint: S001_base_and_mvp1
assignee: "Claude Code (Sonnet 4.6)"
estimated_hours: 0.5
depends_on: [TICKET_043]
blocks: [TICKET_044]
last_updated: "2026-03-17"

TICKET_043B: Add Missing Odoo Module Dependencies

Objective

Add 5 missing Odoo Enterprise modules to struxio_iso19650/__manifest__.py depends list so they auto-install with our module.

Critical Constraint

DO NOT GUESS module technical names. The v19 names may differ from documentation.

Execution Plan

Task 1: Verify exact v19 module names (5 min)

SSH or webshell into Odoo.sh, then run:

odoo-bin shell -c "
for name in ['project', 'approvals', 'mass_mailing', 'sign', 'web_studio']:
    m = env['ir.module.module'].search([('name', '=', name)])
    print(f'{name}: {m.state if m else \"NOT FOUND\"} (shortdesc: {m.shortdesc if m else \"N/A\"})')
"

If any name returns NOT FOUND, search for the correct name:

odoo-bin shell -c "
for kw in ['project', 'approv', 'mail', 'sign', 'studio']:
    matches = env['ir.module.module'].search([('name', 'like', kw)])
    for m in matches[:5]:
        print(f'{m.name}: {m.state} ({m.shortdesc})')
    print('---')
"

Task 2: Update manifest.py (2 min)

Add the verified module names to the depends list in:
STRUXIO_App/odoo_erp/struxio_iso19650/__manifest__.py

Task 3: Git commit and push (2 min)

cd /Volumes/CORSAIR/STRUXIO_HardDrive/STRUXIO_Workspace/STRUXIO_App
git checkout -b fix/TICKET_043B_missing_modules
git add odoo_erp/struxio_iso19650/__manifest__.py
git commit -m "fix(iso-19650): add missing module dependencies (project, approvals, sign, email marketing, studio)

Adds 5 Enterprise modules to depends list so they auto-install.
Module names verified via odoo-bin shell on live v19 instance.

Closes: TICKET_043B"
git push -u origin fix/TICKET_043B_missing_modules

Task 4: Monitor build and verify (10 min)

Wait for Odoo.sh rebuild, then verify:

odoo-bin shell -c "
for name in ['project', 'approvals', 'mass_mailing', 'sign', 'web_studio']:
    m = env['ir.module.module'].search([('name', '=', name)])
    print(f'V-{name}: {m.state}')
print('---')
print('TOTAL INSTALLED:', env['ir.module.module'].search_count([('state', '=', 'installed')]))
"

Also verify build badge is still GREEN.

Task 5: Merge PR (2 min)

If build passes, merge PR to main via gh pr merge.

Acceptance Criteria

Verification Commands

# Must all return "installed"
for name in ['project', 'approvals', 'mass_mailing', 'sign', 'web_studio']:
    m = env['ir.module.module'].search([('name', '=', name)])
    assert m.state == 'installed', f'{name} NOT installed: {m.state}'
    print(f'✅ {name}: installed')

Rollback

git revert HEAD && git push — existing modules unaffected.


STRUXIO.ai // Confidential & Proprietary // © 2026