ویرایشگر آنلاین

نمای 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 را ویرایش کنید. برای ساخت‌های تولید، کد منبع فقط‌خواندنی است، زیرا اعمال تغییرات محلی روی یک سرور تولید روش مناسبی نیست.

توجه

برای باز کردن یک فایل در ویرایشگر، روی آن در پنل مرورگر فایل دوبار کلیک کنید. سپس می‌توانید فایل را ویرایش کنید. برای ذخیرهٔ تغییرات خود، به پرونده ↤ ذخیره بروید یا از میان‌بر صفحه‌کلید Ctrl+S استفاده کنید.

اگر یک فایل Python را در addons path سرور Odoo خود ذخیره کنید، Odoo آن را تشخیص می‌دهد و به‌صورت خودکار reload می‌کند، به این معنی که تغییرات شما بلافاصله قابل مشاهده هستند.

تغییر یک فایل Python که بلافاصله قابل مشاهده است

با این حال، اگر تغییرات شما در پایگاه داده ذخیره می‌شوند، مانند label یک فیلد یا یک نما، لازم است ماژول مرتبط را به‌روزرسانی کنید تا تغییرات اعمال شوند. برای به‌روزرسانی ماژول فایلی که در حال حاضر باز است، به اودو ↤ Update current module بروید.

استفاده از ویرایشگر برای به‌روزرسانی ماژول فعلی

نکته

همچنین می‌توانید دستور زیر را در یک ترمینال برای به‌روزرسانی یک ماژول اجرا کنید:

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 را فشار دهید.

دستورات commit و push تغییرات

نکته

اگر 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 فهرست‌ها را به‌صورت خوانا نمایش می‌دهد.

نمونهٔ کلاس Pretty

نکته

با استفاده از pandas می‌توانید موارد زیر را نمایش دهید:

  • سلول‌های یک فایل CSV

    نمونهٔ CSV با pandas
  • نمودارها

    نمونهٔ نمودار با pandas

می‌توانید کنسول‌های 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'}]