Name: [19.0][UPG] viin_brand_*: upgrade to 19

State: Failed finished in 85m

PR State: open

PR Author: Trần Trường Sơn

PR Author Email:

PR: #633

Committer: SonCrits

Committer Email: truongson290893@gmail.com

Commit: 224e02a4ecbb4a0ef2d535bfec0552ec0ac7989a

Description:

                                            [IMP] viin_brand_{}: replace SQL branding hooks with XML data overrides
Replace _register_hook + post_init_hook + raw SQL REPLACE patterns with declarative XML data overrides for all branding mail.template and QWeb templates. Server restart no longer overwrites customer customizations because <data noupdate="1"> respects existing records. viin_brand_mail._render_field runtime override is kept as defense-in-depth safety net.

Removed:
- viin_brand: helper function replace_odoo_branding_in_mail_templates in __init__.py
- viin_brand_mail: _register_hook method + import in models/mail_template.py (keep _render_field safety net)
- viin_brand_auth_signup: post_init_hook from __init__.py and __manifest__.py
- viin_brand_calendar: post_init_hook from __init__.py and __manifest__.py

Added 4 new branding modules with mail.template XML overrides:
- viin_brand_gamification: email_template_badge_received
- viin_brand_lunch: lunch_order_mail_supplier
- viin_brand_website_crm_partner_assign: email_template_lead_forward_mail
- viin_brand_account_peppol: mail_template_peppol_registration + QWeb layout (mail_notification_layout_with_responsible_signature_and_peppol)

Modified existing branding modules with new XML data overrides:
- viin_brand_account: new data/mail_template_data.xml with mail_template_einvoice_notification + mail_template_invoice_subscriber
- viin_brand_auth_signup: append 3 records (set_password_email, mail_template_user_signup_account_created, portal_set_password_email) + replace OdooBot fallback with ViindooBot in set_password_email
- viin_brand_auth_totp_mail: new xpath override account_security_alert with viindoo.com 2FA doc URL
- viin_brand_calendar: new data/ folder with 4 calendar templates (meeting_invitation, changedate, update, reminder)
- viin_brand_website_profile: new data/mail_template_data.xml with validation_email

Manifest cluster convention compliance:
- version '0.1' (Odoo auto-prepends to '19.0.0.1' as latest_version)
- price 0.0 (branding modules are not-for-sale, internal/customer-service only)
- license 'OPL-1', currency 'EUR', auto_install True, category 'Hidden'
- bilingual fields name_vi_VN, summary_vi_VN, description_vi_VN required for all 4 new modules
- live_test_url uses v17demo-{int,vn}.viindoo.com (v19demo server not yet live; v17demo verified alive to avoid dead links on Apps Store)
- viin_brand_account and viin_brand_website_profile depend on viin_brand_mail (transitively brings viin_brand via viin_brand_common); 'viin_brand' is no longer listed explicitly to avoid redundant declaration, matching the 6 other branding modules in scope
- viin_brand_account_peppol QWeb override uses position="attributes" + position="replace" mode="inner" to preserve any future attributes Odoo may add to the target node
- t-att-href with Python expression preferred over t-attf-href interpolation for raw URL fields

Test coverage:
- Fresh DB install: 12/12 scope modules installed, 0 ParseError, 0 Traceback
- SQL verify mail.template debrand: 0 rows in scope (auth_signup, auth_totp_mail, account, account_peppol, gamification, website_crm_partner_assign, website_profile, lunch, calendar)
- Automation tests --test-enable: 5010/5016 passed; 6 failures all in core Odoo CE (survey, project, base barcode, account_payment, calendar, website mass_mailing snippet) — pre-existing, unrelated to branding
                                            

Branch: 19.0

Instance ID: 0

Age:

Up-time: