ویرایشگر آنلاین¶
نمای Online Editor اجازهٔ ویرایش کد منبع ساختهای شما را از یک مرورگر وب میدهد. همچنین این امکان را به شما میدهد که ترمینالها، کنسولهای Python، کنسولهای Odoo shell و Jupyter Notebooks را باز کنید.
میتوانید از طریق تب شاخهها، منوی کشویی ساختها، یا با افزودن /odoo-sh/editor به URL ساخت (مثلاً https://odoo-addons-master-1.dev.odoo.com/odoo-sh/editor) به ویرایشگر یک ساخت دسترسی پیدا کنید.
ویرایش کد منبع¶
دایرکتوری کاری از موارد زیر تشکیل شده است:
.
├── home
│ └── odoo
│ ├── src
│ │ ├── odoo Odoo Community source code
│ │ │ └── odoo-bin Odoo server executable
│ │ ├── enterprise Odoo Enterprise source code
│ │ ├── themes Odoo Themes source code
│ │ └── user Your repository branch source code
│ ├── data
│ │ ├── filestore Database attachments, as well as the files of binary fields
│ │ └── sessions Visitors and users sessions
│ └── logs
│ ├── install.log Database installation logs
│ ├── odoo.log Running server logs
│ ├── update.log Database updates logs
│ └── pip.log Python packages installation logs
میتوانید کد منبع (فایلهای زیر /src) ساختهای توسعه و staging را ویرایش کنید. برای ساختهای تولید، کد منبع فقطخواندنی است، زیرا اعمال تغییرات محلی روی یک سرور تولید روش مناسبی نیست.
توجه
تغییرات شما به ساختهای جدید منتقل نخواهد شد. اگر میخواهید پایدار باشند، لازم است آنها را به کد منبع commit کنید.
کد منبع مخزن GitHub شما در
/src/userقرار دارد.کد منبع Odoo در مسیر زیر قرار دارد:
/src/odoo(https://github.com/odoo/odoo)/src/enterprise(https://github.com/odoo/enterprise)/src/themes(https://github.com/odoo/design-themes)
برای باز کردن یک فایل در ویرایشگر، روی آن در پنل مرورگر فایل دوبار کلیک کنید. سپس میتوانید فایل را ویرایش کنید. برای ذخیرهٔ تغییرات خود، به بروید یا از میانبر صفحهکلید Ctrl+S استفاده کنید.
اگر یک فایل Python را در addons path سرور Odoo خود ذخیره کنید، Odoo آن را تشخیص میدهد و بهصورت خودکار reload میکند، به این معنی که تغییرات شما بلافاصله قابل مشاهده هستند.
با این حال، اگر تغییرات شما در پایگاه داده ذخیره میشوند، مانند label یک فیلد یا یک نما، لازم است ماژول مرتبط را بهروزرسانی کنید تا تغییرات اعمال شوند. برای بهروزرسانی ماژول فایلی که در حال حاضر باز است، به بروید.
نکته
همچنین میتوانید دستور زیر را در یک ترمینال برای بهروزرسانی یک ماژول اجرا کنید:
odoo-bin -u <comma-separated module names> --stop-after-init
Commit و push کردن تغییرات¶
برای commit و push کردن تغییرات به مخزن GitHub خود:
با رفتن به یک ترمینال باز کنید.
دایرکتوری را به
~/src/userتغییر دهید.cd ~/src/userهویت خود را اعلام کنید.
git config --global user.email "you@example.com" && git config --global user.name "Your Name"
تغییرات خود را مرحله کنید.
git add
تغییرات خود را commit کنید.
git commit
تغییرات خود را push کنید.
git push https HEAD:<branch>
در این دستور:
httpsنام مخزن راهدور HTTPS GitHub شما است (مثلاًhttps://github.com/username/repository.git).HEADارجاع به آخرین revisionی است که commit کردهاید.<branch>باید با نام شاخهای که میخواهید تغییرات را به آن push کنید جایگزین شود، بهاحتمال زیاد شاخهٔ فعلی اگر روی یک ساخت توسعه کار میکنید.
از شما خواسته میشود نام کاربری و رمز عبور GitHub خود را وارد کنید. پس از وارد کردن اعتبارنامهها، Enter را فشار دهید.
نکته
اگر two-factor authentication را برای حساب GitHub خود فعال کنید، میتوانید یک personal access token ایجاد کنید و از آن بهعنوان رمز عبور استفاده کنید. اعطای مجوز repo کافی است.
توجه
احراز هویت با SSH امکانپذیر نیست، زیرا کلید خصوصی SSH شما به دلایل امنیتی در کانتینرهای ساخت شما میزبانی نمیشود و از طریق یک SSH agent نیز forward نمیشود، چون از طریق یک مرورگر وب به ویرایشگر دسترسی پیدا میکنید.
پوشهٔ منبع
~/src/userروی یک شاخه برداشت نشده، بلکه روی یک revision جداشده. این به این دلیل است که ساختها روی revisionهای خاص کار میکنند نه روی شاخهها، یعنی میتوانید چندین ساخت روی یک شاخه اما روی revisionهای مختلف داشته باشید.
پس از push کردن تغییرات شما، بر اساس رفتار push شاخهٔ شما، ممکن است یک ساخت جدید ایجاد شود. میتوانید به کار در ویرایشگری که از آن push کردهاید ادامه دهید، زیرا revision یکسانی با ساخت جدیدی که ایجاد شده خواهد داشت. با این حال، همیشه مطمئن شوید که در ویرایشگر ساختی هستید که از آخرین revision شاخهٔ شما استفاده میکند.
کنسولها¶
میتوانید کنسولهای Python را که IPython interactive shells هستند باز کنید. استفاده از این کنسولهای Python (بهجای IPython shellها در یک ترمینال) به شما اجازه میدهد از rich display capabilities آنها برای نمایش objectها بهصورت HTML بهره ببرید.
Example
کلاس Pretty فهرستها را بهصورت خوانا نمایش میدهد.
میتوانید کنسولهای Odoo shell را باز کنید تا با registry Odoo و متدهای مدل پایگاه دادهٔ خود آزمایش کنید. همچنین میتوانید مستقیماً روی رکوردهای خود بخوانید یا بنویسید.
هشدار
در یک کنسول Odoo shell، تراکنشها بهصورت خودکار commit میشوند. این به این معنی است که تغییرات اعمالشده روی رکوردها در پایگاه داده اعمال میشوند. برای مثال، اگر نام یک کاربر را تغییر دهید، در پایگاه دادهٔ شما نیز بهروزرسانی میشود. بنابراین، با احتیاط از کنسولهای Odoo shell روی پایگاههای دادهٔ تولید استفاده کنید.
میتوانید از env برای فراخوانی مدلهای registry پایگاه داده خود استفاده کنید، مثلاً env['res.users'].
env['res.users'].search_read([], ['name', 'email', 'login'])
[{'id': 2,
'login': 'admin',
'name': 'Administrator',
'email': 'admin@example.com'}]