🔥 أهم التغييرات اللي لازم تكون واخد بالك منها قبل ما تعمل Upgrade لـ Odoo 19 🔥
لو شغال على إصدار قديم من Odoo وبتفكر تطلع للفيرجن 19، خليك عارف إن التحديث ده نقلة كبيرة جدًا ومحتاج استعداد كويس قبل ما تبدأ 👇
⚙️ Backend Changes
1️⃣ Domain System
زمان كنا بنستخدم expression.AND و expression.OR.
دلوقتي بقى في Domain class بتتعامل بالرموز & و |.
يعني أي دومين معقد لازم يتكتب من الأول.
2️⃣ Constraints
الـ _sql_constraints خلاص اتلغت من ليست،
ودلوقتي كل Constraint بقى كائن مستقل بـ models.Constraint.
يعني محتاج تعمل rewrite للقيود القديمة.
3️⃣ Routes / APIs
قديمًا: @route(..., type='json')
دلوقتي: @route(..., type='jsonrpc', readonly=True)
كل الـ APIs القديمة محتاجة تعديل يدوي.
4️⃣ Context
قديمًا: self._context
دلوقتي: self.env.context
راجع كل الـ checks اللي كانت على الـ context.
5️⃣ Fields & Imports
قديمًا: from odoo import fields
دلوقتي: from odoo.fields import Char, Float
يعني الـ imports القديمة مش هتشتغل بعد التحديث.
⚙️ ORM & Infrastructure Updates
✅ إضافة Operators جديدة زي any! و not any! للتعامل مع العلاقات المعقدة.
✅ دمج _where_calc جوه _search لتحسين الأداء وتبسيط الكود.
✅ الكاش بقى يُستخدم أكتر في الـ registry و translations.
✅ تغيير xmlrpc_port إلى http_port.
💻 Views / UI Changes
🔹 إزالة t-esc واستخدام t-out بدلها.
🔹 إضافة inheritance mode="inner" لتعديل المحتوى الداخلي بدون كسر الهيكل.
🔹 مكونات جديدة زي:
animated_number, multi_selection_buttons, column_progress
تقدر تستخدمها لواجهة UI أقوى وأوضح.
🚀 Web & API Development
🔸 التحول الكامل من type='json' إلى type='jsonrpc' مع دعم readonly=True.
🔸 تحسين أداء الـ controllers والتكامل مع الأنظمة الخارجية.
🔸 تعديل أسماء بعض الحقول لتوحيد التسمية (زي tax_id → tax_ids).
✅ الخلاصة قبل ما تطلع Production
✔️ عدّل الـ domains + constraints + routes
✔️ ظبط الـ imports والـ context
✔️ حدّث الـ views (JS + CSS + components)
✔️ راجع ORM و API calls في كل module
💡 نصيحة من الآخر:
الـ Upgrade لـ Odoo 19 مش مجرد تحديث... دي نقلة كبيرة في السيستم بالكامل.
اعمل staging environment، خطط rollback، وجرب كل حاجة كويس قبل ما تطلع Live. 🚀
هل ترغب أن أضيف هاشتاجات مقترحة ومقدمة تسويقية صغيرة لجذب الانتباه أكثر (زي: "لو ناوي تحدث مشروعك على Odoo 19، البوست ده ليك 🔥")؟