ما الذي تغيّر منذ أودو 19
- Python 3.12 أو أحدث. لا يعمل أودو 20 على أي إصدار أقدم، ويعرض تحذيرًا مع الإصدارات الأحدث من 3.14. أما أودو 19 فكان يقبل 3.10.
- PostgreSQL 16 أو أحدث. يعرض أودو 20 تحذيرًا عند اتصاله بخادم أقدم، بينما كان أودو 19 يطلب الإصدار 13.
- إمكانية اختيار محرك PDF. ما زال wkhtmltopdf هو المحرك الافتراضي، ويضيف أودو 20 محركًا اختياريًا خاصًا به هو Paper Muncher.
- صلاحيات الوصول في ملف واحد. تعرّف الوحدات صلاحيات الوصول في
security/ir.access.csv، وكل سطر فيه يربط مجموعة مستخدمين بمجموعة من العمليات مع نطاق (domain) اختياري، ويحل هذا الملف محلir.model.access.csvوقواعد السجلات (record rules) معًا.
لماذا Ubuntu 24.04
يأتي Ubuntu 24.04 LTS مع Python 3.12 وPostgreSQL 16، وهما الحد الأدنى لأودو 20، كما يضبط أودو إصدارات مكتبات Python التي يعتمد عليها على الإصدارات التي توفرها حزم هذا الإصدار من Ubuntu. أما على Ubuntu 22.04 فستحتاج إلى Python 3.12 من deadsnakes PPA، وإلى PostgreSQL 16 من مستودع apt الخاص بمشروع PostgreSQL.
الخطوة 1: تثبيت PyCharm
sudo apt update && sudo apt upgrade -y
sudo snap install pycharm --classicأصبح PyCharm الآن منتجًا واحدًا يتضمن خطة مجانية: بعد انتهاء فترة تجربة Pro لمدة 30 يومًا، تكفي الميزات الأساسية المجانية للعمل على أودو.
الخطوة 2: تثبيت Python ومكتبات البناء
sudo apt install -y python3 python3-dev python3-venv build-essential \
libpq-dev libxml2-dev libxslt1-dev zlib1g-dev libffi-dev libssl-dev \
libjpeg-dev libldap2-dev libsasl2-devتتيح هذه المكتبات لأداة pip بناء الحزم التي ليس لها حزمة wheel جاهزة على Linux، مثل python-ldap وpsycopg2.
الخطوة 3: تثبيت Node.js وrtlcss
يُجمّع أودو ملفات التنسيق الخاصة به بنفسه، لكن اللغات التي تُكتب من اليمين إلى اليسار، مثل العربية، تحتاج إلى أداة rtlcss:
sudo apt install -y nodejs npm
sudo npm install -g rtlcssالخطوة 4: تثبيت wkhtmltopdf لتقارير PDF
ما زال wkhtmltopdf هو محرك PDF الافتراضي في أودو 20. استخدم النسخة المبنية على Qt المعدّلة (patched Qt) من الإصدار 0.12.6.1، وإلا فستُطبع الترويسات والتذييلات وفواصل الصفحات بشكل غير صحيح. وحزمة Ubuntu 22.04 (jammy) يمكن تثبيتها على 24.04:
wget https://github.com/wkhtmltopdf/packaging/releases/download/0.12.6.1-3/wkhtmltox_0.12.6.1-3.jammy_amd64.deb
sudo apt install -y ./wkhtmltox_0.12.6.1-3.jammy_amd64.debويوفر أودو 20 أيضًا محركًا خاصًا به هو Paper Muncher، في الوحدة الاختيارية base_report_paper_muncher. ويحتاج هذا المحرك إلى برنامج paper-muncher بالإصدار 0.6 أو أحدث. ويبقى wkhtmltopdf هو المحرك الافتراضي ما لم تغيّره.
الخطوة 5: تثبيت PostgreSQL وإنشاء مستخدم أودو
sudo apt install -y postgresql postgresql-client
sudo -u postgres createuser --createdb --no-createrole --no-superuser --pwprompt odoo20على جهازك الشخصي يمكنك منح الدور صلاحيات superuser لتجنّب أخطاء الصلاحيات عند استعادة قواعد البيانات. لا تفعل ذلك أبدًا على خادم. يرفض أودو العمل باسم المستخدم postgres نفسه، ولهذا يحصل على دور خاص به.
sudo -u postgres psql -c "ALTER USER odoo20 WITH SUPERUSER;"الخطوة 6: الحصول على الكود المصدري لأودو 20
sudo apt install -y git
git clone https://github.com/odoo/odoo.git --branch 20.0 --depth 1 odoo20إذا كان لديك اشتراك في أودو للمؤسسات، فاستنسخ الفرع 20.0 من مستودع enterprise بجانب مجلد أودو.
الخطوة 7: إنشاء بيئة افتراضية وتثبيت المتطلبات
افتح مجلد odoo20 في PyCharm، ونفّذ في الطرفية (Terminal) الخاصة به:
python3 -m venv venv
source venv/bin/activate
pip install --upgrade pip
pip install -r requirements.txtإذا فشل بناء psycopg2، فتأكد من تثبيت libpq-dev وpython3-dev من الخطوة 2، أو ثبّت psycopg2-binary بدلًا منه.
الخطوة 8: كتابة ملف odoo.conf
[options]
; master password for the database manager
admin_passwd = change-me
db_host = localhost
db_port = 5432
db_user = odoo20
db_password = your_password
addons_path = /home/you/odoo20/addons
http_port = 8069ومع النسخة المؤسسية، ضع مجلدها أولًا: addons_path = /home/you/enterprise,/home/you/odoo20/addons. ولا تضف logfile أثناء التطوير، ليظهر السجل في وحدة التحكم (console) في PyCharm.
الخطوة 9: إضافة إعداد تشغيل
اختر Run → Edit Configurations → + → Python:
- Script path:
odoo-bin - Parameters:
-c odoo.conf - Working directory: مجلد
odoo20 - Interpreter: بيئة
venvالتي أنشأتها
اضغط Run أو Debug، ثم افتح http://localhost:8069. وظهور مدير قواعد البيانات (database manager) يؤكد أن البيئة تعمل.
نصائح من مطوّرينا
- احفظ وحداتك الخاصة في مجلد منفصل وأضفه إلى
addons_path، ولا تعدّل وحدات أودو الأساسية أبدًا. - استخدم Git من أول سطر كود، بمستودع واحد لكل عميل أو خط منتجات.
- شغّل أودو مع
--dev=allأثناء العمل، ومع تثبيتinotifyأوwatchdogفي البيئة الافتراضية يُعاد تحميل تغييرات Python دون إعادة تشغيل. - شغّل اختبارات أي وحدة على قاعدة بيانات مؤقتة باستخدام
-d test20 -i your_module --test-enable، وسيتوقف أودو عند انتهائها. - عرّف الصلاحيات في
security/ir.access.csv: سطر يربط مجموعة مستخدمين بمجموعة من العمليات، مع نطاق (domain) في المواضع التي كنت ستكتب فيها قاعدة سجل (record rule) من قبل.
تبني وحدات لعميل وتحتاج إلى مطوّرين إضافيين؟ استعن بمطوّر أودو من فريقنا في الكويت.