From bb025ebc81bb71fda90d3f44c440fa7dcdc19151 Mon Sep 17 00:00:00 2001 From: Holger Brunn Date: Fri, 3 Oct 2025 12:05:32 +0200 Subject: [PATCH 1/5] [UPD] module coverage file --- docsource/modules180-190.rst | 1248 ++++++++++++++++++++++++++++++++++ 1 file changed, 1248 insertions(+) create mode 100644 docsource/modules180-190.rst diff --git a/docsource/modules180-190.rst b/docsource/modules180-190.rst new file mode 100644 index 00000000000..66840b9e17d --- /dev/null +++ b/docsource/modules180-190.rst @@ -0,0 +1,1248 @@ +Module coverage 18.0 -> 19.0 +============================ + +.. include:: coverage_legend.rst + ++---------------------------------------------------+----------------------+-------------------------------------------------+ +| Module | Status + Extra Information | ++===================================================+======================+=================================================+ +| account | | | ++---------------------------------------------------+----------------------+-------------------------------------------------+ +| account_check_printing | | | ++---------------------------------------------------+----------------------+-------------------------------------------------+ +| account_debit_note | | | ++---------------------------------------------------+----------------------+-------------------------------------------------+ +| account_edi | |No DB layout changes. | ++---------------------------------------------------+----------------------+-------------------------------------------------+ +| account_edi_proxy_client | | | ++---------------------------------------------------+----------------------+-------------------------------------------------+ +| account_edi_ubl_cii | | | ++---------------------------------------------------+----------------------+-------------------------------------------------+ +| |del| account_edi_ubl_cii_tax_extension | | | ++---------------------------------------------------+----------------------+-------------------------------------------------+ +| account_fleet | |No DB layout changes. | ++---------------------------------------------------+----------------------+-------------------------------------------------+ +| account_payment | | | ++---------------------------------------------------+----------------------+-------------------------------------------------+ +| account_peppol | | | ++---------------------------------------------------+----------------------+-------------------------------------------------+ +| |new| account_peppol_advanced_fields | | | ++---------------------------------------------------+----------------------+-------------------------------------------------+ +| account_qr_code_emv | |No DB layout changes. | ++---------------------------------------------------+----------------------+-------------------------------------------------+ +| account_qr_code_sepa | | | ++---------------------------------------------------+----------------------+-------------------------------------------------+ +| account_tax_python | |No DB layout changes. | ++---------------------------------------------------+----------------------+-------------------------------------------------+ +| account_update_tax_tags | |No DB layout changes. | ++---------------------------------------------------+----------------------+-------------------------------------------------+ +| analytic | | | ++---------------------------------------------------+----------------------+-------------------------------------------------+ +| |new| api_doc | | | ++---------------------------------------------------+----------------------+-------------------------------------------------+ +| attachment_indexation | | | ++---------------------------------------------------+----------------------+-------------------------------------------------+ +| auth_ldap | |No DB layout changes. | ++---------------------------------------------------+----------------------+-------------------------------------------------+ +| auth_oauth | | | ++---------------------------------------------------+----------------------+-------------------------------------------------+ +| auth_passkey | | | ++---------------------------------------------------+----------------------+-------------------------------------------------+ +| |new| auth_passkey_portal | | | ++---------------------------------------------------+----------------------+-------------------------------------------------+ +| auth_password_policy | | | ++---------------------------------------------------+----------------------+-------------------------------------------------+ +| auth_password_policy_portal | | | ++---------------------------------------------------+----------------------+-------------------------------------------------+ +| auth_password_policy_signup | | | ++---------------------------------------------------+----------------------+-------------------------------------------------+ +| auth_signup | | | ++---------------------------------------------------+----------------------+-------------------------------------------------+ +| |new| auth_timeout | | | ++---------------------------------------------------+----------------------+-------------------------------------------------+ +| auth_totp | | | ++---------------------------------------------------+----------------------+-------------------------------------------------+ +| auth_totp_mail | | | ++---------------------------------------------------+----------------------+-------------------------------------------------+ +| |del| auth_totp_mail_enforce | | | ++---------------------------------------------------+----------------------+-------------------------------------------------+ +| auth_totp_portal | | | ++---------------------------------------------------+----------------------+-------------------------------------------------+ +| barcodes | |No DB layout changes. | ++---------------------------------------------------+----------------------+-------------------------------------------------+ +| barcodes_gs1_nomenclature | |No DB layout changes. | ++---------------------------------------------------+----------------------+-------------------------------------------------+ +| base | | | ++---------------------------------------------------+----------------------+-------------------------------------------------+ +| base_address_extended | |No DB layout changes. | ++---------------------------------------------------+----------------------+-------------------------------------------------+ +| base_automation | | | ++---------------------------------------------------+----------------------+-------------------------------------------------+ +| base_geolocalize | |No DB layout changes. | ++---------------------------------------------------+----------------------+-------------------------------------------------+ +| base_iban | | | ++---------------------------------------------------+----------------------+-------------------------------------------------+ +| base_import | |No DB layout changes. | ++---------------------------------------------------+----------------------+-------------------------------------------------+ +| base_import_module | |No DB layout changes. | ++---------------------------------------------------+----------------------+-------------------------------------------------+ +| base_install_request | | | ++---------------------------------------------------+----------------------+-------------------------------------------------+ +| base_setup | | | ++---------------------------------------------------+----------------------+-------------------------------------------------+ +| base_sparse_field | |No DB layout changes. | ++---------------------------------------------------+----------------------+-------------------------------------------------+ +| base_vat | |No DB layout changes. | ++---------------------------------------------------+----------------------+-------------------------------------------------+ +| board | |No DB layout changes. | ++---------------------------------------------------+----------------------+-------------------------------------------------+ +| bus | | | ++---------------------------------------------------+----------------------+-------------------------------------------------+ +| calendar | | | ++---------------------------------------------------+----------------------+-------------------------------------------------+ +| calendar_sms | | | ++---------------------------------------------------+----------------------+-------------------------------------------------+ +| certificate | |No DB layout changes. | ++---------------------------------------------------+----------------------+-------------------------------------------------+ +| cloud_storage | |No DB layout changes. | ++---------------------------------------------------+----------------------+-------------------------------------------------+ +| cloud_storage_azure | | | ++---------------------------------------------------+----------------------+-------------------------------------------------+ +| cloud_storage_google | | | ++---------------------------------------------------+----------------------+-------------------------------------------------+ +| contacts | | | ++---------------------------------------------------+----------------------+-------------------------------------------------+ +| crm | | | ++---------------------------------------------------+----------------------+-------------------------------------------------+ +| crm_iap_enrich | |No DB layout changes. | ++---------------------------------------------------+----------------------+-------------------------------------------------+ +| crm_iap_mine | |No DB layout changes. | ++---------------------------------------------------+----------------------+-------------------------------------------------+ +| crm_livechat | | | ++---------------------------------------------------+----------------------+-------------------------------------------------+ +| crm_mail_plugin | | | ++---------------------------------------------------+----------------------+-------------------------------------------------+ +| crm_sms | | | ++---------------------------------------------------+----------------------+-------------------------------------------------+ +| data_recycle | |No DB layout changes. | ++---------------------------------------------------+----------------------+-------------------------------------------------+ +| delivery | | | ++---------------------------------------------------+----------------------+-------------------------------------------------+ +| delivery_mondialrelay | | | ++---------------------------------------------------+----------------------+-------------------------------------------------+ +| delivery_stock_picking_batch | |No DB layout changes. | ++---------------------------------------------------+----------------------+-------------------------------------------------+ +| digest | |No DB layout changes. | ++---------------------------------------------------+----------------------+-------------------------------------------------+ +| event | | | ++---------------------------------------------------+----------------------+-------------------------------------------------+ +| event_booth | | | ++---------------------------------------------------+----------------------+-------------------------------------------------+ +| event_booth_sale | | | ++---------------------------------------------------+----------------------+-------------------------------------------------+ +| event_crm | | | ++---------------------------------------------------+----------------------+-------------------------------------------------+ +| event_crm_sale | | | ++---------------------------------------------------+----------------------+-------------------------------------------------+ +| event_product | | | ++---------------------------------------------------+----------------------+-------------------------------------------------+ +| event_sale | | | ++---------------------------------------------------+----------------------+-------------------------------------------------+ +| event_sms | |No DB layout changes. | ++---------------------------------------------------+----------------------+-------------------------------------------------+ +| fleet | | | ++---------------------------------------------------+----------------------+-------------------------------------------------+ +| gamification | | | ++---------------------------------------------------+----------------------+-------------------------------------------------+ +| gamification_sale_crm | | | ++---------------------------------------------------+----------------------+-------------------------------------------------+ +| google_account | |No DB layout changes. | ++---------------------------------------------------+----------------------+-------------------------------------------------+ +| |new| google_address_autocomplete | | | ++---------------------------------------------------+----------------------+-------------------------------------------------+ +| google_calendar | |No DB layout changes. | ++---------------------------------------------------+----------------------+-------------------------------------------------+ +| google_gmail | | | ++---------------------------------------------------+----------------------+-------------------------------------------------+ +| google_recaptcha | | | ++---------------------------------------------------+----------------------+-------------------------------------------------+ +| hr | | | ++---------------------------------------------------+----------------------+-------------------------------------------------+ +| hr_attendance | | | ++---------------------------------------------------+----------------------+-------------------------------------------------+ +| hr_calendar | | | ++---------------------------------------------------+----------------------+-------------------------------------------------+ +| |del| hr_contract | | | ++---------------------------------------------------+----------------------+-------------------------------------------------+ +| hr_expense | | | ++---------------------------------------------------+----------------------+-------------------------------------------------+ +| hr_fleet | | | ++---------------------------------------------------+----------------------+-------------------------------------------------+ +| hr_gamification | | | ++---------------------------------------------------+----------------------+-------------------------------------------------+ +| hr_holidays | | | ++---------------------------------------------------+----------------------+-------------------------------------------------+ +| hr_holidays_attendance | | | ++---------------------------------------------------+----------------------+-------------------------------------------------+ +| |del| hr_holidays_contract | | | ++---------------------------------------------------+----------------------+-------------------------------------------------+ +| hr_homeworking | | | ++---------------------------------------------------+----------------------+-------------------------------------------------+ +| hr_homeworking_calendar | |No DB layout changes. | ++---------------------------------------------------+----------------------+-------------------------------------------------+ +| hr_hourly_cost | |No DB layout changes. | ++---------------------------------------------------+----------------------+-------------------------------------------------+ +| hr_livechat | | | ++---------------------------------------------------+----------------------+-------------------------------------------------+ +| hr_maintenance | | | ++---------------------------------------------------+----------------------+-------------------------------------------------+ +| hr_org_chart | | | ++---------------------------------------------------+----------------------+-------------------------------------------------+ +| hr_presence | | | ++---------------------------------------------------+----------------------+-------------------------------------------------+ +| hr_recruitment | | | ++---------------------------------------------------+----------------------+-------------------------------------------------+ +| hr_recruitment_skills | | | ++---------------------------------------------------+----------------------+-------------------------------------------------+ +| hr_recruitment_sms | | | ++---------------------------------------------------+----------------------+-------------------------------------------------+ +| hr_recruitment_survey | |No DB layout changes. | ++---------------------------------------------------+----------------------+-------------------------------------------------+ +| hr_skills | | | ++---------------------------------------------------+----------------------+-------------------------------------------------+ +| |new| hr_skills_event | | | ++---------------------------------------------------+----------------------+-------------------------------------------------+ +| hr_skills_slides | | | ++---------------------------------------------------+----------------------+-------------------------------------------------+ +| hr_skills_survey | | | ++---------------------------------------------------+----------------------+-------------------------------------------------+ +| hr_timesheet | | | ++---------------------------------------------------+----------------------+-------------------------------------------------+ +| hr_timesheet_attendance | |No DB layout changes. | ++---------------------------------------------------+----------------------+-------------------------------------------------+ +| hr_work_entry | | | ++---------------------------------------------------+----------------------+-------------------------------------------------+ +| |del| hr_work_entry_contract | | | ++---------------------------------------------------+----------------------+-------------------------------------------------+ +| hr_work_entry_holidays | |No DB layout changes. | ++---------------------------------------------------+----------------------+-------------------------------------------------+ +| |new| html_builder | | | ++---------------------------------------------------+----------------------+-------------------------------------------------+ +| html_editor | | | ++---------------------------------------------------+----------------------+-------------------------------------------------+ +| http_routing | | | ++---------------------------------------------------+----------------------+-------------------------------------------------+ +| iap | |No DB layout changes. | ++---------------------------------------------------+----------------------+-------------------------------------------------+ +| iap_crm | |No DB layout changes. | ++---------------------------------------------------+----------------------+-------------------------------------------------+ +| iap_mail | |No DB layout changes. | ++---------------------------------------------------+----------------------+-------------------------------------------------+ +| im_livechat | | | ++---------------------------------------------------+----------------------+-------------------------------------------------+ +| |new| iot_base | | | ++---------------------------------------------------+----------------------+-------------------------------------------------+ +| l10n_account_edi_ubl_cii_tests | | | ++---------------------------------------------------+----------------------+-------------------------------------------------+ +| l10n_account_withholding_tax | |No DB layout changes. | ++---------------------------------------------------+----------------------+-------------------------------------------------+ +| l10n_account_withholding_tax_pos | | | ++---------------------------------------------------+----------------------+-------------------------------------------------+ +| l10n_ae | | | ++---------------------------------------------------+----------------------+-------------------------------------------------+ +| |new| l10n_ae_pos | | | ++---------------------------------------------------+----------------------+-------------------------------------------------+ +| l10n_anz_ubl_pint | | | ++---------------------------------------------------+----------------------+-------------------------------------------------+ +| l10n_ar | | | ++---------------------------------------------------+----------------------+-------------------------------------------------+ +| l10n_ar_pos | | | ++---------------------------------------------------+----------------------+-------------------------------------------------+ +| |new| l10n_ar_stock | | | ++---------------------------------------------------+----------------------+-------------------------------------------------+ +| l10n_ar_website_sale | | | ++---------------------------------------------------+----------------------+-------------------------------------------------+ +| l10n_ar_withholding | |No DB layout changes. | ++---------------------------------------------------+----------------------+-------------------------------------------------+ +| l10n_at | | | ++---------------------------------------------------+----------------------+-------------------------------------------------+ +| l10n_au | | | ++---------------------------------------------------+----------------------+-------------------------------------------------+ +| l10n_bd | | | ++---------------------------------------------------+----------------------+-------------------------------------------------+ +| l10n_be | | | ++---------------------------------------------------+----------------------+-------------------------------------------------+ +| l10n_be_pos_restaurant | | | ++---------------------------------------------------+----------------------+-------------------------------------------------+ +| l10n_be_pos_sale | | | ++---------------------------------------------------+----------------------+-------------------------------------------------+ +| l10n_bf | | | ++---------------------------------------------------+----------------------+-------------------------------------------------+ +| l10n_bg | | | ++---------------------------------------------------+----------------------+-------------------------------------------------+ +| l10n_bg_ledger | |No DB layout changes. | ++---------------------------------------------------+----------------------+-------------------------------------------------+ +| l10n_bh | | | ++---------------------------------------------------+----------------------+-------------------------------------------------+ +| l10n_bj | | | ++---------------------------------------------------+----------------------+-------------------------------------------------+ +| l10n_bo | | | ++---------------------------------------------------+----------------------+-------------------------------------------------+ +| l10n_br | | | ++---------------------------------------------------+----------------------+-------------------------------------------------+ +| l10n_br_sales | | | ++---------------------------------------------------+----------------------+-------------------------------------------------+ +| l10n_br_website_sale | | | ++---------------------------------------------------+----------------------+-------------------------------------------------+ +| l10n_ca | |No DB layout changes. | ++---------------------------------------------------+----------------------+-------------------------------------------------+ +| l10n_cd | | | ++---------------------------------------------------+----------------------+-------------------------------------------------+ +| l10n_cf | | | ++---------------------------------------------------+----------------------+-------------------------------------------------+ +| l10n_cg | | | ++---------------------------------------------------+----------------------+-------------------------------------------------+ +| l10n_ch | | | ++---------------------------------------------------+----------------------+-------------------------------------------------+ +| l10n_ch_pos | | | ++---------------------------------------------------+----------------------+-------------------------------------------------+ +| l10n_ci | | | ++---------------------------------------------------+----------------------+-------------------------------------------------+ +| l10n_cl | | | ++---------------------------------------------------+----------------------+-------------------------------------------------+ +| l10n_cm | | | ++---------------------------------------------------+----------------------+-------------------------------------------------+ +| l10n_cn | | | ++---------------------------------------------------+----------------------+-------------------------------------------------+ +| l10n_cn_city | | | ++---------------------------------------------------+----------------------+-------------------------------------------------+ +| l10n_co | |No DB layout changes. | ++---------------------------------------------------+----------------------+-------------------------------------------------+ +| l10n_co_pos | | | ++---------------------------------------------------+----------------------+-------------------------------------------------+ +| l10n_cr | | | ++---------------------------------------------------+----------------------+-------------------------------------------------+ +| l10n_cy | | | ++---------------------------------------------------+----------------------+-------------------------------------------------+ +| l10n_cz | | | ++---------------------------------------------------+----------------------+-------------------------------------------------+ +| l10n_de | | | ++---------------------------------------------------+----------------------+-------------------------------------------------+ +| l10n_din5008 | | | ++---------------------------------------------------+----------------------+-------------------------------------------------+ +| l10n_din5008_expense | | | ++---------------------------------------------------+----------------------+-------------------------------------------------+ +| l10n_din5008_purchase | | | ++---------------------------------------------------+----------------------+-------------------------------------------------+ +| l10n_din5008_repair | |No DB layout changes. | ++---------------------------------------------------+----------------------+-------------------------------------------------+ +| l10n_din5008_sale | | | ++---------------------------------------------------+----------------------+-------------------------------------------------+ +| l10n_din5008_stock | | | ++---------------------------------------------------+----------------------+-------------------------------------------------+ +| l10n_dk | | | ++---------------------------------------------------+----------------------+-------------------------------------------------+ +| l10n_dk_nemhandel | | | ++---------------------------------------------------+----------------------+-------------------------------------------------+ +| l10n_dk_oioubl | | | ++---------------------------------------------------+----------------------+-------------------------------------------------+ +| l10n_do | | | ++---------------------------------------------------+----------------------+-------------------------------------------------+ +| l10n_dz | | | ++---------------------------------------------------+----------------------+-------------------------------------------------+ +| l10n_ec | | | ++---------------------------------------------------+----------------------+-------------------------------------------------+ +| |new| l10n_ec_sale | | | ++---------------------------------------------------+----------------------+-------------------------------------------------+ +| l10n_ec_stock | | | ++---------------------------------------------------+----------------------+-------------------------------------------------+ +| |del| l10n_ec_website_sale | | | ++---------------------------------------------------+----------------------+-------------------------------------------------+ +| l10n_ee | | | ++---------------------------------------------------+----------------------+-------------------------------------------------+ +| l10n_eg | |No DB layout changes. | ++---------------------------------------------------+----------------------+-------------------------------------------------+ +| l10n_eg_edi_eta | | | ++---------------------------------------------------+----------------------+-------------------------------------------------+ +| l10n_es | | | ++---------------------------------------------------+----------------------+-------------------------------------------------+ +| l10n_es_edi_facturae | | | ++---------------------------------------------------+----------------------+-------------------------------------------------+ +| l10n_es_edi_sii | |No DB layout changes. | ++---------------------------------------------------+----------------------+-------------------------------------------------+ +| l10n_es_edi_tbai | |No DB layout changes. | ++---------------------------------------------------+----------------------+-------------------------------------------------+ +| l10n_es_edi_tbai_pos | |No DB layout changes. | ++---------------------------------------------------+----------------------+-------------------------------------------------+ +| l10n_es_edi_verifactu | |No DB layout changes. | ++---------------------------------------------------+----------------------+-------------------------------------------------+ +| l10n_es_edi_verifactu_pos | |No DB layout changes. | ++---------------------------------------------------+----------------------+-------------------------------------------------+ +| |del| l10n_es_modelo130 | | | ++---------------------------------------------------+----------------------+-------------------------------------------------+ +| l10n_es_pos | |No DB layout changes. | ++---------------------------------------------------+----------------------+-------------------------------------------------+ +| l10n_et | | | ++---------------------------------------------------+----------------------+-------------------------------------------------+ +| l10n_eu_oss | | | ++---------------------------------------------------+----------------------+-------------------------------------------------+ +| l10n_fi | | | ++---------------------------------------------------+----------------------+-------------------------------------------------+ +| l10n_fi_sale | | | ++---------------------------------------------------+----------------------+-------------------------------------------------+ +| l10n_fr | | | ++---------------------------------------------------+----------------------+-------------------------------------------------+ +| l10n_fr_account | | | ++---------------------------------------------------+----------------------+-------------------------------------------------+ +| l10n_fr_facturx_chorus_pro | |No DB layout changes. | ++---------------------------------------------------+----------------------+-------------------------------------------------+ +| l10n_fr_hr_holidays | |No DB layout changes. | ++---------------------------------------------------+----------------------+-------------------------------------------------+ +| l10n_fr_hr_work_entry_holidays | | | ++---------------------------------------------------+----------------------+-------------------------------------------------+ +| l10n_fr_pos_cert | |No DB layout changes. | ++---------------------------------------------------+----------------------+-------------------------------------------------+ +| l10n_ga | | | ++---------------------------------------------------+----------------------+-------------------------------------------------+ +| l10n_gcc_invoice | | | ++---------------------------------------------------+----------------------+-------------------------------------------------+ +| l10n_gcc_invoice_stock_account | | | ++---------------------------------------------------+----------------------+-------------------------------------------------+ +| l10n_gcc_pos | | | ++---------------------------------------------------+----------------------+-------------------------------------------------+ +| l10n_gn | | | ++---------------------------------------------------+----------------------+-------------------------------------------------+ +| l10n_gq | | | ++---------------------------------------------------+----------------------+-------------------------------------------------+ +| l10n_gr | | | ++---------------------------------------------------+----------------------+-------------------------------------------------+ +| l10n_gr_edi | |No DB layout changes. | ++---------------------------------------------------+----------------------+-------------------------------------------------+ +| l10n_gt | | | ++---------------------------------------------------+----------------------+-------------------------------------------------+ +| l10n_gw | | | ++---------------------------------------------------+----------------------+-------------------------------------------------+ +| l10n_hk | |No DB layout changes. | ++---------------------------------------------------+----------------------+-------------------------------------------------+ +| l10n_hn | | | ++---------------------------------------------------+----------------------+-------------------------------------------------+ +| l10n_hr | | | ++---------------------------------------------------+----------------------+-------------------------------------------------+ +| l10n_hr_kuna | | | ++---------------------------------------------------+----------------------+-------------------------------------------------+ +| l10n_hu | | | ++---------------------------------------------------+----------------------+-------------------------------------------------+ +| l10n_hu_edi | |No DB layout changes. | ++---------------------------------------------------+----------------------+-------------------------------------------------+ +| l10n_id | |No DB layout changes. | ++---------------------------------------------------+----------------------+-------------------------------------------------+ +| |del| l10n_id_efaktur | | | ++---------------------------------------------------+----------------------+-------------------------------------------------+ +| l10n_id_efaktur_coretax | | | ++---------------------------------------------------+----------------------+-------------------------------------------------+ +| l10n_id_pos | |No DB layout changes. | ++---------------------------------------------------+----------------------+-------------------------------------------------+ +| l10n_ie | | | ++---------------------------------------------------+----------------------+-------------------------------------------------+ +| l10n_il | | | ++---------------------------------------------------+----------------------+-------------------------------------------------+ +| l10n_in | | | ++---------------------------------------------------+----------------------+-------------------------------------------------+ +| l10n_in_edi | | | ++---------------------------------------------------+----------------------+-------------------------------------------------+ +| |del| l10n_in_edi_ewaybill | | | ++---------------------------------------------------+----------------------+-------------------------------------------------+ +| |new| l10n_in_ewaybill | | | ++---------------------------------------------------+----------------------+-------------------------------------------------+ +| |new| l10n_in_ewaybill_irn | | | ++---------------------------------------------------+----------------------+-------------------------------------------------+ +| |del| l10n_in_ewaybill_port | | | ++---------------------------------------------------+----------------------+-------------------------------------------------+ +| l10n_in_ewaybill_stock | | | ++---------------------------------------------------+----------------------+-------------------------------------------------+ +| |del| l10n_in_gstin_status | | | ++---------------------------------------------------+----------------------+-------------------------------------------------+ +| l10n_in_hr_holidays | | | ++---------------------------------------------------+----------------------+-------------------------------------------------+ +| l10n_in_pos | |No DB layout changes. | ++---------------------------------------------------+----------------------+-------------------------------------------------+ +| |del| l10n_in_purchase | | | ++---------------------------------------------------+----------------------+-------------------------------------------------+ +| l10n_in_purchase_stock | | | ++---------------------------------------------------+----------------------+-------------------------------------------------+ +| l10n_in_sale | | | ++---------------------------------------------------+----------------------+-------------------------------------------------+ +| l10n_in_sale_stock | | | ++---------------------------------------------------+----------------------+-------------------------------------------------+ +| l10n_in_stock | | | ++---------------------------------------------------+----------------------+-------------------------------------------------+ +| |del| l10n_in_withholding | | | ++---------------------------------------------------+----------------------+-------------------------------------------------+ +| |del| l10n_in_withholding_payment | | | ++---------------------------------------------------+----------------------+-------------------------------------------------+ +| l10n_iq | | | ++---------------------------------------------------+----------------------+-------------------------------------------------+ +| l10n_it | | | ++---------------------------------------------------+----------------------+-------------------------------------------------+ +| l10n_it_edi | | | ++---------------------------------------------------+----------------------+-------------------------------------------------+ +| l10n_it_edi_doi | |No DB layout changes. | ++---------------------------------------------------+----------------------+-------------------------------------------------+ +| |del| l10n_it_edi_ndd | | | ++---------------------------------------------------+----------------------+-------------------------------------------------+ +| |del| l10n_it_edi_ndd_account_dn | | | ++---------------------------------------------------+----------------------+-------------------------------------------------+ +| l10n_it_edi_sale | |No DB layout changes. | ++---------------------------------------------------+----------------------+-------------------------------------------------+ +| |del| l10n_it_edi_website_sale | | | ++---------------------------------------------------+----------------------+-------------------------------------------------+ +| |del| l10n_it_edi_withholding | | | ++---------------------------------------------------+----------------------+-------------------------------------------------+ +| l10n_it_stock_ddt | |No DB layout changes. | ++---------------------------------------------------+----------------------+-------------------------------------------------+ +| l10n_jo | | | ++---------------------------------------------------+----------------------+-------------------------------------------------+ +| l10n_jo_edi | | | ++---------------------------------------------------+----------------------+-------------------------------------------------+ +| |del| l10n_jo_edi_extended | | | ++---------------------------------------------------+----------------------+-------------------------------------------------+ +| l10n_jp | | | ++---------------------------------------------------+----------------------+-------------------------------------------------+ +| l10n_jp_ubl_pint | | | ++---------------------------------------------------+----------------------+-------------------------------------------------+ +| l10n_ke | |No DB layout changes. | ++---------------------------------------------------+----------------------+-------------------------------------------------+ +| l10n_ke_edi_tremol | |No DB layout changes. | ++---------------------------------------------------+----------------------+-------------------------------------------------+ +| l10n_kh | |No DB layout changes. | ++---------------------------------------------------+----------------------+-------------------------------------------------+ +| l10n_km | | | ++---------------------------------------------------+----------------------+-------------------------------------------------+ +| l10n_kr | | | ++---------------------------------------------------+----------------------+-------------------------------------------------+ +| l10n_kw | | | ++---------------------------------------------------+----------------------+-------------------------------------------------+ +| l10n_kz | | | ++---------------------------------------------------+----------------------+-------------------------------------------------+ +| l10n_latam_base | | | ++---------------------------------------------------+----------------------+-------------------------------------------------+ +| l10n_latam_check | | | ++---------------------------------------------------+----------------------+-------------------------------------------------+ +| l10n_latam_invoice_document | | | ++---------------------------------------------------+----------------------+-------------------------------------------------+ +| l10n_lb_account | | | ++---------------------------------------------------+----------------------+-------------------------------------------------+ +| |new| l10n_lk | | | ++---------------------------------------------------+----------------------+-------------------------------------------------+ +| l10n_lt | | | ++---------------------------------------------------+----------------------+-------------------------------------------------+ +| l10n_lu | | | ++---------------------------------------------------+----------------------+-------------------------------------------------+ +| l10n_lv | | | ++---------------------------------------------------+----------------------+-------------------------------------------------+ +| l10n_ma | | | ++---------------------------------------------------+----------------------+-------------------------------------------------+ +| l10n_mc | | | ++---------------------------------------------------+----------------------+-------------------------------------------------+ +| l10n_ml | | | ++---------------------------------------------------+----------------------+-------------------------------------------------+ +| l10n_mn | | | ++---------------------------------------------------+----------------------+-------------------------------------------------+ +| l10n_mt | | | ++---------------------------------------------------+----------------------+-------------------------------------------------+ +| l10n_mt_pos | |No DB layout changes. | ++---------------------------------------------------+----------------------+-------------------------------------------------+ +| l10n_mu_account | | | ++---------------------------------------------------+----------------------+-------------------------------------------------+ +| l10n_mx | | | ++---------------------------------------------------+----------------------+-------------------------------------------------+ +| |del| l10n_mx_hr | | | ++---------------------------------------------------+----------------------+-------------------------------------------------+ +| l10n_my | | | ++---------------------------------------------------+----------------------+-------------------------------------------------+ +| l10n_my_edi | | | ++---------------------------------------------------+----------------------+-------------------------------------------------+ +| |del| l10n_my_edi_extended | | | ++---------------------------------------------------+----------------------+-------------------------------------------------+ +| l10n_my_edi_pos | | | ++---------------------------------------------------+----------------------+-------------------------------------------------+ +| l10n_my_ubl_pint | | | ++---------------------------------------------------+----------------------+-------------------------------------------------+ +| l10n_mz | | | ++---------------------------------------------------+----------------------+-------------------------------------------------+ +| l10n_ne | | | ++---------------------------------------------------+----------------------+-------------------------------------------------+ +| l10n_ng | | | ++---------------------------------------------------+----------------------+-------------------------------------------------+ +| l10n_nl | | | ++---------------------------------------------------+----------------------+-------------------------------------------------+ +| l10n_no | | | ++---------------------------------------------------+----------------------+-------------------------------------------------+ +| l10n_nz | | | ++---------------------------------------------------+----------------------+-------------------------------------------------+ +| l10n_om | | | ++---------------------------------------------------+----------------------+-------------------------------------------------+ +| l10n_pa | | | ++---------------------------------------------------+----------------------+-------------------------------------------------+ +| l10n_pe | | | ++---------------------------------------------------+----------------------+-------------------------------------------------+ +| l10n_pe_pos | |No DB layout changes. | ++---------------------------------------------------+----------------------+-------------------------------------------------+ +| |del| l10n_pe_website_sale | | | ++---------------------------------------------------+----------------------+-------------------------------------------------+ +| l10n_ph | | | ++---------------------------------------------------+----------------------+-------------------------------------------------+ +| l10n_pk | | | ++---------------------------------------------------+----------------------+-------------------------------------------------+ +| l10n_pl | | | ++---------------------------------------------------+----------------------+-------------------------------------------------+ +| |del| l10n_pl_taxable_supply_date | | | ++---------------------------------------------------+----------------------+-------------------------------------------------+ +| l10n_pt | |No DB layout changes. | ++---------------------------------------------------+----------------------+-------------------------------------------------+ +| l10n_qa | | | ++---------------------------------------------------+----------------------+-------------------------------------------------+ +| l10n_ro | |No DB layout changes. | ++---------------------------------------------------+----------------------+-------------------------------------------------+ +| l10n_ro_edi | | | ++---------------------------------------------------+----------------------+-------------------------------------------------+ +| l10n_ro_edi_stock | | | ++---------------------------------------------------+----------------------+-------------------------------------------------+ +| l10n_ro_edi_stock_batch | |No DB layout changes. | ++---------------------------------------------------+----------------------+-------------------------------------------------+ +| |del| l10n_ro_efactura_synchronize | | | ++---------------------------------------------------+----------------------+-------------------------------------------------+ +| l10n_rs | |No DB layout changes. | ++---------------------------------------------------+----------------------+-------------------------------------------------+ +| l10n_rs_edi | |No DB layout changes. | ++---------------------------------------------------+----------------------+-------------------------------------------------+ +| l10n_rw | | | ++---------------------------------------------------+----------------------+-------------------------------------------------+ +| l10n_sa | | | ++---------------------------------------------------+----------------------+-------------------------------------------------+ +| l10n_sa_edi | | | ++---------------------------------------------------+----------------------+-------------------------------------------------+ +| l10n_sa_edi_pos | |No DB layout changes. | ++---------------------------------------------------+----------------------+-------------------------------------------------+ +| l10n_sa_pos | | | ++---------------------------------------------------+----------------------+-------------------------------------------------+ +| |new| l10n_sa_withholding_tax | | | ++---------------------------------------------------+----------------------+-------------------------------------------------+ +| l10n_se | | | ++---------------------------------------------------+----------------------+-------------------------------------------------+ +| l10n_sg | |No DB layout changes. | ++---------------------------------------------------+----------------------+-------------------------------------------------+ +| l10n_sg_ubl_pint | | | ++---------------------------------------------------+----------------------+-------------------------------------------------+ +| l10n_si | | | ++---------------------------------------------------+----------------------+-------------------------------------------------+ +| l10n_sk | | | ++---------------------------------------------------+----------------------+-------------------------------------------------+ +| l10n_sn | | | ++---------------------------------------------------+----------------------+-------------------------------------------------+ +| l10n_syscohada | | | ++---------------------------------------------------+----------------------+-------------------------------------------------+ +| l10n_td | | | ++---------------------------------------------------+----------------------+-------------------------------------------------+ +| l10n_test_pos_qr_payment | | | ++---------------------------------------------------+----------------------+-------------------------------------------------+ +| l10n_tg | | | ++---------------------------------------------------+----------------------+-------------------------------------------------+ +| l10n_th | | | ++---------------------------------------------------+----------------------+-------------------------------------------------+ +| l10n_tn | | | ++---------------------------------------------------+----------------------+-------------------------------------------------+ +| l10n_tr | |No DB layout changes. | ++---------------------------------------------------+----------------------+-------------------------------------------------+ +| l10n_tr_nilvera | | | ++---------------------------------------------------+----------------------+-------------------------------------------------+ +| l10n_tr_nilvera_edispatch | | | ++---------------------------------------------------+----------------------+-------------------------------------------------+ +| l10n_tr_nilvera_einvoice | | | ++---------------------------------------------------+----------------------+-------------------------------------------------+ +| l10n_tr_nilvera_einvoice_extended | | | ++---------------------------------------------------+----------------------+-------------------------------------------------+ +| l10n_tw | | | ++---------------------------------------------------+----------------------+-------------------------------------------------+ +| l10n_tw_edi_ecpay | | | ++---------------------------------------------------+----------------------+-------------------------------------------------+ +| l10n_tz_account | | | ++---------------------------------------------------+----------------------+-------------------------------------------------+ +| l10n_ua | | | ++---------------------------------------------------+----------------------+-------------------------------------------------+ +| l10n_ug | | | ++---------------------------------------------------+----------------------+-------------------------------------------------+ +| l10n_uk | | | ++---------------------------------------------------+----------------------+-------------------------------------------------+ +| l10n_us | | | ++---------------------------------------------------+----------------------+-------------------------------------------------+ +| l10n_us_account | | | ++---------------------------------------------------+----------------------+-------------------------------------------------+ +| l10n_uy | |No DB layout changes. | ++---------------------------------------------------+----------------------+-------------------------------------------------+ +| l10n_uy_pos | | | ++---------------------------------------------------+----------------------+-------------------------------------------------+ +| |del| l10n_uy_website_sale | | | ++---------------------------------------------------+----------------------+-------------------------------------------------+ +| l10n_ve | | | ++---------------------------------------------------+----------------------+-------------------------------------------------+ +| l10n_vn | |No DB layout changes. | ++---------------------------------------------------+----------------------+-------------------------------------------------+ +| l10n_vn_edi_viettel | |No DB layout changes. | ++---------------------------------------------------+----------------------+-------------------------------------------------+ +| l10n_za | | | ++---------------------------------------------------+----------------------+-------------------------------------------------+ +| l10n_zm_account | | | ++---------------------------------------------------+----------------------+-------------------------------------------------+ +| link_tracker | |No DB layout changes. | ++---------------------------------------------------+----------------------+-------------------------------------------------+ +| loyalty | | | ++---------------------------------------------------+----------------------+-------------------------------------------------+ +| lunch | | | ++---------------------------------------------------+----------------------+-------------------------------------------------+ +| mail | | | ++---------------------------------------------------+----------------------+-------------------------------------------------+ +| mail_bot | | | ++---------------------------------------------------+----------------------+-------------------------------------------------+ +| mail_bot_hr | | | ++---------------------------------------------------+----------------------+-------------------------------------------------+ +| mail_group | | | ++---------------------------------------------------+----------------------+-------------------------------------------------+ +| mail_plugin | |No DB layout changes. | ++---------------------------------------------------+----------------------+-------------------------------------------------+ +| maintenance | | | ++---------------------------------------------------+----------------------+-------------------------------------------------+ +| marketing_card | | | ++---------------------------------------------------+----------------------+-------------------------------------------------+ +| mass_mailing | | | ++---------------------------------------------------+----------------------+-------------------------------------------------+ +| mass_mailing_crm | |No DB layout changes. | ++---------------------------------------------------+----------------------+-------------------------------------------------+ +| mass_mailing_crm_sms | |No DB layout changes. | ++---------------------------------------------------+----------------------+-------------------------------------------------+ +| mass_mailing_event | | | ++---------------------------------------------------+----------------------+-------------------------------------------------+ +| mass_mailing_event_sms | | | ++---------------------------------------------------+----------------------+-------------------------------------------------+ +| mass_mailing_event_track | | | ++---------------------------------------------------+----------------------+-------------------------------------------------+ +| mass_mailing_event_track_sms | | | ++---------------------------------------------------+----------------------+-------------------------------------------------+ +| mass_mailing_sale | |No DB layout changes. | ++---------------------------------------------------+----------------------+-------------------------------------------------+ +| mass_mailing_sale_sms | |No DB layout changes. | ++---------------------------------------------------+----------------------+-------------------------------------------------+ +| mass_mailing_slides | | | ++---------------------------------------------------+----------------------+-------------------------------------------------+ +| mass_mailing_sms | | | ++---------------------------------------------------+----------------------+-------------------------------------------------+ +| mass_mailing_themes | | | ++---------------------------------------------------+----------------------+-------------------------------------------------+ +| |del| membership | | | ++---------------------------------------------------+----------------------+-------------------------------------------------+ +| microsoft_account | |No DB layout changes. | ++---------------------------------------------------+----------------------+-------------------------------------------------+ +| microsoft_calendar | |No DB layout changes. | ++---------------------------------------------------+----------------------+-------------------------------------------------+ +| microsoft_outlook | | | ++---------------------------------------------------+----------------------+-------------------------------------------------+ +| mrp | | | ++---------------------------------------------------+----------------------+-------------------------------------------------+ +| mrp_account | | | ++---------------------------------------------------+----------------------+-------------------------------------------------+ +| mrp_landed_costs | |No DB layout changes. | ++---------------------------------------------------+----------------------+-------------------------------------------------+ +| mrp_product_expiry | | | ++---------------------------------------------------+----------------------+-------------------------------------------------+ +| mrp_repair | |No DB layout changes. | ++---------------------------------------------------+----------------------+-------------------------------------------------+ +| mrp_subcontracting | | | ++---------------------------------------------------+----------------------+-------------------------------------------------+ +| mrp_subcontracting_account | | | ++---------------------------------------------------+----------------------+-------------------------------------------------+ +| mrp_subcontracting_dropshipping | | | ++---------------------------------------------------+----------------------+-------------------------------------------------+ +| mrp_subcontracting_landed_costs | | | ++---------------------------------------------------+----------------------+-------------------------------------------------+ +| mrp_subcontracting_purchase | |No DB layout changes. | ++---------------------------------------------------+----------------------+-------------------------------------------------+ +| mrp_subcontracting_repair | | | ++---------------------------------------------------+----------------------+-------------------------------------------------+ +| onboarding | | | ++---------------------------------------------------+----------------------+-------------------------------------------------+ +| partner_autocomplete | | | ++---------------------------------------------------+----------------------+-------------------------------------------------+ +| |new| partnership | | | ++---------------------------------------------------+----------------------+-------------------------------------------------+ +| payment | | | ++---------------------------------------------------+----------------------+-------------------------------------------------+ +| payment_adyen | |No DB layout changes. | ++---------------------------------------------------+----------------------+-------------------------------------------------+ +| payment_aps | |No DB layout changes. | ++---------------------------------------------------+----------------------+-------------------------------------------------+ +| payment_asiapay | |No DB layout changes. | ++---------------------------------------------------+----------------------+-------------------------------------------------+ +| payment_authorize | |No DB layout changes. | ++---------------------------------------------------+----------------------+-------------------------------------------------+ +| payment_buckaroo | |No DB layout changes. | ++---------------------------------------------------+----------------------+-------------------------------------------------+ +| payment_custom | |No DB layout changes. | ++---------------------------------------------------+----------------------+-------------------------------------------------+ +| payment_demo | |No DB layout changes. | ++---------------------------------------------------+----------------------+-------------------------------------------------+ +| |new| payment_dpo | | | ++---------------------------------------------------+----------------------+-------------------------------------------------+ +| payment_flutterwave | | | ++---------------------------------------------------+----------------------+-------------------------------------------------+ +| |new| payment_iyzico | | | ++---------------------------------------------------+----------------------+-------------------------------------------------+ +| payment_mercado_pago | | | ++---------------------------------------------------+----------------------+-------------------------------------------------+ +| payment_mollie | | | ++---------------------------------------------------+----------------------+-------------------------------------------------+ +| payment_nuvei | | | ++---------------------------------------------------+----------------------+-------------------------------------------------+ +| |new| payment_paymob | | | ++---------------------------------------------------+----------------------+-------------------------------------------------+ +| payment_paypal | | | ++---------------------------------------------------+----------------------+-------------------------------------------------+ +| payment_razorpay | | | ++---------------------------------------------------+----------------------+-------------------------------------------------+ +| |del| payment_razorpay_oauth | | | ++---------------------------------------------------+----------------------+-------------------------------------------------+ +| |new| payment_redsys | | | ++---------------------------------------------------+----------------------+-------------------------------------------------+ +| payment_stripe | | | ++---------------------------------------------------+----------------------+-------------------------------------------------+ +| payment_worldline | | | ++---------------------------------------------------+----------------------+-------------------------------------------------+ +| payment_xendit | | | ++---------------------------------------------------+----------------------+-------------------------------------------------+ +| phone_validation | | | ++---------------------------------------------------+----------------------+-------------------------------------------------+ +| point_of_sale | | | ++---------------------------------------------------+----------------------+-------------------------------------------------+ +| portal | | | ++---------------------------------------------------+----------------------+-------------------------------------------------+ +| portal_rating | |No DB layout changes. | ++---------------------------------------------------+----------------------+-------------------------------------------------+ +| pos_account_tax_python | | | ++---------------------------------------------------+----------------------+-------------------------------------------------+ +| pos_adyen | |No DB layout changes. | ++---------------------------------------------------+----------------------+-------------------------------------------------+ +| pos_discount | |No DB layout changes. | ++---------------------------------------------------+----------------------+-------------------------------------------------+ +| |del| pos_epson_printer | | | ++---------------------------------------------------+----------------------+-------------------------------------------------+ +| pos_event | | | ++---------------------------------------------------+----------------------+-------------------------------------------------+ +| pos_event_sale | | | ++---------------------------------------------------+----------------------+-------------------------------------------------+ +| |new| pos_glory_cash | | | ++---------------------------------------------------+----------------------+-------------------------------------------------+ +| pos_hr | | | ++---------------------------------------------------+----------------------+-------------------------------------------------+ +| pos_hr_restaurant | | | ++---------------------------------------------------+----------------------+-------------------------------------------------+ +| |new| pos_imin | | | ++---------------------------------------------------+----------------------+-------------------------------------------------+ +| pos_loyalty | |No DB layout changes. | ++---------------------------------------------------+----------------------+-------------------------------------------------+ +| pos_mercado_pago | |No DB layout changes. | ++---------------------------------------------------+----------------------+-------------------------------------------------+ +| pos_mrp | | | ++---------------------------------------------------+----------------------+-------------------------------------------------+ +| pos_online_payment | | | ++---------------------------------------------------+----------------------+-------------------------------------------------+ +| pos_online_payment_self_order | |No DB layout changes. | ++---------------------------------------------------+----------------------+-------------------------------------------------+ +| |del| pos_paytm | | | ++---------------------------------------------------+----------------------+-------------------------------------------------+ +| pos_pine_labs | | | ++---------------------------------------------------+----------------------+-------------------------------------------------+ +| |new| pos_qfpay | | | ++---------------------------------------------------+----------------------+-------------------------------------------------+ +| pos_razorpay | | | ++---------------------------------------------------+----------------------+-------------------------------------------------+ +| |new| pos_repair | |No DB layout changes. | ++---------------------------------------------------+----------------------+-------------------------------------------------+ +| pos_restaurant | | | ++---------------------------------------------------+----------------------+-------------------------------------------------+ +| pos_restaurant_adyen | |No DB layout changes. | ++---------------------------------------------------+----------------------+-------------------------------------------------+ +| pos_restaurant_loyalty | | | ++---------------------------------------------------+----------------------+-------------------------------------------------+ +| pos_restaurant_stripe | | | ++---------------------------------------------------+----------------------+-------------------------------------------------+ +| pos_sale | | | ++---------------------------------------------------+----------------------+-------------------------------------------------+ +| pos_sale_loyalty | | | ++---------------------------------------------------+----------------------+-------------------------------------------------+ +| pos_sale_margin | | | ++---------------------------------------------------+----------------------+-------------------------------------------------+ +| pos_self_order | | | ++---------------------------------------------------+----------------------+-------------------------------------------------+ +| pos_self_order_adyen | | | ++---------------------------------------------------+----------------------+-------------------------------------------------+ +| |del| pos_self_order_epson_printer | | | ++---------------------------------------------------+----------------------+-------------------------------------------------+ +| |new| pos_self_order_pine_labs | | | ++---------------------------------------------------+----------------------+-------------------------------------------------+ +| |new| pos_self_order_qfpay | | | ++---------------------------------------------------+----------------------+-------------------------------------------------+ +| pos_self_order_razorpay | | | ++---------------------------------------------------+----------------------+-------------------------------------------------+ +| pos_self_order_sale | | | ++---------------------------------------------------+----------------------+-------------------------------------------------+ +| pos_self_order_stripe | | | ++---------------------------------------------------+----------------------+-------------------------------------------------+ +| |del| pos_six | | | ++---------------------------------------------------+----------------------+-------------------------------------------------+ +| pos_sms | |No DB layout changes. | ++---------------------------------------------------+----------------------+-------------------------------------------------+ +| pos_stripe | |No DB layout changes. | ++---------------------------------------------------+----------------------+-------------------------------------------------+ +| |new| pos_viva_com | | | ++---------------------------------------------------+----------------------+-------------------------------------------------+ +| |del| pos_viva_wallet | | | ++---------------------------------------------------+----------------------+-------------------------------------------------+ +| privacy_lookup | |No DB layout changes. | ++---------------------------------------------------+----------------------+-------------------------------------------------+ +| product | | | ++---------------------------------------------------+----------------------+-------------------------------------------------+ +| product_email_template | |No DB layout changes. | ++---------------------------------------------------+----------------------+-------------------------------------------------+ +| product_expiry | | | ++---------------------------------------------------+----------------------+-------------------------------------------------+ +| |del| product_images | | | ++---------------------------------------------------+----------------------+-------------------------------------------------+ +| product_margin | |No DB layout changes. | ++---------------------------------------------------+----------------------+-------------------------------------------------+ +| product_matrix | | | ++---------------------------------------------------+----------------------+-------------------------------------------------+ +| project | | | ++---------------------------------------------------+----------------------+-------------------------------------------------+ +| project_account | | | ++---------------------------------------------------+----------------------+-------------------------------------------------+ +| project_hr_expense | | | ++---------------------------------------------------+----------------------+-------------------------------------------------+ +| project_hr_skills | | | ++---------------------------------------------------+----------------------+-------------------------------------------------+ +| project_mail_plugin | | | ++---------------------------------------------------+----------------------+-------------------------------------------------+ +| project_mrp | | | ++---------------------------------------------------+----------------------+-------------------------------------------------+ +| project_mrp_account | | | ++---------------------------------------------------+----------------------+-------------------------------------------------+ +| project_mrp_sale | | | ++---------------------------------------------------+----------------------+-------------------------------------------------+ +| project_mrp_stock_landed_costs | | | ++---------------------------------------------------+----------------------+-------------------------------------------------+ +| project_purchase | | | ++---------------------------------------------------+----------------------+-------------------------------------------------+ +| project_purchase_stock | | | ++---------------------------------------------------+----------------------+-------------------------------------------------+ +| project_sale_expense | | | ++---------------------------------------------------+----------------------+-------------------------------------------------+ +| project_sms | |No DB layout changes. | ++---------------------------------------------------+----------------------+-------------------------------------------------+ +| project_stock | | | ++---------------------------------------------------+----------------------+-------------------------------------------------+ +| project_stock_account | |No DB layout changes. | ++---------------------------------------------------+----------------------+-------------------------------------------------+ +| project_stock_landed_costs | | | ++---------------------------------------------------+----------------------+-------------------------------------------------+ +| project_timesheet_holidays | | | ++---------------------------------------------------+----------------------+-------------------------------------------------+ +| project_todo | | | ++---------------------------------------------------+----------------------+-------------------------------------------------+ +| purchase | | | ++---------------------------------------------------+----------------------+-------------------------------------------------+ +| purchase_edi_ubl_bis3 | | | ++---------------------------------------------------+----------------------+-------------------------------------------------+ +| purchase_mrp | |No DB layout changes. | ++---------------------------------------------------+----------------------+-------------------------------------------------+ +| purchase_product_matrix | |No DB layout changes. | ++---------------------------------------------------+----------------------+-------------------------------------------------+ +| purchase_repair | |No DB layout changes. | ++---------------------------------------------------+----------------------+-------------------------------------------------+ +| purchase_requisition | | | ++---------------------------------------------------+----------------------+-------------------------------------------------+ +| purchase_requisition_sale | | | ++---------------------------------------------------+----------------------+-------------------------------------------------+ +| purchase_requisition_stock | |No DB layout changes. | ++---------------------------------------------------+----------------------+-------------------------------------------------+ +| purchase_stock | | | ++---------------------------------------------------+----------------------+-------------------------------------------------+ +| rating | | | ++---------------------------------------------------+----------------------+-------------------------------------------------+ +| repair | | | ++---------------------------------------------------+----------------------+-------------------------------------------------+ +| resource | | | ++---------------------------------------------------+----------------------+-------------------------------------------------+ +| resource_mail | | | ++---------------------------------------------------+----------------------+-------------------------------------------------+ +| |new| rpc | | | ++---------------------------------------------------+----------------------+-------------------------------------------------+ +| sale | | | ++---------------------------------------------------+----------------------+-------------------------------------------------+ +| |del| sale_async_emails | | | ++---------------------------------------------------+----------------------+-------------------------------------------------+ +| sale_crm | | | ++---------------------------------------------------+----------------------+-------------------------------------------------+ +| sale_edi_ubl | | | ++---------------------------------------------------+----------------------+-------------------------------------------------+ +| sale_expense | | | ++---------------------------------------------------+----------------------+-------------------------------------------------+ +| sale_expense_margin | |No DB layout changes. | ++---------------------------------------------------+----------------------+-------------------------------------------------+ +| sale_gelato | |No DB layout changes. | ++---------------------------------------------------+----------------------+-------------------------------------------------+ +| sale_gelato_stock | | | ++---------------------------------------------------+----------------------+-------------------------------------------------+ +| sale_loyalty | |No DB layout changes. | ++---------------------------------------------------+----------------------+-------------------------------------------------+ +| sale_loyalty_delivery | |No DB layout changes. | ++---------------------------------------------------+----------------------+-------------------------------------------------+ +| sale_management | | | ++---------------------------------------------------+----------------------+-------------------------------------------------+ +| sale_margin | | | ++---------------------------------------------------+----------------------+-------------------------------------------------+ +| sale_mrp | |No DB layout changes. | ++---------------------------------------------------+----------------------+-------------------------------------------------+ +| sale_mrp_margin | | | ++---------------------------------------------------+----------------------+-------------------------------------------------+ +| sale_pdf_quote_builder | | | ++---------------------------------------------------+----------------------+-------------------------------------------------+ +| sale_product_matrix | |No DB layout changes. | ++---------------------------------------------------+----------------------+-------------------------------------------------+ +| sale_project | | | ++---------------------------------------------------+----------------------+-------------------------------------------------+ +| sale_project_stock | | | ++---------------------------------------------------+----------------------+-------------------------------------------------+ +| sale_project_stock_account | | | ++---------------------------------------------------+----------------------+-------------------------------------------------+ +| sale_purchase | | | ++---------------------------------------------------+----------------------+-------------------------------------------------+ +| sale_purchase_project | | | ++---------------------------------------------------+----------------------+-------------------------------------------------+ +| sale_purchase_stock | | | ++---------------------------------------------------+----------------------+-------------------------------------------------+ +| sale_service | | | ++---------------------------------------------------+----------------------+-------------------------------------------------+ +| sale_sms | | | ++---------------------------------------------------+----------------------+-------------------------------------------------+ +| sale_stock | | | ++---------------------------------------------------+----------------------+-------------------------------------------------+ +| sale_stock_margin | | | ++---------------------------------------------------+----------------------+-------------------------------------------------+ +| |new| sale_stock_product_expiry | |No DB layout changes. | ++---------------------------------------------------+----------------------+-------------------------------------------------+ +| sale_timesheet | | | ++---------------------------------------------------+----------------------+-------------------------------------------------+ +| sale_timesheet_margin | | | ++---------------------------------------------------+----------------------+-------------------------------------------------+ +| sales_team | | | ++---------------------------------------------------+----------------------+-------------------------------------------------+ +| sms | | | ++---------------------------------------------------+----------------------+-------------------------------------------------+ +| sms_twilio | | | ++---------------------------------------------------+----------------------+-------------------------------------------------+ +| snailmail | | | ++---------------------------------------------------+----------------------+-------------------------------------------------+ +| snailmail_account | |No DB layout changes. | ++---------------------------------------------------+----------------------+-------------------------------------------------+ +| social_media | | | ++---------------------------------------------------+----------------------+-------------------------------------------------+ +| spreadsheet | |No DB layout changes. | ++---------------------------------------------------+----------------------+-------------------------------------------------+ +| spreadsheet_account | | | ++---------------------------------------------------+----------------------+-------------------------------------------------+ +| spreadsheet_dashboard | | | ++---------------------------------------------------+----------------------+-------------------------------------------------+ +| spreadsheet_dashboard_account | | | ++---------------------------------------------------+----------------------+-------------------------------------------------+ +| spreadsheet_dashboard_event_sale | | | ++---------------------------------------------------+----------------------+-------------------------------------------------+ +| spreadsheet_dashboard_hr_expense | | | ++---------------------------------------------------+----------------------+-------------------------------------------------+ +| spreadsheet_dashboard_hr_timesheet | | | ++---------------------------------------------------+----------------------+-------------------------------------------------+ +| spreadsheet_dashboard_im_livechat | | | ++---------------------------------------------------+----------------------+-------------------------------------------------+ +| spreadsheet_dashboard_pos_hr | | | ++---------------------------------------------------+----------------------+-------------------------------------------------+ +| spreadsheet_dashboard_pos_restaurant | | | ++---------------------------------------------------+----------------------+-------------------------------------------------+ +| spreadsheet_dashboard_sale | | | ++---------------------------------------------------+----------------------+-------------------------------------------------+ +| spreadsheet_dashboard_sale_timesheet | | | ++---------------------------------------------------+----------------------+-------------------------------------------------+ +| spreadsheet_dashboard_stock_account | | | ++---------------------------------------------------+----------------------+-------------------------------------------------+ +| spreadsheet_dashboard_website_sale | | | ++---------------------------------------------------+----------------------+-------------------------------------------------+ +| spreadsheet_dashboard_website_sale_slides | | | ++---------------------------------------------------+----------------------+-------------------------------------------------+ +| stock | | | ++---------------------------------------------------+----------------------+-------------------------------------------------+ +| stock_account | | | ++---------------------------------------------------+----------------------+-------------------------------------------------+ +| stock_delivery | | | ++---------------------------------------------------+----------------------+-------------------------------------------------+ +| stock_dropshipping | |No DB layout changes. | ++---------------------------------------------------+----------------------+-------------------------------------------------+ +| stock_fleet | | | ++---------------------------------------------------+----------------------+-------------------------------------------------+ +| stock_landed_costs | | | ++---------------------------------------------------+----------------------+-------------------------------------------------+ +| |new| stock_maintenance | | | ++---------------------------------------------------+----------------------+-------------------------------------------------+ +| stock_picking_batch | | | ++---------------------------------------------------+----------------------+-------------------------------------------------+ +| stock_sms | | | ++---------------------------------------------------+----------------------+-------------------------------------------------+ +| survey | | | ++---------------------------------------------------+----------------------+-------------------------------------------------+ +| |new| survey_crm | | | ++---------------------------------------------------+----------------------+-------------------------------------------------+ +| theme_default | | | ++---------------------------------------------------+----------------------+-------------------------------------------------+ +| transifex | |No DB layout changes. | ++---------------------------------------------------+----------------------+-------------------------------------------------+ +| uom | | | ++---------------------------------------------------+----------------------+-------------------------------------------------+ +| utm | | | ++---------------------------------------------------+----------------------+-------------------------------------------------+ +| web | | | ++---------------------------------------------------+----------------------+-------------------------------------------------+ +| |del| web_editor | | | ++---------------------------------------------------+----------------------+-------------------------------------------------+ +| web_hierarchy | |No DB layout changes. | ++---------------------------------------------------+----------------------+-------------------------------------------------+ +| web_tour | | | ++---------------------------------------------------+----------------------+-------------------------------------------------+ +| web_unsplash | | | ++---------------------------------------------------+----------------------+-------------------------------------------------+ +| website | | | ++---------------------------------------------------+----------------------+-------------------------------------------------+ +| website_blog | | | ++---------------------------------------------------+----------------------+-------------------------------------------------+ +| website_cf_turnstile | | | ++---------------------------------------------------+----------------------+-------------------------------------------------+ +| website_crm | |No DB layout changes. | ++---------------------------------------------------+----------------------+-------------------------------------------------+ +| website_crm_iap_reveal | | | ++---------------------------------------------------+----------------------+-------------------------------------------------+ +| website_crm_livechat | |No DB layout changes. | ++---------------------------------------------------+----------------------+-------------------------------------------------+ +| website_crm_partner_assign | | | ++---------------------------------------------------+----------------------+-------------------------------------------------+ +| website_crm_sms | | | ++---------------------------------------------------+----------------------+-------------------------------------------------+ +| website_customer | | | ++---------------------------------------------------+----------------------+-------------------------------------------------+ +| website_event | | | ++---------------------------------------------------+----------------------+-------------------------------------------------+ +| website_event_booth | | | ++---------------------------------------------------+----------------------+-------------------------------------------------+ +| website_event_booth_exhibitor | |No DB layout changes. | ++---------------------------------------------------+----------------------+-------------------------------------------------+ +| website_event_booth_sale | | | ++---------------------------------------------------+----------------------+-------------------------------------------------+ +| website_event_booth_sale_exhibitor | | | ++---------------------------------------------------+----------------------+-------------------------------------------------+ +| website_event_crm | | | ++---------------------------------------------------+----------------------+-------------------------------------------------+ +| website_event_exhibitor | | | ++---------------------------------------------------+----------------------+-------------------------------------------------+ +| |del| website_event_jitsi | | | ++---------------------------------------------------+----------------------+-------------------------------------------------+ +| |del| website_event_meet | | | ++---------------------------------------------------+----------------------+-------------------------------------------------+ +| |del| website_event_meet_quiz | | | ++---------------------------------------------------+----------------------+-------------------------------------------------+ +| website_event_sale | | | ++---------------------------------------------------+----------------------+-------------------------------------------------+ +| website_event_track | | | ++---------------------------------------------------+----------------------+-------------------------------------------------+ +| website_event_track_live | | | ++---------------------------------------------------+----------------------+-------------------------------------------------+ +| website_event_track_live_quiz | | | ++---------------------------------------------------+----------------------+-------------------------------------------------+ +| website_event_track_quiz | |No DB layout changes. | ++---------------------------------------------------+----------------------+-------------------------------------------------+ +| website_forum | | | ++---------------------------------------------------+----------------------+-------------------------------------------------+ +| website_google_map | | | ++---------------------------------------------------+----------------------+-------------------------------------------------+ +| website_hr_recruitment | | | ++---------------------------------------------------+----------------------+-------------------------------------------------+ +| |new| website_hr_recruitment_livechat | | | ++---------------------------------------------------+----------------------+-------------------------------------------------+ +| |del| website_jitsi | | | ++---------------------------------------------------+----------------------+-------------------------------------------------+ +| website_links | | | ++---------------------------------------------------+----------------------+-------------------------------------------------+ +| website_livechat | | | ++---------------------------------------------------+----------------------+-------------------------------------------------+ +| website_mail | | | ++---------------------------------------------------+----------------------+-------------------------------------------------+ +| website_mail_group | | | ++---------------------------------------------------+----------------------+-------------------------------------------------+ +| website_mass_mailing | | | ++---------------------------------------------------+----------------------+-------------------------------------------------+ +| website_mass_mailing_sms | | | ++---------------------------------------------------+----------------------+-------------------------------------------------+ +| |del| website_membership | | | ++---------------------------------------------------+----------------------+-------------------------------------------------+ +| website_partner | | | ++---------------------------------------------------+----------------------+-------------------------------------------------+ +| website_payment | | | ++---------------------------------------------------+----------------------+-------------------------------------------------+ +| |del| website_payment_authorize | | | ++---------------------------------------------------+----------------------+-------------------------------------------------+ +| website_profile | | | ++---------------------------------------------------+----------------------+-------------------------------------------------+ +| website_project | | | ++---------------------------------------------------+----------------------+-------------------------------------------------+ +| website_sale | | | ++---------------------------------------------------+----------------------+-------------------------------------------------+ +| website_sale_autocomplete | |No DB layout changes. | ++---------------------------------------------------+----------------------+-------------------------------------------------+ +| website_sale_collect | | | ++---------------------------------------------------+----------------------+-------------------------------------------------+ +| |new| website_sale_collect_wishlist | | | ++---------------------------------------------------+----------------------+-------------------------------------------------+ +| website_sale_comparison | | | ++---------------------------------------------------+----------------------+-------------------------------------------------+ +| website_sale_comparison_wishlist | | | ++---------------------------------------------------+----------------------+-------------------------------------------------+ +| website_sale_gelato | | | ++---------------------------------------------------+----------------------+-------------------------------------------------+ +| website_sale_loyalty | | | ++---------------------------------------------------+----------------------+-------------------------------------------------+ +| website_sale_mass_mailing | |No DB layout changes. | ++---------------------------------------------------+----------------------+-------------------------------------------------+ +| website_sale_mondialrelay | | | ++---------------------------------------------------+----------------------+-------------------------------------------------+ +| website_sale_mrp | | | ++---------------------------------------------------+----------------------+-------------------------------------------------+ +| website_sale_slides | | | ++---------------------------------------------------+----------------------+-------------------------------------------------+ +| website_sale_stock | | | ++---------------------------------------------------+----------------------+-------------------------------------------------+ +| website_sale_stock_wishlist | |No DB layout changes. | ++---------------------------------------------------+----------------------+-------------------------------------------------+ +| website_sale_wishlist | | | ++---------------------------------------------------+----------------------+-------------------------------------------------+ +| website_slides | | | ++---------------------------------------------------+----------------------+-------------------------------------------------+ +| website_slides_forum | | | ++---------------------------------------------------+----------------------+-------------------------------------------------+ +| website_slides_survey | | | ++---------------------------------------------------+----------------------+-------------------------------------------------+ +| website_sms | | | ++---------------------------------------------------+----------------------+-------------------------------------------------+ +| |new| website_timesheet | | | ++---------------------------------------------------+----------------------+-------------------------------------------------+ \ No newline at end of file From 8ec3689c31747859e9ebf11ef1f92c2f1837684d Mon Sep 17 00:00:00 2001 From: Holger Brunn Date: Fri, 26 Sep 2025 17:47:47 +0200 Subject: [PATCH 2/5] [MIG] base --- docsource/modules180-190.rst | 4 +- .../base/19.0.1.3/noupdate_changes_work.xml | 69 ++ .../scripts/base/19.0.1.3/post-migration.py | 107 +++ .../scripts/base/19.0.1.3/pre-migration.py | 172 +++++ .../base/19.0.1.3/upgrade_analysis_work.txt | 641 ++++++++++++++++++ .../scripts/base/tests/data_base_migration.py | 44 ++ .../scripts/base/tests/test_base_migration.py | 26 + 7 files changed, 1061 insertions(+), 2 deletions(-) create mode 100644 openupgrade_scripts/scripts/base/19.0.1.3/noupdate_changes_work.xml create mode 100644 openupgrade_scripts/scripts/base/19.0.1.3/post-migration.py create mode 100644 openupgrade_scripts/scripts/base/19.0.1.3/pre-migration.py create mode 100644 openupgrade_scripts/scripts/base/19.0.1.3/upgrade_analysis_work.txt create mode 100644 openupgrade_scripts/scripts/base/tests/data_base_migration.py create mode 100644 openupgrade_scripts/scripts/base/tests/test_base_migration.py diff --git a/docsource/modules180-190.rst b/docsource/modules180-190.rst index 66840b9e17d..6b98034acb1 100644 --- a/docsource/modules180-190.rst +++ b/docsource/modules180-190.rst @@ -72,7 +72,7 @@ Module coverage 18.0 -> 19.0 +---------------------------------------------------+----------------------+-------------------------------------------------+ | barcodes_gs1_nomenclature | |No DB layout changes. | +---------------------------------------------------+----------------------+-------------------------------------------------+ -| base | | | +| base | |Done | +---------------------------------------------------+----------------------+-------------------------------------------------+ | base_address_extended | |No DB layout changes. | +---------------------------------------------------+----------------------+-------------------------------------------------+ @@ -1245,4 +1245,4 @@ Module coverage 18.0 -> 19.0 | website_sms | | | +---------------------------------------------------+----------------------+-------------------------------------------------+ | |new| website_timesheet | | | -+---------------------------------------------------+----------------------+-------------------------------------------------+ \ No newline at end of file ++---------------------------------------------------+----------------------+-------------------------------------------------+ diff --git a/openupgrade_scripts/scripts/base/19.0.1.3/noupdate_changes_work.xml b/openupgrade_scripts/scripts/base/19.0.1.3/noupdate_changes_work.xml new file mode 100644 index 00000000000..55854af7503 --- /dev/null +++ b/openupgrade_scripts/scripts/base/19.0.1.3/noupdate_changes_work.xml @@ -0,0 +1,69 @@ + + + + AED + + + 1 + TRN + + + Congo (DRC) + + + Congo (Republic) + + + CH-LI + + + EEU + + + EU + + + GCC + + + [('user_ids','in',[False,user.id])] + ir.filter: owner or global + + + + + + + [('user_ids', 'in', user.ids)] + + + + + + VAT + + + + + + SEPA + + + SA + + + + + + + + diff --git a/openupgrade_scripts/scripts/base/19.0.1.3/post-migration.py b/openupgrade_scripts/scripts/base/19.0.1.3/post-migration.py new file mode 100644 index 00000000000..a4997c2a6ba --- /dev/null +++ b/openupgrade_scripts/scripts/base/19.0.1.3/post-migration.py @@ -0,0 +1,107 @@ +# Copyright 2025 Hunki Enterprises BV +# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl). + +from openupgradelib import openupgrade + +from odoo.fields import Command + + +def _ir_actions_act_window_target(env): + """ + selection value 'inline' was removed, map to 'current' + """ + openupgrade.logged_query( + env.cr, + "UPDATE ir_act_window SET target='current' WHERE target='inline'", + ) + + +def _ir_actions_server_child_ids(env): + """ + Field was changed from m2m to o2m - set parent_id from m2m table, + duplicate child actions that had multiple parents + """ + env.cr.execute( + """ + SELECT action_id, array_agg(server_id) + FROM rel_server_actions GROUP BY action_id + """ + ) + for action_id, parent_ids in env.cr.fetchall(): + action = env["ir.actions.server"].browse(action_id) + parents = env["ir.actions.server"].browse(parent_ids) + action.parent_id = parents[0] + for parent in parents[1:]: + action.copy({"name": action.name, "parent_id": parent.id}) + + +def _ir_actions_server_html_value(env): + """ + For evaluation_type 'value' and update_field_id.ttype == 'html', + new field html_value is used + """ + for action in env["ir.actions.server"].search( + [ + ("state", "=", "object_write"), + ("evaluation_type", "=", "value"), + ("update_field_id.ttype", "=", "html"), + ] + ): + action.write({"html_value": action.value}) + + +def _ir_filters_user_ids(env): + """ + m2o user_id has been transformed to m2m user_ids + """ + openupgrade.m2o_to_x2m( + env.cr, env["ir.filters"], env["ir.filters"]._table, "user_ids", "user_id" + ) + + +def _res_lang(env): + """ + Char fields date_format, grouping and time_format have been dumbed down to + selection fields. Keep their original value in a legacy column, and map existing + values not in the selection to the default value + """ + ResLang = env["res.lang"] + for field_name in ("date_format", "time_format", "grouping"): + field = ResLang._fields[field_name] + openupgrade.copy_columns(env.cr, {"res_lang": [(field_name, None, None)]}) + openupgrade.logged_query( + env.cr, + f"UPDATE res_lang SET {field_name}=%(default)s " + f"WHERE {field_name} NOT IN %(selection)s", + { + "default": field.default(ResLang), + "selection": tuple( + value for value, _string in field._description_selection(env) + ), + }, + ) + + +def _init_default_user_group(env): + """ + Assign all groups of default_user to implied_ids of default_user_group + """ + default_user = env.ref("base.default_user", raise_if_not_found=False) + if not default_user: + return + env.ref("base.default_user_group").write( + { + "implied_ids": [Command.set(default_user.group_ids.ids)], + } + ) + + +@openupgrade.migrate() +def migrate(env, version): + openupgrade.load_data(env, "base", "19.0.1.3/noupdate_changes_work.xml") + _ir_actions_act_window_target(env) + _ir_actions_server_child_ids(env) + _ir_actions_server_html_value(env) + _ir_filters_user_ids(env) + _res_lang(env) + _init_default_user_group(env) diff --git a/openupgrade_scripts/scripts/base/19.0.1.3/pre-migration.py b/openupgrade_scripts/scripts/base/19.0.1.3/pre-migration.py new file mode 100644 index 00000000000..28873fe73c6 --- /dev/null +++ b/openupgrade_scripts/scripts/base/19.0.1.3/pre-migration.py @@ -0,0 +1,172 @@ +# Copyright 2025 Hunki Enterprises BV +# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl). + +from openupgradelib import openupgrade + +# pylint: disable=odoo-addons-relative-import +from odoo.addons.openupgrade_scripts.apriori import merged_modules, renamed_modules + +_renamed_xmlids = [ + ("l10n_fr.dom-tom", "base.dom-tom"), + ("l10n_at.state_at_1", "base.state_at_1"), + ("l10n_at.state_at_2", "base.state_at_2"), + ("l10n_at.state_at_3", "base.state_at_3"), + ("l10n_at.state_at_4", "base.state_at_4"), + ("l10n_at.state_at_5", "base.state_at_5"), + ("l10n_at.state_at_6", "base.state_at_6"), + ("l10n_at.state_at_7", "base.state_at_7"), + ("l10n_at.state_at_8", "base.state_at_8"), + ("l10n_at.state_at_9", "base.state_at_9"), + ("l10n_bd.state_bd_a", "base.state_bd_a"), + ("l10n_bd.state_bd_b", "base.state_bd_b"), + ("l10n_bd.state_bd_c", "base.state_bd_c"), + ("l10n_bd.state_bd_d", "base.state_bd_d"), + ("l10n_bd.state_bd_e", "base.state_bd_e"), + ("l10n_bd.state_bd_f", "base.state_bd_f"), + ("l10n_bd.state_bd_g", "base.state_bd_g"), + ("l10n_bd.state_bd_h", "base.state_bd_h"), + ("base.state_id_pp", "base.state_id_pe"), + ("l10n_iq.state_iq_01", "base.state_iq_01"), + ("l10n_iq.state_iq_01_ar", "base.state_iq_01_ar"), + ("l10n_iq.state_iq_02", "base.state_iq_02"), + ("l10n_iq.state_iq_02_ar", "base.state_iq_02_ar"), + ("l10n_iq.state_iq_03", "base.state_iq_03"), + ("l10n_iq.state_iq_03_ar", "base.state_iq_03_ar"), + ("l10n_iq.state_iq_04", "base.state_iq_04"), + ("l10n_iq.state_iq_04_ar", "base.state_iq_04_ar"), + ("l10n_iq.state_iq_05", "base.state_iq_05"), + ("l10n_iq.state_iq_05_ar", "base.state_iq_05_ar"), + ("l10n_iq.state_iq_06", "base.state_iq_06"), + ("l10n_iq.state_iq_06_ar", "base.state_iq_06_ar"), + ("l10n_iq.state_iq_07", "base.state_iq_07"), + ("l10n_iq.state_iq_07_ar", "base.state_iq_07_ar"), + ("l10n_iq.state_iq_08", "base.state_iq_08"), + ("l10n_iq.state_iq_08_ar", "base.state_iq_08_ar"), + ("l10n_iq.state_iq_09", "base.state_iq_09"), + ("l10n_iq.state_iq_09_ar", "base.state_iq_09_ar"), + ("l10n_iq.state_iq_10", "base.state_iq_10"), + ("l10n_iq.state_iq_10_ar", "base.state_iq_10_ar"), + ("l10n_iq.state_iq_11", "base.state_iq_11"), + ("l10n_iq.state_iq_11_ar", "base.state_iq_11_ar"), + ("l10n_iq.state_iq_12", "base.state_iq_12"), + ("l10n_iq.state_iq_12_ar", "base.state_iq_12_ar"), + ("l10n_iq.state_iq_13", "base.state_iq_13"), + ("l10n_iq.state_iq_13_ar", "base.state_iq_13_ar"), + ("l10n_iq.state_iq_14", "base.state_iq_14"), + ("l10n_iq.state_iq_14_ar", "base.state_iq_14_ar"), + ("l10n_iq.state_iq_15", "base.state_iq_15"), + ("l10n_iq.state_iq_15_ar", "base.state_iq_15_ar"), + ("l10n_iq.state_iq_16", "base.state_iq_16"), + ("l10n_iq.state_iq_16_ar", "base.state_iq_16_ar"), + ("l10n_iq.state_iq_17", "base.state_iq_17"), + ("l10n_iq.state_iq_17_ar", "base.state_iq_17_ar"), + ("l10n_iq.state_iq_18", "base.state_iq_18"), + ("l10n_iq.state_iq_18_ar", "base.state_iq_18_ar"), + ("l10n_pk.state_pk_ajk", "base.state_pk_ajk"), + ("l10n_pk.state_pk_ba", "base.state_pk_ba"), + ("l10n_pk.state_pk_gb", "base.state_pk_gb"), + ("l10n_pk.state_pk_is", "base.state_pk_is"), + ("l10n_pk.state_pk_kp", "base.state_pk_kp"), + ("l10n_pk.state_pk_pb", "base.state_pk_pb"), + ("l10n_pk.state_pk_sd", "base.state_pk_sd"), + ("l10n_pl.state_pl_ds", "base.state_pl_ds"), + ("l10n_pl.state_pl_kp", "base.state_pl_kp"), + ("l10n_pl.state_pl_lb", "base.state_pl_lb"), + ("l10n_pl.state_pl_ld", "base.state_pl_ld"), + ("l10n_pl.state_pl_ls", "base.state_pl_ls"), + ("l10n_pl.state_pl_mp", "base.state_pl_mp"), + ("l10n_pl.state_pl_mz", "base.state_pl_mz"), + ("l10n_pl.state_pl_op", "base.state_pl_op"), + ("l10n_pl.state_pl_pk", "base.state_pl_pk"), + ("l10n_pl.state_pl_pl", "base.state_pl_pl"), + ("l10n_pl.state_pl_pm", "base.state_pl_pm"), + ("l10n_pl.state_pl_sk", "base.state_pl_sk"), + ("l10n_pl.state_pl_sl", "base.state_pl_sl"), + ("l10n_pl.state_pl_wm", "base.state_pl_wm"), + ("l10n_pl.state_pl_wp", "base.state_pl_wp"), + ("l10n_pl.state_pl_zp", "base.state_pl_zp"), + ("l10n_tw.state_tw_chh", "base.state_tw_chh"), + ("l10n_tw.state_tw_cic", "base.state_tw_cic"), + ("l10n_tw.state_tw_cih", "base.state_tw_cih"), + ("l10n_tw.state_tw_hch", "base.state_tw_hch"), + ("l10n_tw.state_tw_hct", "base.state_tw_hct"), + ("l10n_tw.state_tw_hlh", "base.state_tw_hlh"), + ("l10n_tw.state_tw_ilh", "base.state_tw_ilh"), + ("l10n_tw.state_tw_khc", "base.state_tw_khc"), + ("l10n_tw.state_tw_klc", "base.state_tw_klc"), + ("l10n_tw.state_tw_kmc", "base.state_tw_kmc"), + ("l10n_tw.state_tw_lcc", "base.state_tw_lcc"), + ("l10n_tw.state_tw_mlh", "base.state_tw_mlh"), + ("l10n_tw.state_tw_ntc", "base.state_tw_ntc"), + ("l10n_tw.state_tw_ntpc", "base.state_tw_ntpc"), + ("l10n_tw.state_tw_phc", "base.state_tw_phc"), + ("l10n_tw.state_tw_pth", "base.state_tw_pth"), + ("l10n_tw.state_tw_tcc", "base.state_tw_tcc"), + ("l10n_tw.state_tw_tnh", "base.state_tw_tnh"), + ("l10n_tw.state_tw_tpc", "base.state_tw_tpc"), + ("l10n_tw.state_tw_tth", "base.state_tw_tth"), + ("l10n_tw.state_tw_tyc", "base.state_tw_tyc"), + ("l10n_tw.state_tw_ylh", "base.state_tw_ylh"), +] + +_renamed_fields = [ + ( + "ir.actions.act_window", + "ir_act_window", + "groups_id", + "group_ids", + ), + ( + "ir.actions.report", + "ir_act_report_xml", + "groups_id", + "group_ids", + ), + ( + "ir.actions.server", + "ir_act_report_xml", + "groups_id", + "group_ids", + ), + ( + "ir.ui.menu", + "ir_ui_menu", + "groups_id", + "group_ids", + ), + ( + "ir.ui.view", + "ir_ui_view", + "groups_id", + "group_ids", + ), + ( + "res.groups", + "res_groups", + "users", + "user_ids", + ), + ( + "res.users", + "res_users", + "groups_id", + "group_ids", + ), +] + + +@openupgrade.migrate() +def migrate(env, version): + openupgrade.logged_query( + env.cr, + f""" + CREATE TABLE { + openupgrade.get_legacy_name("ir_module_module") + } AS (SELECT name, state FROM ir_module_module); + """, + ) + openupgrade.update_module_names(env.cr, renamed_modules.items()) + openupgrade.update_module_names(env.cr, merged_modules.items(), merge_modules=True) + openupgrade.clean_transient_models(env.cr) + openupgrade.rename_xmlids(env.cr, _renamed_xmlids) + openupgrade.rename_fields(env, _renamed_fields) diff --git a/openupgrade_scripts/scripts/base/19.0.1.3/upgrade_analysis_work.txt b/openupgrade_scripts/scripts/base/19.0.1.3/upgrade_analysis_work.txt new file mode 100644 index 00000000000..58b17faadbe --- /dev/null +++ b/openupgrade_scripts/scripts/base/19.0.1.3/upgrade_analysis_work.txt @@ -0,0 +1,641 @@ +---Models in module 'base'--- +obsolete model res.partner.title + +# NOTHING TO DO: possibly some oca module will pick this up again + +new model ir.actions.server.history + +# NOTHING TO DO: new functionality + +new model properties.base.definition +new model properties.base.definition.mixin [abstract] + +# NOTHING TO DO: handled by orm + +new model res.groups.privilege +new model server.action.history.wizard [transient] + +# NOTHING TO DO: new functionality + +---Fields in module 'base'--- +account / res.company / company_registry_placeholder (char): not a function anymore +account / res.company / company_registry_placeholder (char): now related +base / ir.actions.act_url / _order : _order is now 'name, id' ('name') +base / ir.actions.act_window / _order : _order is now 'name, id' ('name') +base / ir.actions.act_window / cache (boolean) : NEW hasdefault: default + +# NOTHING TO DO + +base / ir.actions.act_window / group_ids (many2many) : NEW relation: res.groups +base / ir.actions.act_window / groups_id (many2many) : DEL relation: res.groups + +# DONE: renamed groups_id to group_ids in pre-migration + +base / ir.actions.act_window / target (selection) : selection_keys removed: [inline] + +# DONE: set to 'current' in post-migration + +base / ir.actions.act_window_close / _order : _order is now 'name, id' ('name') +base / ir.actions.actions / _order : _order is now 'name, id' ('name') +base / ir.actions.client / _order : _order is now 'name, id' ('name') + +# NOTHING TO DO + +base / ir.actions.report / group_ids (many2many) : NEW relation: res.groups +base / ir.actions.report / groups_id (many2many) : DEL relation: res.groups + +# DONE: renamed groups_id to group_ids in pre-migration + +base / ir.actions.server / _order : _order is now 'sequence,name,id' ('sequence,name') +base / ir.actions.server / automated_name (char) : NEW isfunction: function, stored + +# NOTHING TO DO + +base / ir.actions.server / child_ids (many2many) : table is now 'False' ('rel_server_actions') +base / ir.actions.server / child_ids (many2many) : type is now 'one2many' ('many2many') + +# DONE: set from m2m table in post-migration + +base / ir.actions.server / crud_model_id (many2one) : now a function + +# NOTHING TO DO: same computation function + +base / ir.actions.server / evaluation_type (selection) : selection_keys added: [sequence] (most likely nothing to do) + +# NOTHING TO DO + +base / ir.actions.server / group_ids (many2many) : NEW relation: res.groups +base / ir.actions.server / groups_id (many2many) : DEL relation: res.groups + +# DONE: renamed groups_id to group_ids in pre-migration + +base / ir.actions.server / html_value (html) : NEW + +# DONE: filled from value in post-migration + +base / ir.actions.server / ir_cron_ids (one2many) : NEW relation: ir.cron + +# NOTHING TO DO: inverse of ir.cron#ir_actions_server_id + +base / ir.actions.server / model_name (char) : not stored anymore + +# NOTHING TO DO + +base / ir.actions.server / parent_id (many2one) : NEW relation: ir.actions.server + +# DONE: see above for child_ids + +base / ir.actions.server / sequence_id (many2one) : NEW relation: ir.sequence + +# NOTHING TO DO: new field for evaluation_type == 'sequence' + +base / ir.actions.server / state (selection) : selection_keys added: [object_copy] (most likely nothing to do) +base / ir.actions.server / value_field_to_show (selection): selection_keys added: [html_value, sequence_id] (most likely nothing to do) + +# NOTHING TO DO + +base / ir.actions.server.history / action_id (many2one) : NEW relation: ir.actions.server, required +base / ir.actions.server.history / code (text) : NEW + +# NOTHING TO DO: v19 keeps a history of code changes + +base / ir.cron / _order : _order is now 'cron_name, id' ('cron_name') + +# NOTHING TO DO + +base / ir.cron / child_ids (many2many) : type is now 'one2many' ('many2many') + +# NOTHING TO DO: inherited from ir.actions.server, handled there + +base / ir.cron.trigger / call_at (datetime) : now required +base / ir.cron.trigger / cron_id (many2one) : now required + +# NOTHING TO DO: old records with missing fields will be cleaned up eventually + +base / ir.exports / _order : _order is now 'name, id' ('name') + +# NOTHING TO DO + +base / ir.filters / user_id (many2one) : DEL relation: res.users +base / ir.filters / user_ids (many2many) : NEW relation: res.users + +# DONE: openupgrade.m2o_to_x2m in post-migration + +base / ir.mail_server / smtp_encryption (selection) : selection_keys added: [ssl_strict, starttls_strict] (most likely nothing to do) + +# NOTHING TO DO + +base / ir.model / abstract (boolean) : NEW +base / ir.model / fold_name (char) : NEW + +# NOTHING TO DO: filled by orm + +base / ir.model.fields / _order : _order is now 'name, id' ('name') +base / ir.model.fields / complete_name (char) : DEL + +# NOTHING TO DO + +base / ir.model.fields / translate (boolean) : selection_keys is now '['html_translate', 'standard', 'xml_translate']' ('False') +base / ir.model.fields / translate (boolean) : type is now 'selection' ('boolean') + +# DONE: set column to NULL where it was FALSE in openupgrade_framework, because migration scripts are too late for it + +base / ir.module.category / _order : _order is now 'sequence, name, id' ('name') + +# NOTHING TO DO: we want to have the ordering by sequence as provided by Odoo + +base / ir.module.category / privilege_ids (one2many) : NEW relation: res.groups.privilege + +# NOTHING TO DO: new concept + +base / ir.profile / cpu_duration (float) : NEW +base / ir.profile / others (text) : NEW + +# NOTHING TO DO: new funcitonality, no way of generating this data + +base / ir.sequence / _order : _order is now 'name, id' ('name') + +# NOTHING TO DO + +base / ir.ui.menu / group_ids (many2many) : NEW relation: res.groups +base / ir.ui.menu / groups_id (many2many) : DEL relation: res.groups +base / ir.ui.view / group_ids (many2many) : NEW relation: res.groups +base / ir.ui.view / groups_id (many2many) : DEL relation: res.groups + +# DONE: renamed groups_id to group_ids in pre-migration + +base / ir.ui.view.custom / _order : _order is now 'create_date desc, id desc' ('create_date desc') + +# NOTHING TO DO + +base / properties.base.definition / properties_definition (properties_definition): NEW +base / properties.base.definition / properties_field_id (many2one): NEW relation: ir.model.fields, required + +# NOTHING TO DO: filled by orm + +base / report.layout / _order : _order is now 'sequence, id' ('sequence') +base / res.bank / _order : _order is now 'name, id' ('name') +base / res.company / company_registry_placeholder (char): previously in module account + +# NOTHING TO DO + +base / res.company / mobile (char) : DEL + +# NOTHING TO DO: possibly some oca module will pick this up again + +base / res.country / _order : _order is now 'name, id' ('name') + +# NOTHING TO DO: possibly some oca module will pick this up again + +base / res.country.group / code (char) : NEW + +# NOTHING TO DO: filled in noupdate_changes.xml + +base / res.country.state / _order : _order is now 'code, id' ('code') +base / res.currency.rate / _order : _order is now 'name desc, id' ('name desc') +base / res.groups / _order : _order is now 'privilege_id, sequence, name, id' ('name') + +# NOTHING TO DO + +base / res.groups / category_id (many2one) : DEL relation: ir.module.category + +# NOTHING TO DO: code provided groups will set their own privilege if applicable, manually created ones will have to be assigned to whatever privilege makes sense + +base / res.groups / color (integer) : DEL + +# NOTHING TO DO + +base / res.groups / implied_by_ids (many2many) : NEW relation: res.groups + +# NOTHING TO DO: inverse of existing relation + +base / res.groups / privilege_id (many2one) : NEW relation: res.groups.privilege + +# NOTHING TO DO: new concept + +base / res.groups / sequence (integer) : NEW + +# NOTHING TO DO + +base / res.groups / user_ids (many2many) : NEW relation: res.users +base / res.groups / users (many2many) : DEL relation: res.users + +# DONE: renamed field in pre-migration + +base / res.groups.privilege / category_id (many2one) : NEW relation: ir.module.category +base / res.groups.privilege / description (text) : NEW +base / res.groups.privilege / group_ids (one2many) : NEW relation: res.groups +base / res.groups.privilege / name (char) : NEW required, translate +base / res.groups.privilege / placeholder (char) : NEW hasdefault: default +base / res.groups.privilege / sequence (integer) : NEW hasdefault: default + +# NOTHING TO DO: new concept + +base / res.lang / date_format (char) : selection_keys is now 'function' ('False') +base / res.lang / date_format (char) : type is now 'selection' ('char') +base / res.lang / grouping (char) : selection_keys is now '['[3,0]', '[3,2,0]']' ('False') +base / res.lang / grouping (char) : type is now 'selection' ('char') +base / res.lang / short_time_format (char) : DEL required +base / res.lang / time_format (char) : selection_keys is now '['%H:%M:%S', '%I:%M:%S %p']' ('False') +base / res.lang / time_format (char) : type is now 'selection' ('char') + +# DONE: copy original values to legacy column, map values not in selection to default value + +base / res.partner / mobile (char) : DEL + +# NOTHING TO DO: possibly some oca module will pick this up again + +base / res.partner / properties (properties) : NEW hasdefault: compute + +# NOTHING TO DO: new functionality + +base / res.partner / title (many2one) : DEL relation: res.partner.title + +# NOTHING TO DO: possibly some oca module will pick this up again + +base / res.partner.bank / clearing_number (char) : NEW +base / res.partner.bank / note (text) : NEW + +# NOTHING TO DO: new functionality + +base / res.partner.category / _order : _order is now 'name, id' ('name') +base / res.partner.industry / _order : _order is now 'name, id' ('name') + +# NOTHING TO DO + +base / res.partner.title / name (char) : DEL required +base / res.partner.title / shortcut (char) : DEL + +# NOTHING TO DO: obsolete model + +base / res.users / group_ids (many2many) : NEW relation: res.groups, hasdefault: default +base / res.users / groups_id (many2many) : DEL relation: res.groups + +# DONE: renamed groups_id to group_ids in pre-migration + +base / res.users / role (selection) : NEW selection_keys: ['group_system', 'group_user'], hasdefault: compute, stored: False +base / res.users / view_group_hierarchy (json) : NEW hasdefault: default, stored: False + +# NOTHING TO DO: nonstored + +---XML records in module 'base'--- +NEW ir.actions.act_window: base.action_res_groups_privilege +DEL ir.actions.act_window: base.action_partner_title_contact +NEW ir.model.access: base.access_ir_actions_server_history_group_system +NEW ir.model.access: base.access_properties_base_definition_group_system +NEW ir.model.access: base.access_res_groups_privilege_group_erp_manager +NEW ir.model.access: base.access_res_groups_privilege_group_user +NEW ir.model.access: base.access_server_action_history_wizard +DEL ir.model.access: base.access_res_partner_title_group_partner_manager +DEL ir.model.access: base.access_res_partner_title_group_user +NEW ir.model.constraint: base.constraint_ir_act_window_view_unique_mode_per_action +NEW ir.model.constraint: base.constraint_ir_attachment_res_idx +NEW ir.model.constraint: base.constraint_ir_filters_get_filters_index +NEW ir.model.constraint: base.constraint_ir_model_data_model_res_id_index +NEW ir.model.constraint: base.constraint_ir_model_data_module_name_uniq_index +NEW ir.model.constraint: base.constraint_ir_ui_view_custom_user_id_ref_id +NEW ir.model.constraint: base.constraint_ir_ui_view_model_type_inherit_id +NEW ir.model.constraint: base.constraint_properties_base_definition_unique_properties_field_id +NEW ir.model.constraint: base.constraint_res_country_group_check_code_uniq +NEW ir.model.constraint: base.constraint_res_device_composite_idx +NEW ir.model.constraint: base.constraint_res_device_log_composite_idx +NEW ir.model.constraint: base.constraint_res_device_log_revoked_idx +NEW ir.model.constraint: base.constraint_res_device_revoked_idx +ir.model.constraint: base.constraint_res_groups_name_uniq (changed definition: is now 'UNIQUE (privilege_id, name)' ('unique(category_id,name)')) +DEL ir.model.constraint: base.constraint_ir_filters_name_model_uid_unique +NEW ir.module.category: base.module_category_esg +NEW ir.module.category: base.module_category_human_resources_referrals +NEW ir.module.category: base.module_category_internet_of_things_(iot) +NEW ir.module.category: base.module_category_master_data +NEW ir.module.category: base.module_category_shipping_connectors (noupdate) +NEW ir.module.category: base.module_category_supply_chain (noupdate) +DEL ir.module.category: base.module_category_inventory (noupdate) +DEL ir.module.category: base.module_category_manufacturing (noupdate) +DEL ir.module.category: base.module_category_usability +DEL ir.module.category: base.module_category_user_type +NEW ir.rule: base.properties_base_definition_rule_admin (noupdate) +NEW ir.rule: base.res_users_rule_portal (noupdate) +DEL ir.rule: base.ir_filters_delete_own_rule (noupdate) +NEW ir.ui.menu: base.menu_action_res_groups_privilege +NEW ir.ui.view: base.ir_filters_view_edit_form +NEW ir.ui.view: base.res_users_apikeys_view_kanban +NEW ir.ui.view: base.server_action_history_wizard_view +NEW ir.ui.view: base.view_default_groups_form +NEW ir.ui.view: base.view_groups_list +NEW ir.ui.view: base.view_res_groups_privilege_form +NEW ir.ui.view: base.view_res_groups_privilege_list +NEW ir.ui.view: base.view_server_action_kanban +DEL ir.ui.view: base.res_partner_view_form_private +DEL ir.ui.view: base.user_groups_view +DEL ir.ui.view: base.view_partner_title_form +DEL ir.ui.view: base.view_partner_title_tree +NEW res.country: base.xi (noupdate) +NEW res.country.group: base.dom-tom [renamed from l10n_fr module] (noupdate) (noupdate switched) +NEW res.country.group: base.europe_prefix (noupdate) + +# NOTHING TO DO + +NEW res.country.state: base.state_at_1 [renamed from l10n_at module] +NEW res.country.state: base.state_at_2 [renamed from l10n_at module] +NEW res.country.state: base.state_at_3 [renamed from l10n_at module] +NEW res.country.state: base.state_at_4 [renamed from l10n_at module] +NEW res.country.state: base.state_at_5 [renamed from l10n_at module] +NEW res.country.state: base.state_at_6 [renamed from l10n_at module] +NEW res.country.state: base.state_at_7 [renamed from l10n_at module] +NEW res.country.state: base.state_at_8 [renamed from l10n_at module] +NEW res.country.state: base.state_at_9 [renamed from l10n_at module] +NEW res.country.state: base.state_bd_a [renamed from l10n_bd module] +NEW res.country.state: base.state_bd_b [renamed from l10n_bd module] +NEW res.country.state: base.state_bd_c [renamed from l10n_bd module] +NEW res.country.state: base.state_bd_d [renamed from l10n_bd module] +NEW res.country.state: base.state_bd_e [renamed from l10n_bd module] +NEW res.country.state: base.state_bd_f [renamed from l10n_bd module] +NEW res.country.state: base.state_bd_g [renamed from l10n_bd module] +NEW res.country.state: base.state_bd_h [renamed from l10n_bd module] + +# DONE: renamed from l10n module + +NEW res.country.state: base.state_id_pe + +# DONE: renamed from base.state_id_pp + +NEW res.country.state: base.state_iq_01 [renamed from l10n_iq module] +NEW res.country.state: base.state_iq_01_ar [renamed from l10n_iq module] +NEW res.country.state: base.state_iq_02 [renamed from l10n_iq module] +NEW res.country.state: base.state_iq_02_ar [renamed from l10n_iq module] +NEW res.country.state: base.state_iq_03 [renamed from l10n_iq module] +NEW res.country.state: base.state_iq_03_ar [renamed from l10n_iq module] +NEW res.country.state: base.state_iq_04 [renamed from l10n_iq module] +NEW res.country.state: base.state_iq_04_ar [renamed from l10n_iq module] +NEW res.country.state: base.state_iq_05 [renamed from l10n_iq module] +NEW res.country.state: base.state_iq_05_ar [renamed from l10n_iq module] +NEW res.country.state: base.state_iq_06 [renamed from l10n_iq module] +NEW res.country.state: base.state_iq_06_ar [renamed from l10n_iq module] +NEW res.country.state: base.state_iq_07 [renamed from l10n_iq module] +NEW res.country.state: base.state_iq_07_ar [renamed from l10n_iq module] +NEW res.country.state: base.state_iq_08 [renamed from l10n_iq module] +NEW res.country.state: base.state_iq_08_ar [renamed from l10n_iq module] +NEW res.country.state: base.state_iq_09 [renamed from l10n_iq module] +NEW res.country.state: base.state_iq_09_ar [renamed from l10n_iq module] +NEW res.country.state: base.state_iq_10 [renamed from l10n_iq module] +NEW res.country.state: base.state_iq_10_ar [renamed from l10n_iq module] +NEW res.country.state: base.state_iq_11 [renamed from l10n_iq module] +NEW res.country.state: base.state_iq_11_ar [renamed from l10n_iq module] +NEW res.country.state: base.state_iq_12 [renamed from l10n_iq module] +NEW res.country.state: base.state_iq_12_ar [renamed from l10n_iq module] +NEW res.country.state: base.state_iq_13 [renamed from l10n_iq module] +NEW res.country.state: base.state_iq_13_ar [renamed from l10n_iq module] +NEW res.country.state: base.state_iq_14 [renamed from l10n_iq module] +NEW res.country.state: base.state_iq_14_ar [renamed from l10n_iq module] +NEW res.country.state: base.state_iq_15 [renamed from l10n_iq module] +NEW res.country.state: base.state_iq_15_ar [renamed from l10n_iq module] +NEW res.country.state: base.state_iq_16 [renamed from l10n_iq module] +NEW res.country.state: base.state_iq_16_ar [renamed from l10n_iq module] +NEW res.country.state: base.state_iq_17 [renamed from l10n_iq module] +NEW res.country.state: base.state_iq_17_ar [renamed from l10n_iq module] +NEW res.country.state: base.state_iq_18 [renamed from l10n_iq module] +NEW res.country.state: base.state_iq_18_ar [renamed from l10n_iq module] + +# DONE: renamed from l10n module + +NEW res.country.state: base.state_ng_ab +NEW res.country.state: base.state_ng_ad +NEW res.country.state: base.state_ng_ak +NEW res.country.state: base.state_ng_an +NEW res.country.state: base.state_ng_ba +NEW res.country.state: base.state_ng_be +NEW res.country.state: base.state_ng_bo +NEW res.country.state: base.state_ng_by +NEW res.country.state: base.state_ng_cr +NEW res.country.state: base.state_ng_de +NEW res.country.state: base.state_ng_eb +NEW res.country.state: base.state_ng_ed +NEW res.country.state: base.state_ng_ek +NEW res.country.state: base.state_ng_en +NEW res.country.state: base.state_ng_fc +NEW res.country.state: base.state_ng_go +NEW res.country.state: base.state_ng_im +NEW res.country.state: base.state_ng_ji +NEW res.country.state: base.state_ng_ka +NEW res.country.state: base.state_ng_ke +NEW res.country.state: base.state_ng_kn +NEW res.country.state: base.state_ng_ko +NEW res.country.state: base.state_ng_kt +NEW res.country.state: base.state_ng_kw +NEW res.country.state: base.state_ng_la +NEW res.country.state: base.state_ng_na +NEW res.country.state: base.state_ng_ni +NEW res.country.state: base.state_ng_og +NEW res.country.state: base.state_ng_on +NEW res.country.state: base.state_ng_os +NEW res.country.state: base.state_ng_oy +NEW res.country.state: base.state_ng_pl +NEW res.country.state: base.state_ng_ri +NEW res.country.state: base.state_ng_so +NEW res.country.state: base.state_ng_ta +NEW res.country.state: base.state_ng_yo +NEW res.country.state: base.state_ng_za +NEW res.country.state: base.state_ph_01 +NEW res.country.state: base.state_ph_02 +NEW res.country.state: base.state_ph_03 +NEW res.country.state: base.state_ph_04 +NEW res.country.state: base.state_ph_05 +NEW res.country.state: base.state_ph_06 +NEW res.country.state: base.state_ph_07 +NEW res.country.state: base.state_ph_08 +NEW res.country.state: base.state_ph_09 +NEW res.country.state: base.state_ph_10 +NEW res.country.state: base.state_ph_11 +NEW res.country.state: base.state_ph_12 +NEW res.country.state: base.state_ph_13 +NEW res.country.state: base.state_ph_14 +NEW res.country.state: base.state_ph_15 +NEW res.country.state: base.state_ph_16 +NEW res.country.state: base.state_ph_17 +NEW res.country.state: base.state_ph_18 +NEW res.country.state: base.state_ph_19 +NEW res.country.state: base.state_ph_20 +NEW res.country.state: base.state_ph_21 +NEW res.country.state: base.state_ph_22 +NEW res.country.state: base.state_ph_23 +NEW res.country.state: base.state_ph_24 +NEW res.country.state: base.state_ph_25 +NEW res.country.state: base.state_ph_26 +NEW res.country.state: base.state_ph_27 +NEW res.country.state: base.state_ph_28 +NEW res.country.state: base.state_ph_29 +NEW res.country.state: base.state_ph_30 +NEW res.country.state: base.state_ph_31 +NEW res.country.state: base.state_ph_32 +NEW res.country.state: base.state_ph_33 +NEW res.country.state: base.state_ph_34 +NEW res.country.state: base.state_ph_35 +NEW res.country.state: base.state_ph_36 +NEW res.country.state: base.state_ph_37 +NEW res.country.state: base.state_ph_38 +NEW res.country.state: base.state_ph_39 +NEW res.country.state: base.state_ph_40 +NEW res.country.state: base.state_ph_41 +NEW res.country.state: base.state_ph_42 +NEW res.country.state: base.state_ph_43 +NEW res.country.state: base.state_ph_44 +NEW res.country.state: base.state_ph_45 +NEW res.country.state: base.state_ph_46 +NEW res.country.state: base.state_ph_47 +NEW res.country.state: base.state_ph_48 +NEW res.country.state: base.state_ph_49 +NEW res.country.state: base.state_ph_50 +NEW res.country.state: base.state_ph_51 +NEW res.country.state: base.state_ph_52 +NEW res.country.state: base.state_ph_53 +NEW res.country.state: base.state_ph_54 +NEW res.country.state: base.state_ph_55 +NEW res.country.state: base.state_ph_56 +NEW res.country.state: base.state_ph_57 +NEW res.country.state: base.state_ph_58 +NEW res.country.state: base.state_ph_59 +NEW res.country.state: base.state_ph_60 +NEW res.country.state: base.state_ph_61 +NEW res.country.state: base.state_ph_62 +NEW res.country.state: base.state_ph_63 +NEW res.country.state: base.state_ph_64 +NEW res.country.state: base.state_ph_65 +NEW res.country.state: base.state_ph_66 +NEW res.country.state: base.state_ph_67 +NEW res.country.state: base.state_ph_68 +NEW res.country.state: base.state_ph_69 +NEW res.country.state: base.state_ph_70 +NEW res.country.state: base.state_ph_71 +NEW res.country.state: base.state_ph_72 +NEW res.country.state: base.state_ph_73 +NEW res.country.state: base.state_ph_74 +NEW res.country.state: base.state_ph_75 +NEW res.country.state: base.state_ph_76 +NEW res.country.state: base.state_ph_77 +NEW res.country.state: base.state_ph_78 +NEW res.country.state: base.state_ph_79 +NEW res.country.state: base.state_ph_80 +NEW res.country.state: base.state_ph_81 +NEW res.country.state: base.state_ph_82 +NEW res.country.state: base.state_ph_83 + +# NOTHING TO DO + +NEW res.country.state: base.state_pk_ajk [renamed from l10n_pk module] +NEW res.country.state: base.state_pk_ba [renamed from l10n_pk module] +NEW res.country.state: base.state_pk_gb [renamed from l10n_pk module] +NEW res.country.state: base.state_pk_is [renamed from l10n_pk module] +NEW res.country.state: base.state_pk_kp [renamed from l10n_pk module] +NEW res.country.state: base.state_pk_pb [renamed from l10n_pk module] +NEW res.country.state: base.state_pk_sd [renamed from l10n_pk module] +NEW res.country.state: base.state_pl_ds [renamed from l10n_pl module] +NEW res.country.state: base.state_pl_kp [renamed from l10n_pl module] +NEW res.country.state: base.state_pl_lb [renamed from l10n_pl module] +NEW res.country.state: base.state_pl_ld [renamed from l10n_pl module] +NEW res.country.state: base.state_pl_ls [renamed from l10n_pl module] +NEW res.country.state: base.state_pl_mp [renamed from l10n_pl module] +NEW res.country.state: base.state_pl_mz [renamed from l10n_pl module] +NEW res.country.state: base.state_pl_op [renamed from l10n_pl module] +NEW res.country.state: base.state_pl_pk [renamed from l10n_pl module] +NEW res.country.state: base.state_pl_pl [renamed from l10n_pl module] +NEW res.country.state: base.state_pl_pm [renamed from l10n_pl module] +NEW res.country.state: base.state_pl_sk [renamed from l10n_pl module] +NEW res.country.state: base.state_pl_sl [renamed from l10n_pl module] +NEW res.country.state: base.state_pl_wm [renamed from l10n_pl module] +NEW res.country.state: base.state_pl_wp [renamed from l10n_pl module] +NEW res.country.state: base.state_pl_zp [renamed from l10n_pl module] + +# DONE: renamed from l10n module + +NEW res.country.state: base.state_so_1 +NEW res.country.state: base.state_so_2 +NEW res.country.state: base.state_so_3 +NEW res.country.state: base.state_so_4 +NEW res.country.state: base.state_so_5 +NEW res.country.state: base.state_so_6 +NEW res.country.state: base.state_so_7 +NEW res.country.state: base.state_so_8 + +# NOTHING TO DO + +NEW res.country.state: base.state_tw_chh [renamed from l10n_tw module] +NEW res.country.state: base.state_tw_cic [renamed from l10n_tw module] +NEW res.country.state: base.state_tw_cih [renamed from l10n_tw module] +NEW res.country.state: base.state_tw_hch [renamed from l10n_tw module] +NEW res.country.state: base.state_tw_hct [renamed from l10n_tw module] +NEW res.country.state: base.state_tw_hlh [renamed from l10n_tw module] +NEW res.country.state: base.state_tw_ilh [renamed from l10n_tw module] +NEW res.country.state: base.state_tw_khc [renamed from l10n_tw module] +NEW res.country.state: base.state_tw_klc [renamed from l10n_tw module] +NEW res.country.state: base.state_tw_kmc [renamed from l10n_tw module] +NEW res.country.state: base.state_tw_lcc [renamed from l10n_tw module] +NEW res.country.state: base.state_tw_mlh [renamed from l10n_tw module] +NEW res.country.state: base.state_tw_ntc [renamed from l10n_tw module] +NEW res.country.state: base.state_tw_ntpc [renamed from l10n_tw module] +NEW res.country.state: base.state_tw_phc [renamed from l10n_tw module] +NEW res.country.state: base.state_tw_pth [renamed from l10n_tw module] +NEW res.country.state: base.state_tw_tcc [renamed from l10n_tw module] +NEW res.country.state: base.state_tw_tnh [renamed from l10n_tw module] +NEW res.country.state: base.state_tw_tpc [renamed from l10n_tw module] +NEW res.country.state: base.state_tw_tth [renamed from l10n_tw module] +NEW res.country.state: base.state_tw_tyc [renamed from l10n_tw module] +NEW res.country.state: base.state_tw_ylh [renamed from l10n_tw module] + +# DONE: renamed from l10n module + +DEL res.country.state: base.state_id_pp + +# DONE: renamed to base.state_id_pe + +DEL res.country.state: base.state_vn_VN-03 +DEL res.country.state: base.state_vn_VN-06 +DEL res.country.state: base.state_vn_VN-14 +DEL res.country.state: base.state_vn_VN-20 +DEL res.country.state: base.state_vn_VN-24 +DEL res.country.state: base.state_vn_VN-27 +DEL res.country.state: base.state_vn_VN-28 +DEL res.country.state: base.state_vn_VN-31 +DEL res.country.state: base.state_vn_VN-32 +DEL res.country.state: base.state_vn_VN-36 +DEL res.country.state: base.state_vn_VN-40 +DEL res.country.state: base.state_vn_VN-41 +DEL res.country.state: base.state_vn_VN-43 +DEL res.country.state: base.state_vn_VN-46 +DEL res.country.state: base.state_vn_VN-47 +DEL res.country.state: base.state_vn_VN-50 +DEL res.country.state: base.state_vn_VN-51 +DEL res.country.state: base.state_vn_VN-52 +DEL res.country.state: base.state_vn_VN-53 +DEL res.country.state: base.state_vn_VN-54 +DEL res.country.state: base.state_vn_VN-55 +DEL res.country.state: base.state_vn_VN-57 +DEL res.country.state: base.state_vn_VN-58 +DEL res.country.state: base.state_vn_VN-61 +DEL res.country.state: base.state_vn_VN-63 +DEL res.country.state: base.state_vn_VN-67 +DEL res.country.state: base.state_vn_VN-70 +DEL res.country.state: base.state_vn_VN-72 +DEL res.country.state: base.state_vn_VN-73 + +# NOTHING TO DO + +NEW res.groups: base.default_user_group (noupdate) + +# DONE: set implied_ids from base.default_user in post_migration + +NEW res.groups.privilege: base.res_groups_privilege_contact +NEW res.groups.privilege: base.res_groups_privilege_export + +# NOTHING TO DO + +DEL res.partner.title: base.res_partner_title_doctor (noupdate) +DEL res.partner.title: base.res_partner_title_madam (noupdate) +DEL res.partner.title: base.res_partner_title_miss (noupdate) +DEL res.partner.title: base.res_partner_title_mister (noupdate) +DEL res.partner.title: base.res_partner_title_prof (noupdate) + +# NOTHING TO DO: will be cleaned by database_cleanup + +DEL res.users: base.default_user (noupdate) + +# DONE: see above for base.default_user_group diff --git a/openupgrade_scripts/scripts/base/tests/data_base_migration.py b/openupgrade_scripts/scripts/base/tests/data_base_migration.py new file mode 100644 index 00000000000..472065b3655 --- /dev/null +++ b/openupgrade_scripts/scripts/base/tests/data_base_migration.py @@ -0,0 +1,44 @@ +env = locals().get("env") +# server action with multiple children +parent_action1 = env["ir.actions.server"].create( + { + "name": "test server action 1", + "state": "multi", + "model_id": env.ref("base.model_ir_module_module").id, + "child_ids": [ + ( + 0, + 0, + { + "name": "child action 1", + "model_id": env.ref("base.model_ir_module_module").id, + }, + ), + ( + 0, + 0, + { + "name": "child action 2", + "model_id": env.ref("base.model_ir_module_module").id, + }, + ), + ], + } +) +parent_action1.copy( + { + "name": "test server action 2", + "child_ids": [ + (6, 0, parent_action1.child_ids.ids), + ( + 0, + 0, + { + "name": "child action 3", + "model_id": env.ref("base.model_ir_module_module").id, + }, + ), + ], + } +) +env.cr.commit() diff --git a/openupgrade_scripts/scripts/base/tests/test_base_migration.py b/openupgrade_scripts/scripts/base/tests/test_base_migration.py new file mode 100644 index 00000000000..525218394f5 --- /dev/null +++ b/openupgrade_scripts/scripts/base/tests/test_base_migration.py @@ -0,0 +1,26 @@ +from odoo.tests import TransactionCase + +from odoo.addons.openupgrade_framework import openupgrade_test + + +@openupgrade_test +class TestBaseMigration(TransactionCase): + def test_server_action_child_ids(self): + """ + Test that server action children are migrated correctly + """ + action1 = self.env["ir.actions.server"].search( + [("name", "=", "test server action 1")] + ) + self.assertTrue(action1) + self.assertItemsEqual( + action1.child_ids.mapped("name"), ("child action 1", "child action 2") + ) + action2 = self.env["ir.actions.server"].search( + [("name", "=", "test server action 2")] + ) + self.assertTrue(action2) + self.assertItemsEqual( + action2.child_ids.mapped("name"), + ("child action 1", "child action 2", "child action 3"), + ) From 73ea1bee03898716cb5a3ea3d42f3589e9f32443 Mon Sep 17 00:00:00 2001 From: Holger Brunn Date: Fri, 7 Nov 2025 16:02:36 +0100 Subject: [PATCH 3/5] [FIX] install dependencies for v18 --- .github/workflows/test-migration.yml | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/.github/workflows/test-migration.yml b/.github/workflows/test-migration.yml index 9402b852770..0cb8186ad3b 100644 --- a/.github/workflows/test-migration.yml +++ b/.github/workflows/test-migration.yml @@ -96,8 +96,10 @@ jobs: pip install -q -r odoo/requirements.txt pip install -r ./openupgrade/requirements.txt pip install -U git+https://github.com/oca/openupgradelib - # this is for v16 l10n_eg_edi_eta which crashes without it + # this is for v18 l10n_eg_edi_eta which crashes without it pip install asn1crypto + # required by v18 + pip install decorator pip install coverage # this is for account_peppol pip install phonenumbers From e230a3c5e0e34c800ebe4bd59a3918ec79ae095c Mon Sep 17 00:00:00 2001 From: Holger Brunn Date: Mon, 2 Feb 2026 15:43:59 +0100 Subject: [PATCH 4/5] [IMP] ignore trailing whitespace in noupdate_changes* --- .pre-commit-config.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index 35434e2b28b..52f78d1fe2c 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -101,7 +101,7 @@ repos: hooks: - id: trailing-whitespace # exclude autogenerated files - exclude: /README\.rst$|\.pot?$ + exclude: /README\.rst$|\.pot?$|noupdate_changes(_work){0,1}.xml$ - id: end-of-file-fixer # exclude autogenerated files exclude: /README\.rst$|\.pot?$ From a5b8f6adcf8f0bacc79ae546e29236569388d34e Mon Sep 17 00:00:00 2001 From: Holger Brunn Date: Fri, 12 Dec 2025 17:47:30 +0100 Subject: [PATCH 5/5] [MIG] uom --- docsource/modules180-190.rst | 2 +- .../uom/19.0.1.0/noupdate_changes_work.xml | 103 ++++++++++++++++++ .../scripts/uom/19.0.1.0/post-migration.py | 65 +++++++++++ .../scripts/uom/19.0.1.0/pre-migration.py | 32 ++++++ .../uom/19.0.1.0/upgrade_analysis_work.txt | 70 ++++++++++++ .../scripts/uom/tests/data_uom_migration.py | 51 +++++++++ .../scripts/uom/tests/test_uom_migration.py | 31 ++++++ 7 files changed, 353 insertions(+), 1 deletion(-) create mode 100644 openupgrade_scripts/scripts/uom/19.0.1.0/noupdate_changes_work.xml create mode 100644 openupgrade_scripts/scripts/uom/19.0.1.0/post-migration.py create mode 100644 openupgrade_scripts/scripts/uom/19.0.1.0/pre-migration.py create mode 100644 openupgrade_scripts/scripts/uom/19.0.1.0/upgrade_analysis_work.txt create mode 100644 openupgrade_scripts/scripts/uom/tests/data_uom_migration.py create mode 100644 openupgrade_scripts/scripts/uom/tests/test_uom_migration.py diff --git a/docsource/modules180-190.rst b/docsource/modules180-190.rst index 6b98034acb1..68cd05d0a51 100644 --- a/docsource/modules180-190.rst +++ b/docsource/modules180-190.rst @@ -1110,7 +1110,7 @@ Module coverage 18.0 -> 19.0 +---------------------------------------------------+----------------------+-------------------------------------------------+ | transifex | |No DB layout changes. | +---------------------------------------------------+----------------------+-------------------------------------------------+ -| uom | | | +| uom | |Done | +---------------------------------------------------+----------------------+-------------------------------------------------+ | utm | | | +---------------------------------------------------+----------------------+-------------------------------------------------+ diff --git a/openupgrade_scripts/scripts/uom/19.0.1.0/noupdate_changes_work.xml b/openupgrade_scripts/scripts/uom/19.0.1.0/noupdate_changes_work.xml new file mode 100644 index 00000000000..ba0e7289c87 --- /dev/null +++ b/openupgrade_scripts/scripts/uom/19.0.1.0/noupdate_changes_work.xml @@ -0,0 +1,103 @@ + + + + + + + + + + + + + + + + 1000 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 1000 + + + + + + + + + + + + + + + + + + + + + + + + + + + Ton + + + + + + + + + + + diff --git a/openupgrade_scripts/scripts/uom/19.0.1.0/post-migration.py b/openupgrade_scripts/scripts/uom/19.0.1.0/post-migration.py new file mode 100644 index 00000000000..75ac9db015c --- /dev/null +++ b/openupgrade_scripts/scripts/uom/19.0.1.0/post-migration.py @@ -0,0 +1,65 @@ +# Copyright 2025 Hunki Enterprises BV +# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl). + +from openupgradelib import openupgrade + + +def _uom_relative_uom_id_relative_factor(env): + """ + UOM categories have been obsoleted, UOMs are a tree now with the reference + unit as root and relative_factor giving the ratio to the UOM linked in + relative_uom_id + """ + + def has_xmlid(uom): + return env["ir.model.data"].search_count( + [ + ("model", "=", "uom.uom"), + ("res_id", "=", uom.id), + ("module", "!=", "__export__"), + ] + ) + + env.cr.execute( + f""" + SELECT + array_agg(id), + array_agg({openupgrade.get_legacy_name("factor")}), + array_agg({openupgrade.get_legacy_name("uom_type")}) + FROM + uom_uom + WHERE {openupgrade.get_legacy_name("category_id")} IS NOT NULL + GROUP BY {openupgrade.get_legacy_name("category_id")} + """ + ) + for ids, factors, uom_types in env.cr.fetchall(): + uoms = env["uom.uom"].browse(ids) + uom2factor = dict(zip(uoms, factors, strict=False)) + uom2type = dict(zip(uoms, uom_types, strict=False)) + + old_reference = uoms.filtered( + lambda x, uom2type=uom2type: uom2type[x] == "reference" + ) + + for uom in uoms - old_reference: + if has_xmlid(uom): + # uoms with xmlid will be updated by the migration of the module + # providing them + continue + + relative_factor = ( + uom2factor[uom] if uom2type[uom] == "bigger" else (1 / uom2factor[uom]) + ) + + uom.write( + { + "relative_uom_id": old_reference, + "relative_factor": relative_factor, + } + ) + + +@openupgrade.migrate() +def migrate(env, version): + openupgrade.load_data(env, "uom", "19.0.1.0/noupdate_changes_work.xml") + _uom_relative_uom_id_relative_factor(env) diff --git a/openupgrade_scripts/scripts/uom/19.0.1.0/pre-migration.py b/openupgrade_scripts/scripts/uom/19.0.1.0/pre-migration.py new file mode 100644 index 00000000000..635d213272e --- /dev/null +++ b/openupgrade_scripts/scripts/uom/19.0.1.0/pre-migration.py @@ -0,0 +1,32 @@ +# Copyright 2025 Hunki Enterprises BV +# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl). + +from openupgradelib import openupgrade + + +@openupgrade.migrate() +def migrate(env, version): + openupgrade.copy_columns( + env.cr, + { + "uom_uom": [ + ("category_id", None, None), + ("factor", None, None), + ("rounding", None, None), + ("uom_type", None, None), + ] + }, + ) + openupgrade.rename_xmlids( + env.cr, + [ + ("product.decimal_product_uom", "uom.decimal_product_uom"), + ("uom.uom_square_foot", "uom.product_uom_square_foot"), + ("uom.uom_square_meter", "uom.product_uom_square_meter"), + ], + ) + # this would be cleaned up after the migration, but we can't have it during + # migration + openupgrade.delete_sql_constraint_safely( + env, "uom", "uom_uom", "factor_reference_is_one" + ) diff --git a/openupgrade_scripts/scripts/uom/19.0.1.0/upgrade_analysis_work.txt b/openupgrade_scripts/scripts/uom/19.0.1.0/upgrade_analysis_work.txt new file mode 100644 index 00000000000..ea3c9aebe71 --- /dev/null +++ b/openupgrade_scripts/scripts/uom/19.0.1.0/upgrade_analysis_work.txt @@ -0,0 +1,70 @@ +---Models in module 'uom'--- +obsolete model uom.category +---Fields in module 'uom'--- +uom / uom.category / name (char) : DEL required +uom / uom.category / reference_uom_id (many2one) : DEL relation: uom.uom, stored: False +uom / uom.category / uom_ids (one2many) : DEL relation: uom.uom + +# NOTHING TO DO + +uom / uom.uom / _order : _order is now 'sequence, relative_uom_id, id' ('factor DESC, id') + +# NOTHING TO DO + +uom / uom.uom / category_id (many2one) : DEL relation: uom.category, required + +# NOTHING TO DO + +uom / uom.uom / factor (float) : now a function +uom / uom.uom / parent_path (char) : NEW +uom / uom.uom / related_uom_ids (one2many) : NEW relation: uom.uom +uom / uom.uom / relative_factor (float) : NEW required, hasdefault: default +uom / uom.uom / relative_uom_id (many2one) : NEW relation: uom.uom + +# DONE: compute relative_factor, relative_uom_id for custom UOMs in post-migration + +uom / uom.uom / rounding (float) : not stored anymore + +# DONE: copied to legacy column in pre-migration + +uom / uom.uom / rounding (float) : now a function +uom / uom.uom / sequence (integer) : NEW hasdefault: compute + +# NOTHING TO DO + +uom / uom.uom / uom_type (selection) : DEL required, selection_keys: ['bigger', 'reference', 'smaller'] + +# DONE: copied to legacy column in pre-migration + +---XML records in module 'uom'--- +NEW decimal.precision: uom.decimal_product_uom [renamed from product module] (noupdate) + +# DONE: renamed in pre-migration + +DEL ir.actions.act_window: uom.product_uom_categ_form_action +DEL ir.model.access: uom.access_uom_category_manager +DEL ir.model.access: uom.access_uom_category_user +ir.model.constraint: uom.constraint_uom_uom_factor_gt_zero (changed definition: is now 'CHECK (relative_factor!=0)' ('check(factor!=0)')) +DEL ir.model.constraint: uom.constraint_uom_uom_factor_reference_is_one +DEL ir.model.constraint: uom.constraint_uom_uom_rounding_gt_zero +DEL ir.ui.view: uom.product_uom_categ_form_view +DEL ir.ui.view: uom.product_uom_categ_tree_view +DEL ir.ui.view: uom.uom_categ_view_search +DEL uom.category: uom.product_uom_categ_energy (noupdate) +DEL uom.category: uom.product_uom_categ_kgm (noupdate) +DEL uom.category: uom.product_uom_categ_unit (noupdate) +DEL uom.category: uom.product_uom_categ_vol (noupdate) +DEL uom.category: uom.uom_categ_length (noupdate) +DEL uom.category: uom.uom_categ_surface (noupdate) +DEL uom.category: uom.uom_categ_wtime (noupdate) +NEW uom.uom: uom.product_uom_milliliter (noupdate) +NEW uom.uom: uom.product_uom_pack_6 (noupdate) + +# NOTHING TO DO + +NEW uom.uom: uom.product_uom_square_foot (noupdate) +NEW uom.uom: uom.product_uom_square_meter (noupdate) +DEL uom.uom: uom.uom_square_foot (noupdate) +DEL uom.uom: uom.uom_square_meter (noupdate) + +# DONE: renamed in pre-migration diff --git a/openupgrade_scripts/scripts/uom/tests/data_uom_migration.py b/openupgrade_scripts/scripts/uom/tests/data_uom_migration.py new file mode 100644 index 00000000000..2136c11c219 --- /dev/null +++ b/openupgrade_scripts/scripts/uom/tests/data_uom_migration.py @@ -0,0 +1,51 @@ +env = locals().get("env") +# decimeter +env["uom.uom"].create( + { + "name": "dm", + "category_id": env.ref("uom.uom_categ_length").id, + "factor": 10, + "uom_type": "smaller", + } +) +# megameter +env["uom.uom"].create( + { + "name": "Mm", + "category_id": env.ref("uom.uom_categ_length").id, + "factor": 1000000, + "uom_type": "bigger", + } +) +# entirely custom uom category +uom_category = env["uom.category"].create( + { + "name": "Electric current", + } +) +env["uom.uom"].create( + { + "name": "A", + "category_id": uom_category.id, + "factor": 1, + "uom_type": "reference", + } +) +env["uom.uom"].create( + { + "name": "mA", + "category_id": uom_category.id, + "factor": 1000, + "uom_type": "smaller", + } +) +env["uom.uom"].create( + { + "name": "MA", + "category_id": uom_category.id, + "factor": 1000000, + "uom_type": "bigger", + } +) + +env.cr.commit() diff --git a/openupgrade_scripts/scripts/uom/tests/test_uom_migration.py b/openupgrade_scripts/scripts/uom/tests/test_uom_migration.py new file mode 100644 index 00000000000..66faa649609 --- /dev/null +++ b/openupgrade_scripts/scripts/uom/tests/test_uom_migration.py @@ -0,0 +1,31 @@ +from odoo.tests import TransactionCase + +from odoo.addons.openupgrade_framework import openupgrade_test + + +@openupgrade_test +class TestUomMigration(TransactionCase): + def test_uoms(self): + """ + Test that decimeters and megameters compute correctly + """ + dm = self.env["uom.uom"].search([("name", "=", "dm")]) + Mm = self.env["uom.uom"].search([("name", "=", "Mm")]) + self.assertEqual( + dm._compute_quantity(1, Mm, round=False), + 0.0000001, + ) + self.assertEqual( + Mm._compute_quantity(1, dm), + 10000000, + ) + mA = self.env["uom.uom"].search([("name", "=", "mA")]) + MA = self.env["uom.uom"].search([("name", "=", "MA")]) + self.assertEqual( + mA._compute_quantity(1, MA, round=False), + 0.000000001, + ) + self.assertEqual( + MA._compute_quantity(1, mA), + 1000000000, + )