Skip to content

[19.0][MIG] website_*: complete analyses for 31 uncharted modules#5633

Open
dnplkndll wants to merge 1 commit into
OCA:19.0from
ledoent:19.0-mig-website-family
Open

[19.0][MIG] website_*: complete analyses for 31 uncharted modules#5633
dnplkndll wants to merge 1 commit into
OCA:19.0from
ledoent:19.0-mig-website-family

Conversation

@dnplkndll
Copy link
Copy Markdown

@dnplkndll dnplkndll commented May 15, 2026

What

Adds upgrade_analysis_work.txt for the 31 website_ modules* that
were not yet claimed in #5363 and had only the auto-generated
upgrade_analysis.txt (no work-doc, no scripts, no umbrella entry).

The three website* modules already done in the umbrella
(website #5573, website_payment #5585, website_sale #5585)
are unaffected.

Plus one minimal post-migration.py for website_event to remap
removed menu_type selection values (location, track,
track_proposal) to the new other key, preserving existing menu
records.

Why

For each of the 31 modules: a single upgrade_analysis_work.txt
created with one annotation per non-empty analysis section, mirroring
hbrunn's style on adjacent [MIG] <module>-only commits
([MIG] bus, [MIG] http_routing, [MIG] resource_mail,
[MIG] pos_restaurant).

Most blocks annotate as # NOTHING TO DO:

  • DEL ir.ui.view / DEL ir.asset / DEL ir.model.access / DEL ir.rule
    / DEL ir.actions.act_window / DEL ir.ui.menu — Odoo's standard
    upgrade flow + database_cleanup handle these (per [19.0][MIG] partner_autocomplete: cleanup obsolete res.partner/res.company fields #5631 review).
  • NEW fields with hasdefault: default — Odoo populates the default.
  • NEW ir.ui.view / NEW ir.asset / NEW mail.template — 19.0 module
    XML creates them on load.
  • is now stored / now a function — Odoo's init_models
    recomputes/migrates on first registry init.
  • module is now 'X' ('Y') — field ownership shifted between
    modules; standard upgrade flow updates ir_model_fields,
    database_cleanup handles residual ir_model_data rows.

The single # DONE block is website_event's
website.event.menu.menu_type selection_keys change. The cumulative
removal across this module + website_event_exhibitor +
website_event_track is [location, track, track_proposal];
other was added. Existing rows with the removed values get remapped
to other in post-migration so the data is preserved.

How

website_event/19.0.1.4/post-migration.py uses ORM:

```python
env["website.event.menu"].search(
[("menu_type", "in", ("location", "track", "track_proposal"))]
).menu_type = "other"
```

The three submodules that report the same selection change annotate as
# NOTHING TO DO — the data normalization happens once in
website_event.

Test plan

  • pre-commit run --all-files against all changed files: clean
    (ruff, ruff-format, pylint_odoo, prettier).
  • OCA CI green against the actual migration tests.

(The lab Tier 1 baseline I have locally doesn't include any of the 31
modules, so it can't validate the migration end-to-end here; deferring
to OCA CI for that.)

Companion PRs / context

Split?

Happy to split this into 5 sub-family PRs if preferred:
website_sale_* (8), website_event_* (7), website_slides_* (3),
website_mass_mailing* (2), other website_* (~11). One PR was
chosen first because the modules are largely annotation-only and the
work-doc shape is uniform across the set.

@OCA-git-bot OCA-git-bot added mod:openupgrade_scripts Module openupgrade_scripts series:19.0 labels May 15, 2026
Adds upgrade_analysis_work.txt for the 31 website_* modules that were
not yet claimed in OCA#5363 and had only the auto-generated
upgrade_analysis.txt. The umbrella's three website* checkboxes
(website, website_payment, website_sale) are unaffected.

Modules covered:
 website_blog, website_crm_iap_reveal, website_crm_partner_assign,
 website_customer, website_event, website_event_booth,
 website_event_booth_sale_exhibitor, website_event_exhibitor,
 website_event_sale, website_event_track, website_event_track_live,
 website_forum, website_hr_recruitment, website_livechat,
 website_mail_group, website_mass_mailing, website_mass_mailing_sms,
 website_partner, website_profile, website_project,
 website_sale_collect, website_sale_collect_wishlist,
 website_sale_comparison, website_sale_loyalty,
 website_sale_mondialrelay, website_sale_slides, website_sale_stock,
 website_sale_wishlist, website_slides, website_slides_forum,
 website_slides_survey.

The annotations follow the OCA convention (one comment block per
analysis section): NEW fields with defaults, "is now stored", "now a
function", added selection_keys, NEW ir.ui.view/ir.asset/mail.template/
ir.model.access/ir.rule/ir.model.constraint, and DEL ir.ui.view/etc.
are all marked NOTHING TO DO — the 19.0 XML and Odoo's standard upgrade
flow cover them, and database_cleanup handles residual stale fields/
columns/tables once the new version is in use.

The one block that needs code is website_event/website.event.menu.menu_type
selection_keys (added: [other], removed: [location, track,
track_proposal] cumulative across this module + website_event_exhibitor
+ website_event_track). website_event/19.0.1.4/pre-migration.py maps
existing rows with the removed values to "other", which is the new
catch-all key, preserving the records. The three submodules that also
report the same selection change defer to website_event/pre-migration
via a NOTHING TO DO annotation.

Happy to split into sub-family PRs (website_sale_*, website_event_*,
website_slides_*, website_mass_mailing*, other) if preferred.
@dnplkndll dnplkndll force-pushed the 19.0-mig-website-family branch from d5f0e0e to 7cde3bf Compare May 15, 2026 12:34
dnplkndll added a commit to ledoent/OpenUpgrade that referenced this pull request May 15, 2026
Adds upgrade_analysis_work.txt for the 4 hr_* submodules with
substantial 19.0 deltas: hr_attendance, hr_holidays_attendance,
hr_skills, hr_recruitment_skills.

These cluster into two logical refactors that are already covered by
apriori.renamed_models:

  hr.attendance.overtime → hr.attendance.overtime.line
    (hr_attendance, hr_holidays_attendance)
  hr.candidate.skill → hr.applicant.skill
    (hr_recruitment_skills)

For both clusters the apriori rename handles the data move. The
many2many table "now hr_applicant_hr_skill_rel ('False')" matches
Odoo's auto-naming for hr.applicant ↔ hr.skill (alphabetical
hr_applicant_hr_skill_rel) and hr.employee ↔ hr.skill, so no explicit
rename_tables is needed.

NEW models (overtime rule, overtime ruleset, skill history report,
certification report, hr.individual.skill.mixin, hr.job.skill) are
created by the 19.0 module load. NEW fields all carry hasdefault
(default or compute). NEW required+function fields are computed by
Odoo at registry init. DEL fields/views/access are preserved per the
maintainer's philosophy; database_cleanup handles residuals once 19.0
is in active use.

Companion to OCA#5634 ([19.0][MIG] hr_* for 13 simple submodules); same
review precedent as OCA#5633.

hr, hr_expense, hr_holidays, hr_work_entry are already done.
hr_recruitment (OCA#5612) is in flight by @hbrunn.
dnplkndll added a commit to ledoent/OpenUpgrade that referenced this pull request May 15, 2026
Adds upgrade_analysis_work.txt for the 4 hr_* submodules with
substantial 19.0 deltas: hr_attendance, hr_holidays_attendance,
hr_skills, hr_recruitment_skills.

These cluster into two logical refactors that are already covered by
apriori.renamed_models:

  hr.attendance.overtime → hr.attendance.overtime.line
    (hr_attendance, hr_holidays_attendance)
  hr.candidate.skill → hr.applicant.skill
    (hr_recruitment_skills)

For both clusters the apriori rename handles the data move. The
many2many table "now hr_applicant_hr_skill_rel ('False')" matches
Odoo's auto-naming for hr.applicant ↔ hr.skill (alphabetical
hr_applicant_hr_skill_rel) and hr.employee ↔ hr.skill, so no explicit
rename_tables is needed.

NEW models (overtime rule, overtime ruleset, skill history report,
certification report, hr.individual.skill.mixin, hr.job.skill) are
created by the 19.0 module load. NEW fields all carry hasdefault
(default or compute). NEW required+function fields are computed by
Odoo at registry init. DEL fields/views/access are preserved per the
maintainer's philosophy; database_cleanup handles residuals once 19.0
is in active use.

Companion to OCA#5634 ([19.0][MIG] hr_* for 13 simple submodules); same
review precedent as OCA#5633.

hr, hr_expense, hr_holidays, hr_work_entry are already done.
hr_recruitment (OCA#5612) is in flight by @hbrunn.
dnplkndll added a commit to ledoent/OpenUpgrade that referenced this pull request May 15, 2026
Adds upgrade_analysis_work.txt for the 4 hr_* submodules with
substantial 19.0 deltas: hr_attendance, hr_holidays_attendance,
hr_skills, hr_recruitment_skills.

These cluster into two logical refactors that are already covered by
apriori.renamed_models:

  hr.attendance.overtime → hr.attendance.overtime.line
    (hr_attendance, hr_holidays_attendance)
  hr.candidate.skill → hr.applicant.skill
    (hr_recruitment_skills)

For both clusters the apriori rename handles the data move. The
many2many table "now hr_applicant_hr_skill_rel ('False')" matches
Odoo's auto-naming for hr.applicant ↔ hr.skill (alphabetical
hr_applicant_hr_skill_rel) and hr.employee ↔ hr.skill, so no explicit
rename_tables is needed.

NEW models (overtime rule, overtime ruleset, skill history report,
certification report, hr.individual.skill.mixin, hr.job.skill) are
created by the 19.0 module load. NEW fields all carry hasdefault
(default or compute). NEW required+function fields are computed by
Odoo at registry init. DEL fields/views/access are preserved per the
maintainer's philosophy; database_cleanup handles residuals once 19.0
is in active use.

Companion to OCA#5634 ([19.0][MIG] hr_* for 13 simple submodules); same
review precedent as OCA#5633.

hr, hr_expense, hr_holidays, hr_work_entry are already done.
hr_recruitment (OCA#5612) is in flight by @hbrunn.
dnplkndll added a commit to ledoent/OpenUpgrade that referenced this pull request May 15, 2026
Adds upgrade_analysis_work.txt for the 4 hr_* submodules with
substantial 19.0 deltas: hr_attendance, hr_holidays_attendance,
hr_skills, hr_recruitment_skills.

These cluster into two logical refactors that are already covered by
apriori.renamed_models:

  hr.attendance.overtime → hr.attendance.overtime.line
    (hr_attendance, hr_holidays_attendance)
  hr.candidate.skill → hr.applicant.skill
    (hr_recruitment_skills)

For both clusters the apriori rename handles the data move. The
many2many table "now hr_applicant_hr_skill_rel ('False')" matches
Odoo's auto-naming for hr.applicant ↔ hr.skill (alphabetical
hr_applicant_hr_skill_rel) and hr.employee ↔ hr.skill, so no explicit
rename_tables is needed.

NEW models (overtime rule, overtime ruleset, skill history report,
certification report, hr.individual.skill.mixin, hr.job.skill) are
created by the 19.0 module load. NEW fields all carry hasdefault
(default or compute). NEW required+function fields are computed by
Odoo at registry init. DEL fields/views/access are preserved per the
maintainer's philosophy; database_cleanup handles residuals once 19.0
is in active use.

Companion to OCA#5634 ([19.0][MIG] hr_* for 13 simple submodules); same
review precedent as OCA#5633.

hr, hr_expense, hr_holidays, hr_work_entry are already done.
hr_recruitment (OCA#5612) is in flight by @hbrunn.
dnplkndll added a commit to ledoent/OpenUpgrade that referenced this pull request May 16, 2026
Adds upgrade_analysis_work.txt for the 4 hr_* submodules with
substantial 19.0 deltas: hr_attendance, hr_holidays_attendance,
hr_skills, hr_recruitment_skills.

These cluster into two logical refactors that are already covered by
apriori.renamed_models:

  hr.attendance.overtime → hr.attendance.overtime.line
    (hr_attendance, hr_holidays_attendance)
  hr.candidate.skill → hr.applicant.skill
    (hr_recruitment_skills)

For both clusters the apriori rename handles the data move. The
many2many table "now hr_applicant_hr_skill_rel ('False')" matches
Odoo's auto-naming for hr.applicant ↔ hr.skill (alphabetical
hr_applicant_hr_skill_rel) and hr.employee ↔ hr.skill, so no explicit
rename_tables is needed.

NEW models (overtime rule, overtime ruleset, skill history report,
certification report, hr.individual.skill.mixin, hr.job.skill) are
created by the 19.0 module load. NEW fields all carry hasdefault
(default or compute). NEW required+function fields are computed by
Odoo at registry init. DEL fields/views/access are preserved per the
maintainer's philosophy; database_cleanup handles residuals once 19.0
is in active use.

Companion to OCA#5634 ([19.0][MIG] hr_* for 13 simple submodules); same
review precedent as OCA#5633.

hr, hr_expense, hr_holidays, hr_work_entry are already done.
hr_recruitment (OCA#5612) is in flight by @hbrunn.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

mod:openupgrade_scripts Module openupgrade_scripts series:19.0

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants