راه‌اندازی

در این فصل خواهید آموخت:

  • محیط توسعهٔ محلی خود را راه‌اندازی کنید.

  • طرح کلی ساختار پایگاه‌داده Odoo.

  • صدور و وارد کردن یک پایگاه‌داده Odoo در محیط محلی خود.

  • داشتن یک نمونهٔ Odoo فعال و در حال اجرا.

نصب

روش‌های متعددی برای نصب Odoo وجود دارد، بسته به مورد استفادهٔ مدنظر. این اسناد فرض می‌کنند که از نصب منبع (اجرای Odoo از کد منبع) استفاده می‌کنید که برای طراحان و توسعه‌دهندگان Odoo بهترین گزینه است.

پایگاه‌های داده

ساختار

هر اپلیکیشن Odoo به شکل مشابهی کار می‌کند؛ آن‌ها با همان منطق ساخته شده‌اند. یک مدل شامل فیلدها و فیلدهای رابطه‌ای است که به سایر مدل‌ها پیوند می‌خورند. هر مدل نماهایی دارد که همهٔ فیلدهای آن را نشان می‌دهند، با نماهای backend و frontend.

مدل‌ها

پایهٔ Odoo، مدل‌ها هستند. مدل‌ها از فیلدها برای ثبت داده‌ها استفاده می‌کنند. رکوردها در یک پایگاه‌داده ذخیره می‌شوند: بنابراین به یک مدل پیوند داده می‌شوند. در Odoo، می‌توانید مدل‌های مختلف را در backend با فعال کردن حالت توسعه‌دهنده و سپس رفتن به Settings ↤ Technical ↤ Database Structure: Models پیدا کنید.

صفحهٔ مدل‌ها

فیلدها

در یک مدل، فیلدها را متمرکز خواهیم کرد (نام فیلدهایی که باید در کد خود هدف قرار دهیم).

همچنین ببینید

فیلدها و widget‌ها

فیلدهای کلاسیک
  • تاریخ

  • 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
  1. به یک حساب کاربری با حقوق دسترسی کافی وارد شوید.

  2. به <database_url>/saas_worker/dump بروید.

Odoo.sh
  1. به Odoo.sh متصل شوید.

  2. شاخه‌ای را که می‌خواهید پشتیبان بگیرید انتخاب کنید.

  3. زبانهٔ BACKUPS را انتخاب کنید.

  4. روی دکمهٔ Create Backup کلیک کنید.

  5. وقتی فرآیند به پایان رسید، یک اعلان ظاهر می‌شود. آن را باز کنید و روی دکمهٔ Go to Backup کلیک کنید.

  6. روی آیکون Download کلیک کنید. Testing را در زیر Purpose و With filestore را در زیر Filestore انتخاب کنید.

    دانلود پشتیبان
  7. وقتی 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

پوشه

توضیحات

--addons-path

فهرستی از دایرکتوری‌ها که با کاما جدا شده‌اند و ماژول‌ها در آن‌ها ذخیره می‌شوند. این دایرکتوری‌ها برای یافتن ماژول‌ها اسکن می‌شوند.

-d

--database

پایگاه‌داده(های) استفاده‌شده هنگام نصب یا به‌روزرسانی ماژول‌ها.

--db-filter

پایگاه‌داده‌هایی که با فیلتر مطابقت ندارند را پنهان می‌کند.

-i

--init

فهرستی از ماژول‌ها که با کاما جدا شده‌اند و قبل از اجرای سرور نصب می‌شوند. (نیازمند -d)

-u

--update

فهرستی از ماژول‌ها که با کاما جدا شده‌اند و قبل از اجرای سرور به‌روزرسانی می‌شوند. (نیازمند -d)

--reinit

فهرستی از ماژول‌ها که با کاما جدا شده‌اند و قبل از شروع سرور reinitialize می‌شوند. (نیازمند -d)

--dev

فهرستی از ویژگی‌ها که با کاما جدا شده‌اند. فقط برای اهداف توسعه. اطلاعات بیشتر

--without-demo

از بارگذاری داده‌های دمو توسط سرور جلوگیری می‌کند.

Sign in

پس از این‌که سرور شروع به کار کرد (لاگ INFO odoo.modules.loading: Modules loaded. چاپ می‌شود)، http://localhost:8069 را در مرورگر وب خود باز کنید و با حساب admin پایه وارد شوید.

برای ایمیل admin و برای رمز عبور admin را تایپ کنید.

صفحهٔ اصلی خوش‌آمدگویی

نکته

برای متوقف کردن سرور CTRL+C را بزنید. در صورت نیاز دو بار این کار را انجام دهید.

حالت توسعه‌دهنده

حالت توسعه‌دهنده که با عنوان حالت debug نیز شناخته می‌شود، برای توسعه مفید است زیرا به ابزارهای اضافی دسترسی می‌دهد. در فصل‌های بعدی، فرض می‌شود که حالت توسعه‌دهنده را فعال کرده‌اید.