كيفية عرض شريط التقدم في عرض كانبان أودو (أودو 16–19)
مرجع شامل للمطوّر لعنصر <progressbar> في كانبان أودو: خصائص field_value وcolors وsum_field وإعداد حقل الاختيار واستكشاف الأخطاء. موثق لأودو 18 و19.
يدعم عرض كانبان في أودو عنصرًا مدمجًا `` يعرض شريطًا ملوّنًا في أعلى كل عمود كانبان، يُظهر توزيع السجلات عبر قيم حقل الاختيار. يمنح هذا المستخدمين ملخصًا للحالة بنظرة واحدة دون فتح السجلات الفردية — مثلًا إظهار عدد الصفقات في مسار المبيعات التي هي 'مكتملة' أو 'قيد التنفيذ' أو 'محجوبة'. يُعرَّف شريط التقدم مباشرةً في XML للعرض بثلاث خصائص: الحقل المراد تقسيمه وتعيين الألوان وحقل رقمي اختياري لإجماليات العمود.
عنصر <progressbar> — مرجع الخصائص
| الخاصية | مطلوبة | النوع | الوصف |
|---|---|---|---|
| field_value | نعم | اسم الحقل (نص) | حقل الاختيار أو many2one الذي تحدد قيمه شرائح الشريط. يجب أن يكون حقلًا على النموذج، معرَّفًا في قائمة <fields> داخل عرض الكانبان. |
| colors | نعم | كائن JSON حرفي | يُعيّن كل قيمة حقل لاسم لون Bootstrap. الألوان الصحيحة: muted وsuccess وwarning وdanger. القيم غير المدرجة في colors تعتمد على muted افتراضيًا. |
| sum_field | لا | اسم الحقل (نص) | حقل رقمي اختياري (Integer أو Float أو Monetary). عند تعيينه، يعرض أودو مجموع قيم هذا الحقل للسجلات في كل شريحة لونية، يُعرض بجانب الشريط. |
قيم الألوان الصالحة
| قيمة اللون | المظهر البصري | حالة الاستخدام النموذجية |
|---|---|---|
| success | أخضر | مكتمل، فائز، معتمد، منجز |
| warning | برتقالي / كهرماني | قيد التنفيذ، معلق، يحتاج انتباهًا |
| danger | أحمر | محجوب، متأخر، مرفوض، فاشل |
| muted | رمادي (افتراضي) | مسودة، جديد، غير مصنّف، لم يبدأ |
مثال أساسي — عرض كانبان مع شريط التقدم
<record id="view_my_model_kanban" model="ir.ui.view">
<field name="name">my.model.kanban</field>
<field name="model">my.model</field>
<field name="arch" type="xml">
<kanban>
<!-- Step 1: Declare the fields the kanban needs -->
<field name="name"/>
<field name="state"/>
<field name="priority"/>
<!-- Step 2: Add the progressbar element.
Place it as a direct child of <kanban>, before <templates>. -->
<progressbar
field_value="state"
colors='{"draft": "muted", "in_progress": "warning", "done": "success", "blocked": "danger"}'
/>
<!-- Step 3: Kanban card template -->
<templates>
<t t-name="kanban-box">
<div class="oe_kanban_global_click">
<div class="oe_kanban_details">
<strong class="o_kanban_record_title">
<field name="name"/>
</strong>
</div>
</div>
</t>
</templates>
</kanban>
</field>
</record>إضافة sum_field — عرض الإجماليات النقدية لكل شريحة لونية
تضيف خاصية `sum_field` إجماليات رقمية إلى عرض شريط التقدم. تُستخدم هذا بشكل شائع في مسارات CRM والمبيعات لإظهار الإيرادات المتوقعة لكل شريحة مرحلة (مثلًا القيمة الإجمالية للصفقات الفائزة مقابل قيد التنفيذ). يجب أن يكون الحقل المشار إليه بـ `sum_field` حقلًا رقميًا (Integer أو Float أو Monetary) ويجب تعريفه في قائمة `` لعرض الكانبان.
<kanban>
<field name="name"/>
<field name="state"/>
<field name="expected_revenue"/> <!-- must be declared here -->
<progressbar
field_value="state"
colors='{"new": "muted", "in_progress": "warning", "won": "success", "lost": "danger"}'
sum_field="expected_revenue"
/>
<templates>
<t t-name="kanban-box">
<div class="oe_kanban_global_click">
<strong><field name="name"/></strong>
<div class="oe_kanban_bottom_right">
<field name="expected_revenue" widget="monetary"/>
</div>
</div>
</t>
</templates>
</kanban>نموذج Python — إعداد حقل الحالة
يجب أن يشير `field_value` في شريط التقدم إلى حقل موجود على النموذج. حقل `fields.Selection` هو الاختيار الأكثر شيوعًا — تُعيَّن قيمه مباشرةً إلى مفاتيح قاموس `colors`. لا يجب أن يُسمّى الحقل `state`؛ أي حقل اختيار يصلح.
from odoo import models, fields
class MyModel(models.Model):
_name = 'my.model'
_description = 'My Model'
name = fields.Char(string='Name', required=True)
# Selection field — values must match the keys in the progressbar colors attribute
state = fields.Selection(
selection=[
('draft', 'Draft'),
('in_progress', 'In Progress'),
('done', 'Done'),
('blocked', 'Blocked'),
],
string='Status',
default='draft',
)
# Optional: numeric field for sum_field
expected_revenue = fields.Monetary(
string='Expected Revenue',
currency_field='currency_id',
)
currency_id = fields.Many2one(
'res.currency',
default=lambda self: self.env.company.currency_id,
)يظهر شريط التقدم فقط عندما تكون السجلات مجمّعة
يُعرض عنصر `` فقط عندما يكون لعرض الكانبان `group_by` نشط. بدون تجميع، تظهر السجلات في قائمة غير مجمّعة واحدة وليس لشريط التقدم عمود ليرتبط به. عادةً ما تُجمَّع عروض الكانبان حسب Many2one `stage_id` أو حسب حقل اختيار. يمكنك تعيين تجميع افتراضي في إجراء العرض باستخدام `context`:
<!-- ir.actions.act_window — set default grouping so the progressbar appears -->
<record id="action_my_model_kanban" model="ir.actions.act_window">
<field name="name">My Model</field>
<field name="res_model">my.model</field>
<field name="view_mode">kanban,list,form</field>
<!-- group_by stage_id so the Kanban columns + progressbar are visible by default -->
<field name="context">{"default_stage_id": 1, "search_default_group_by_stage_id": 1}</field>
</record>
<!-- Or group by the state selection field directly: -->
<field name="context">{"search_default_group_by_state": 1}</field>إضافة شريط تقدم إلى عرض كانبان موجود عبر الوراثة
<!-- Inherit an existing kanban view and add a progressbar -->
<record id="view_sale_order_kanban_inherit_progressbar" model="ir.ui.view">
<field name="name">sale.order.kanban.progressbar</field>
<field name="model">sale.order</field>
<field name="inherit_id" ref="sale.view_sale_order_kanban"/>
<field name="arch" type="xml">
<!-- Insert the progressbar before the <templates> element -->
<xpath expr="//kanban/templates" position="before">
<progressbar
field_value="state"
colors='{"draft": "muted", "sent": "warning", "sale": "success", "cancel": "danger"}'
sum_field="amount_total"
/>
</xpath>
<!-- Ensure the fields needed by progressbar are declared -->
<xpath expr="//kanban/field[@name='name']" position="after">
<field name="amount_total"/>
</xpath>
</field>
</record>استكشاف الأخطاء
| الأعراض | السبب المحتمل | الحل |
|---|---|---|
| شريط التقدم لا يظهر على الإطلاق | عرض الكانبان غير مجمّع. يُعرض شريط التقدم فقط عندما تكون السجلات مجمّعة في أعمدة. | أضف group_by افتراضيًا إلى سياق الإجراء: {"search_default_group_by_stage_id": 1}. بدون التجميع، لا توجد أعمدة ولا شريط للعرض. |
| جميع الشرائح تظهر رمادية (muted) — بدون لون | قيم الحقل في قاعدة البيانات لا تطابق المفاتيح في خاصية colors | تأكد أن مفاتيح colors تطابق تمامًا القيم المخزنة في الاختيار (وليس تسميات العرض). مثلًا {'in_progress': 'warning'} وليس {'In Progress': 'warning'}. |
| sum_field يُظهر 0 أو لا يظهر | sum_field غير معرَّف كـ <field> داخل عنصر <kanban> | أضف <field name="your_numeric_field"/> داخل عنصر <kanban> (قبل <templates>). يجب إدراج الحقل هناك حتى لو كان مستخدمًا بالفعل في قالب البطاقة. |
| خطأ في التحقق من XML أثناء تثبيت/ترقية الوحدة | JSON غير صالح في خاصية colors — استخدام علامات اقتباس مفردة بدلًا من المزدوجة داخل قيمة JSON | يجب أن تكون قيمة خاصية colors JSON صالحة. استخدم علامات اقتباس مزدوجة للمفاتيح والقيم: colors='{"draft": "muted"}'. محددات الخاصية الخارجية تستخدم علامات اقتباس مفردة. |
| شرائح شريط التقدم لا تطابق أعداد السجلات الفعلية | الحقل المشار إليه بـ field_value غير معرَّف داخل <kanban> وأودو لا يجلب قيمه | أضف <field name="state"/> (أو أي حقل يشير إليه field_value) داخل عنصر <kanban>. بدون هذا التعريف، لا يحمّل ORM قيمة الحقل لسجلات الكانبان. |
ملاحظات الإصدار
| إصدار أودو | التغييرات الرئيسية المؤثرة على شريط تقدم الكانبان |
|---|---|
| أودو 15 | لا توجد تغييرات كاسرة على <progressbar>. خصائص field_value وcolors وsum_field لم تتغير. السلوك مطابق لأودو 13/14. |
| أودو 16 | تمت إعادة هيكلة جزئية لـ JavaScript في عرض الكانبان (ترحيل مكوّن OWL). عنصر <progressbar> XML وخصائصه لم تتغير — تعريفات XML الموجودة تستمر في العمل دون تعديل. |
| أودو 17 | ترحيل OWL الكامل لعرض الكانبان. عنصر <progressbar> وخصائصه تبقى كما هي — لا تغييرات مطلوبة على بنية XML. انتقل منطق عرض شريط التقدم من الودجات القديمة إلى مكوّنات OWL داخليًا، لكن واجهة XML الخاصة بالمطوّر لم تتغير. |
| أودو 18 و19 | لا توجد تغييرات كاسرة. field_value وcolors وsum_field في <progressbar> تتصرف كما هو موثق. تحسينات أداء عرض الكانبان في أودو 18 تُقلل وقت التحميل لمجموعات البيانات الكبيرة المجمّعة. |
تحتاج عروض كانبان مخصصة أو لوحات مسار للمبيعات لنظام أودو؟
يبني مطورونا المعتمدون في أودو عروض كانبان مخصصة وتهيئات مسار CRM ولوحات سير العمل البصرية المصمَّمة خصيصًا لعمليات الشركات السعودية — بما في ذلك تخطيطات العربية من اليمين لليسار وأسماء المراحل ثنائية اللغة.
الأسئلة الشائعة
كيف أضيف شريط تقدم إلى عرض كانبان أودو؟
لماذا لا يظهر شريط تقدم الكانبان؟
ما هي قيم الألوان الصالحة لشريط تقدم كانبان أودو؟
هل يمكنني عرض إجمالي نقدي في شريط تقدم الكانبان؟
هل يعمل شريط التقدم مع حقل Many2one بدلًا من حقل Selection؟
كيف أضيف شريط تقدم إلى عرض كانبان أودو قياسي موجود؟

