راهاندازی¶
در این فصل خواهید آموخت:
محیط توسعهٔ محلی خود را راهاندازی کنید.
طرح کلی ساختار پایگاهداده Odoo.
صدور و وارد کردن یک پایگاهداده Odoo در محیط محلی خود.
داشتن یک نمونهٔ Odoo فعال و در حال اجرا.
نصب¶
روشهای متعددی برای نصب Odoo وجود دارد، بسته به مورد استفادهٔ مدنظر. این اسناد فرض میکنند که از نصب منبع (اجرای Odoo از کد منبع) استفاده میکنید که برای طراحان و توسعهدهندگان Odoo بهترین گزینه است.
پایگاههای داده¶
ساختار¶
هر اپلیکیشن Odoo به شکل مشابهی کار میکند؛ آنها با همان منطق ساخته شدهاند. یک مدل شامل فیلدها و فیلدهای رابطهای است که به سایر مدلها پیوند میخورند. هر مدل نماهایی دارد که همهٔ فیلدهای آن را نشان میدهند، با نماهای backend و frontend.
مدلها¶
پایهٔ Odoo، مدلها هستند. مدلها از فیلدها برای ثبت دادهها استفاده میکنند. رکوردها در یک پایگاهداده ذخیره میشوند: بنابراین به یک مدل پیوند داده میشوند. در Odoo، میتوانید مدلهای مختلف را در backend با فعال کردن حالت توسعهدهنده و سپس رفتن به پیدا کنید.
فیلدها¶
در یک مدل، فیلدها را متمرکز خواهیم کرد (نام فیلدهایی که باید در کد خود هدف قرار دهیم).
همچنین ببینید
فیلدهای کلاسیک¶
تاریخ
Char
Selection
…
فیلدهای رابطهای¶
فیلدهای رابطهای یک فیلد را از مدل دیگر فراخوانی میکنند. آنها به شما اجازه میدهند مدلها را به هم پیوند دهید و آنها را بهسادگی با یکدیگر تعامل دهید. بهبیان دیگر، وقتی از یک فیلد رابطهای استفاده میکنید، یک رکورد را با رکورد دیگر (واقع در مدل دیگری) پیوند میدهید و این به شما اجازه میدهد محتوای فیلدهای موجود در این رکورد پیوندیافته را بازیابی کنید.
فیلدهای Many2one با انتخاب یک رکورد از فهرستی از رکوردها در مدل دیگر پر میشوند (از چند رکورد، یکی را انتخاب میکنید). برای مثال، فیلد customer در یک پیشفاکتور به شما اجازه میدهد یک مشتری را از فهرستی از چند مشتری در مدل contact انتخاب کنید.
فیلدهای One2many جستجوی معکوس روابط many2one موجود هستند. برای مثال، میتوانید روی یک مخاطب، همهٔ پیشفاکتورهای موجود آنها را فهرست کنید (از یک رکورد، چند مورد را نمایش میدهید).
فیلدهای Many2many با انتخاب یک یا چند رکورد از فهرستی از رکوردها در مدل دیگر پر میشوند. برای مثال، میتوانید چندین برچسب را روی یک محصول قرار دهید، و چندین محصول میتوانند از همان برچسبها استفاده کنند (از چند رکورد، میتوانید چند مورد را انتخاب کنید).
نماها¶
نماها تعریف میکنند که چگونه رکوردها باید به کاربران نهایی نمایش داده شوند. آنها در XML مشخص میشوند، به این معنی که میتوانند بهطور مستقل از مدلی که نشان میدهند ویرایش شوند. آنها انعطافپذیر هستند و امکان سفارشیسازی عمیق صفحاتی که کنترل میکنند را فراهم میکنند.
Backend در مقابل Frontend¶
نماهای backend: کانبان، لیست، فرم و غیره.
نمای frontend: QWeb
Static در مقابل Dynamic¶
صفحات ایستا محتوای پایداری دارند، مانند صفحهٔ اصلی. میتوانید URL آنها را تعریف کنید و برخی ویژگیها مانند منتشرشده، ایندکسشده و غیره را تنظیم کنید.
صفحات پویا بهصورت پویا تولید میشوند، مانند صفحهٔ محصول. URL آنها پویا است و بهصورت پیشفرض برای همه قابل دسترس است (میتوان آن را با پیکربندی حقوق دسترسی تغییر داد).
Base در مقابل Inherited در مقابل Duplicated¶
نمای پایه: نمایی که توسط Odoo بهصورت بومی پیادهسازی شده. مستقیماً از مدل آنها مشتق میشود. یک نمای پایه هرگز نباید تغییر داده شود زیرا اجازه میدهد یک پایگاهداده Odoo بدون بازنویسی تغییرات کلاینت بهروزرسانی شود.
تغییرات همیشه در یک نمای duplicated یا inherited با تفاوتهایی صورت میگیرند:
نمای Inherited همیشه یک
inherit_idدارد و تغییرات را بر اساس کد منبع نمای پایهای که از آن ارثبری میکند اعمال میکند.نمای Duplicated یک کپی از نمای دیگر است. بیشتر اوقات، این نوع نما توسط Odoo زمانی ایجاد میشود که کاربر نهایی تغییرات را از طریق ابزار ساخت وبسایت اعمال میکند. این مکانیسم از دست رفتن داده هنگام بهروزرسانی ماژول جلوگیری میکند زیرا تنها نمای منبع بهروزرسانی خواهد شد، نه نمای duplicated. اگر یک نمای duplicated وجود داشته باشد، هم نمای اصلی و هم نمای duplicated در فهرست قابل مشاهده هستند اما تنها نمای duplicated یک
external_idدارد (تنظیمexternal_idبه معنی این است که نما توسط کد منبع یک ماژول ایجاد شده است).
وارد کردن یک پایگاهدادهٔ موجود¶
توجه
اگر نیاز به وارد کردن یک پایگاهدادهٔ موجود ندارید، میتوانید مستقیماً به فصل Theming بروید.
Dump¶
Odoo SaaS¶
به یک حساب کاربری با حقوق دسترسی کافی وارد شوید.
به
<database_url>/saas_worker/dumpبروید.
Odoo.sh¶
به Odoo.sh متصل شوید.
شاخهای را که میخواهید پشتیبان بگیرید انتخاب کنید.
زبانهٔ BACKUPS را انتخاب کنید.
روی دکمهٔ Create Backup کلیک کنید.
وقتی فرآیند به پایان رسید، یک اعلان ظاهر میشود. آن را باز کنید و روی دکمهٔ Go to Backup کلیک کنید.
روی آیکون Download کلیک کنید. Testing را در زیر Purpose و With filestore را در زیر Filestore انتخاب کنید.
وقتی dump آماده دانلود شد، یک اعلان دریافت خواهید کرد. آن را باز کنید و روی Download کلیک کنید تا dump خود را دریافت کنید.
جابهجایی filestore¶
همهٔ پوشههای موجود در پوشهٔ filestore را کپی کنید و آنها را به مکان زیر روی کامپیوتر خود paste کنید:
macOS:
/Users/<User>/Library/Application Support/Odoo/filestore/<database_name>Linux:
/home/<User>/.local/share/Odoo/filestore/<database_name>
توجه
/Library یک پوشهٔ پنهان است.
راهاندازی پایگاهداده¶
یک پایگاهدادهٔ خالی ایجاد کنید.
createdb <database_name>
فایل SQL را در پایگاهدادهای که تازه ایجاد کردهاید وارد کنید.
psql <database_name> < dump.sql
رمز عبور کاربر admin را بازنشانی کنید.
psql \c
<database_name>
update res_users set login='admin', password='admin' where id=2;
در صورت لزوم، گزینهٔ سیاست اجباری احراز هویت دو مرحلهای را غیرفعال کنید.
psql <database-name>
update res_users set totp_secret='' where id=2;
شروع به کار¶
اجرای Odoo¶
وقتی همهٔ وابستگیها راهاندازی شدند، Odoo را میتوان با اجرای odoo-bin، رابط خط فرمان سرور، راهاندازی کرد. این در ریشهٔ دایرکتوری Odoo Community قرار دارد.
برای پیکربندی سرور، میتوانید آرگومانهای خط فرمان یا یک فایل پیکربندی را مشخص کنید. روش اول در زیر ارائه میشود.
CLI چندین قابلیت مرتبط با Odoo ارائه میدهد. میتوانید از آن برای اجرای سرور، scaffold یک قالب Odoo، پُر کردن یک پایگاهداده یا شمارش تعداد خطوط کد استفاده کنید.
اسکریپت Shell¶
روش معمول برای اجرای سرور این است که همهٔ آرگومانهای خط فرمان را به یک اسکریپت .sh اضافه کنید.
Example
./odoo-bin --addons-path=../enterprise,addons --db-filter=<database> -d <database> -i website --dev=xml --without-demo=True
پوشه |
توضیحات |
|---|---|
فهرستی از دایرکتوریها که با کاما جدا شدهاند و ماژولها در آنها ذخیره میشوند. این دایرکتوریها برای یافتن ماژولها اسکن میشوند. |
|
پایگاهداده(های) استفادهشده هنگام نصب یا بهروزرسانی ماژولها. |
|
پایگاهدادههایی که با فیلتر مطابقت ندارند را پنهان میکند. |
|
فهرستی از ماژولها که با کاما جدا شدهاند و قبل از اجرای سرور نصب میشوند. (نیازمند |
|
فهرستی از ماژولها که با کاما جدا شدهاند و قبل از اجرای سرور بهروزرسانی میشوند. (نیازمند |
|
فهرستی از ماژولها که با کاما جدا شدهاند و قبل از شروع سرور reinitialize میشوند. (نیازمند |
|
فهرستی از ویژگیها که با کاما جدا شدهاند. فقط برای اهداف توسعه. اطلاعات بیشتر |
|
از بارگذاری دادههای دمو توسط سرور جلوگیری میکند. |
Sign in¶
پس از اینکه سرور شروع به کار کرد (لاگ INFO odoo.modules.loading: Modules loaded. چاپ میشود)، http://localhost:8069 را در مرورگر وب خود باز کنید و با حساب admin پایه وارد شوید.
برای ایمیل admin و برای رمز عبور admin را تایپ کنید.
نکته
برای متوقف کردن سرور CTRL+C را بزنید. در صورت نیاز دو بار این کار را انجام دهید.
حالت توسعهدهنده¶
حالت توسعهدهنده که با عنوان حالت debug نیز شناخته میشود، برای توسعه مفید است زیرا به ابزارهای اضافی دسترسی میدهد. در فصلهای بعدی، فرض میشود که حالت توسعهدهنده را فعال کردهاید.
همچنین ببینید