نمذج Workflow قبل Module
Custom Odoo Module الجيدة تحول قاعدة عمل ناقصة إلى Models وStates وPermissions وViews وAutomated Actions تتعاون مع سلوك Odoo القياسي. يجب أن تمد المنصة عند نقاط معروفة بدل إنشاء تطبيق ثانٍ داخل قاعدة البيانات.
استخدم Odoo ORM وInheritance بوعي
- ابدأ بالActors والحالات والانتقالات والتحقق وAudit.
- استخدم Model Inheritance عند تمديد مفهوم قياسي وأنشئ Model جديدًا لكيان Business جديد فعلًا.
- نفذ Access Rights وRecord Rules مع أزرار UI لا بعدها.
- اجعل Computed Fields وAutomated Actions حتمية وتجنب Network Calls مخفية في Model Methods.
- استخدم Scheduled Jobs/Queues للتكاملات البطيئة بدل حجز Form Save.
دورة Record مضبوطة
ينقل المستخدم Record عبر حالات صريحة؛ تتحقق Server-side Rules من الصلاحية والبيانات ثم تُجدول الآثار الجانبية بعد حفظ الحالة المرجعية.
Workflow مخصص داخل دورة Odoo
ينقل المستخدم Record عبر حالات صريحة؛ تتحقق Server-side Rules من الصلاحية والبيانات ثم تُجدول الآثار الجانبية بعد حفظ الحالة المرجعية.
إضافة Purchase Approval Extension
اجعل State Transition صريحًا
يتحقق Model Action من الحالة الحالية والصلاحية قبل تغيير Workflow State.
def action_submit_for_approval(self):
for order in self:
if order.state != 'draft':
raise UserError('Only draft orders can be submitted')
order.approval_state = 'pending'أنماط Custom Module تحارب Odoo
قائمة Module
- ارسم الحالات والActors أولًا.
- اختر Inheritance أو New Model بقرار.
- نفذ Access وRecord Rules وTransition Checks على السيرفر.
- اعزل External Calls عن Model Writes المتزامنة.
- اختبر Install وUpgrade وPermissions والتوافق مع Standard Flow.