iWesabe Editorial Team
رؤى عملية حول Odoo ERP وامتثال ZATCA والعمليات الرقمية للشركات السعودية — بقلم فرق الاستشارات والمالية والهندسة في iWesabe.
مقالات ذات صلة
كيفية عرض صورة في QWeb أودو — الويب والتقارير والبوابة (أودو 16–19)
مرجع شامل للمطوّر لعرض الصور في قوالب QWeb لأودو: وحدة التحكم /web/image وأنماط t-att-src وt-field widget='image' وصور تقارير PDF واستكشاف الأخطاء الشائعة. موثق لأودو 18 و19.
كيفية إضافة الألوان إلى صفوف وخلايا عرض القائمة في أودو
استخدم سمات decoration-* لترميز الصفوف والخلايا بالألوان في عروض قائمة أودو بناءً على قيم الحقول — مع صيغة التعبيرات وجميع أنواع الزخرفة وملاحظة الترحيل لإعادة التسمية من tree إلى list. موثق لأودو 18 و19.
السياق والنطاق في أودو — مرجع المطوّر (أودو 16–19)
دليل عملي لنطاقات أودو (تصفية السجلات) والسياق (تمرير الحالة كأزواج مفتاح-قيمة) — كيف تعمل وأين تظهر وقواعد الصيغة من أودو 16 إلى أودو 19. موثق لأودو 18 و19.