Summary
spp_programs/models/cycle_base.py is dead code: it has never been imported in spp_programs/models/__init__.py (checked back to the initial v2 export, 4da8e30e). The live spp.cycle model is defined in spp_programs/models/cycle.py; cycle_base.py is a stale near-duplicate (~700 lines) that defines the same _name = "spp.cycle" but is never loaded by Odoo.
$ grep -n "cycle" spp_programs/models/__init__.py
from . import cycle
from . import cycle_membership
# no cycle_base
Why it matters
Proposed fix
Delete spp_programs/models/cycle_base.py. Before deleting, diff it against cycle.py to confirm nothing in it is newer than the live implementation (spot-check suggests it's an older snapshot, but the diff should be part of the PR description).
No manifest version bump strictly needed if we treat unloaded files as non-functional, but per convention a micro bump + HISTORY note is cheap and keeps the audit trail clean.
Found while
Reviewing PR #300 / issue #236 (locale-aware total_amount_in_words).
Summary
spp_programs/models/cycle_base.pyis dead code: it has never been imported inspp_programs/models/__init__.py(checked back to the initial v2 export,4da8e30e). The livespp.cyclemodel is defined inspp_programs/models/cycle.py;cycle_base.pyis a stale near-duplicate (~700 lines) that defines the same_name = "spp.cycle"but is never loaded by Odoo.Why it matters
cycle_base.py:128-135— the dead file — while the live bug is the identical code incycle.py. PR fix(spp_programs): locale-aware total_amount_in_words (#236) #300 patched the right file, but only after untangling this; the dead copy still carries the hardcodedlang="en"bug and will keep matching greps.cycle_base.pydeclarescurrency_idwith a company-currency default, while the livecycle.pyhas it related toprogram_id.currency_id(store=True). Anyone reading the wrong file gets the wrong model.Proposed fix
Delete
spp_programs/models/cycle_base.py. Before deleting, diff it againstcycle.pyto confirm nothing in it is newer than the live implementation (spot-check suggests it's an older snapshot, but the diff should be part of the PR description).No manifest version bump strictly needed if we treat unloaded files as non-functional, but per convention a micro bump + HISTORY note is cheap and keeps the audit trail clean.
Found while
Reviewing PR #300 / issue #236 (locale-aware
total_amount_in_words).