این دوره طراحی شده است تا توسعهدهندگان را با دانش و مهارتهای لازم برای سفارشیسازی و توسعه ماژولها در Odoo آشنا کند. محتوای دوره شامل مفاهیم پایه تا پیشرفته در توسعه Odoo است.
بخش 1: آشنایی با Odoo Framework
فصل 1. مقدمهای بر Odoo
- تاریخچه و تکامل Odoo
- مقایسه Odoo با سایر ERPها (SAP، Microsoft Dynamics و…)
- ویژگیهای کلیدی Odoo و مزایای آن
فصل 2. معماری نرمافزار Odoo
- معرفی ساختار کلی Odoo
- نحوه تعامل ماژولها و اکوسیستم Odoo
- بررسی تفاوت نسخههای Enterprise و Community
- مدل MVC در Odoo
- مفهوم Add-ons و نحوه بارگذاری ماژولها
فصل 3. ماژولها در Odoo
- تعریف ماژول و اجزای تشکیلدهنده آن
- بررسی نحوه عملکرد ماژولها
- نحوه نصب، فعالسازی و مدیریت ماژولها
فصل 4. نصب و پیکربندی محیط توسعه Odoo
- پیشنیازهای نصب Odoo (Python، PostgreSQL و سایر وابستگیها)
- نصب Odoo در محیط محلی (Local Environment)
- نصب از سورس
- نصب از طریق پکیجهای آماده
- استفاده از Docker برای توسعه Odoo
- نصب Odoo با Docker Compose
- مدیریت نسخههای مختلف Odoo با Docker
- تنظیم پایگاه داده PostgreSQL برای Odoo
- ایجاد پایگاه داده جدید برای توسعه
- مدیریت دسترسیها و تنظیمات امنیتی
فصل 5. راهاندازی محیط توسعه و ابزارهای موردنیاز
- معرفی ابزارهای کاربردی برای توسعه در Odoo
- VS Code و افزونههای ضروری
- PyCharm برای توسعه Python در Odoo
- مدیریت و اجرای سرور Odoo
- اجرای Odoo در حالت توسعه
- تنظیمات سرور Odoo و نحوه تغییر آنها
- بررسی فایلهای لاگ و Debugging در Odoo
فصل 6. بررسی ساختار دایرکتوریهای Odoo
- معرفی پوشههای اصلی در Odoo
- ساختار پوشههای ماژولها
- بررسی فایلهای مهم مانند
__init__.pyو__manifest__.py
بخش 2: مفاهیم پایه در توسعه Odoo
فصل 1. آشنایی با ORM (Object Relational Mapping) در Odoo
- معرفی ORM و مزایای استفاده از آن
- نحوه تعامل ORM با PostgreSQL
- تفاوت ORM در Odoo با سایر فریمورکهای توسعه
فصل 2. تعریف مدلها (Models) در Odoo
- ساخت مدلهای داده با استفاده از
models.Model - بررسی ویژگیهای کلیدی مدلها مانند
_name,_description,_inherit - ارثبری مدلها و گسترش قابلیتهای پیشفرض
فصل 3. فیلدها (Fields) و انواع آنها
- معرفی انواع دادههای استاندارد در Odoo
Char,Text,Integer,Float,Boolean,Selection,Date,Datetime
- کار با فیلدهای رابطهای
Many2one,One2many,Many2many
- تنظیم ویژگیهای فیلدها
required,readonly,default,help,compute,store
- فیلدهای محاسباتی (
compute) و فیلدهای مرتبط (related) - استفاده از
onchangeبرای بهروزرسانی دادهها
فصل 4. روابط بین مدلها و جداول پایگاه داده
- ارتباط یکبهچند (
One2many) و چندبهچند (Many2many) - نحوه تعریف کلیدهای خارجی (
Foreign Key) در Odoo - استفاده از
domainوcontextبرای فیلتر کردن دادههای مرتبط
فصل 5. تعامل با پایگاه داده در Odoo
- عملیات پایهای CRUD (ایجاد، خواندن، بهروزرسانی، حذف)
create(),write(),browse(),search(),unlink()
- اجرای Queryهای سفارشی با ORM
- مدیریت سشنها و تراکنشها در Odoo
فصل 6. ارثبری و توسعه مدلهای موجود
- ارثبری کلاسیک (
_inherit) و ارثبری نمایشی (_inherits) - افزودن فیلدهای جدید به مدلهای پیشفرض
- تغییر رفتار توابع داخلی Odoo
فصل 7. ایجاد و مدیریت Constraints (محدودیتها) در مدلها
- تعریف محدودیتهای سطح مدل (
_sql_constraints) - پیادهسازی
@api.constrainsبرای ایجاد شرایط اعتبارسنجی سفارشی - مدیریت استثناها و پیامهای خطا (
raise ValidationError)
فصل 8. استفاده از Decorators در Odoo
- معرفی
@api.model,@api.multi,@api.depends,@api.onchange - کاربرد هر یک از این دکوراتورها در توسعه Odoo
فصل 9. دادههای اولیه و Seed Data در Odoo
- معرفی
dataوdemoدر فایل__manifest__.py - نحوه بارگذاری دادههای پیشفرض در مدلها
- استفاده از XML برای تعریف دادههای اولیه
فصل 10. بهترین روشها در طراحی مدلهای Odoo
- بهینهسازی کوئریهای ORM برای افزایش کارایی
- رعایت اصول طراحی برای نگهداری بهتر کد
- جلوگیری از Overwriting غیرضروری و استفاده صحیح از ارثبری
بخش 3: سفارشیسازی رابط کاربری (User Interface)
فصل 1. مقدمهای بر رابط کاربری Odoo
- مفهوم رابط کاربری در Odoo
- ساختار و معماری UI در Odoo
- تفاوت بین Web Client، QWeb و XML
فصل 2. کار با XML و QWeb در Odoo
- معرفی XML و نقش آن در Odoo
- تعریف و ویرایش نماها (Views)
- نحوه استفاده از QWeb برای سفارشیسازی UI
فصل 3. انواع نماها (Views) در Odoo
- فرمها (Form Views) و سفارشیسازی آنها
- لیستها (Tree Views) و اضافه کردن فیلدهای جدید
- کانبان (Kanban Views) و نحوه تغییر چیدمان آن
- نمودارها (Graph Views) و گزارشهای تحلیلی
- Pivot Views برای گزارشهای مالی و آماری
- مدیریت تقویم (Calendar View) و زمانبندی وظایف
- معرفی Gantt View برای مدیریت پروژهها
فصل 4. سفارشیسازی فرمها و نمایش دادهها
- افزودن و تغییر فیلدها در Form View
- استفاده از ویجتهای Odoo برای نمایش دادهها
- نمایش دادهها بهصورت داینامیک با QWeb
فصل 5. ایجاد و مدیریت اکشنها (Actions) و منوها
- تعریف منوهای جدید در Odoo
- ایجاد اکشنهای جدید و متصل کردن آنها به منوها
- نمایش دادههای خاص در اکشنهای سفارشی
- استفاده از Window Actions برای نمایش فرمها
فصل 6. سفارشیسازی گزارشها و اسناد در UI
- طراحی گزارشهای سفارشی با QWeb
- افزودن فیلدهای جدید به گزارشها
- تبدیل گزارشها به فرمتهای PDF و Excel
- استفاده از ابزارهای گرافیکی برای بهبود UI
فصل 7. بهبود تجربه کاربری (UX) در Odoo
- اصول طراحی رابط کاربری جذاب در Odoo
- اضافه کردن دکمهها و کنترلهای تعاملی در UI
- استفاده از جاوا اسکریپت برای تغییرات پیشرفته در UI
فصل 8. مدیریت تمها و تغییرات گرافیکی در Odoo
- نحوه تغییر ظاهر Odoo با استفاده از CSS و Bootstrap
- ایجاد و اعمال تمهای سفارشی در Odoo
- بهینهسازی UI برای دستگاههای موبایل
فصل 9. ادغام ویجتها و کامپوننتهای پیشرفته در UI
- استفاده از ویجتهای Odoo برای نمایش اطلاعات خاص
- ساخت ویجتهای سفارشی با جاوا اسکریپت و QWeb
- نحوه اضافه کردن قابلیتهای داینامیک به UI
فصل 10. دیباگ و رفع مشکلات رابط کاربری
- استفاده از ابزارهای Debugging در Odoo
- بررسی و رفع خطاهای XML و QWeb
- مدیریت کش مرورگر و بررسی تغییرات UI
بخش 4: توسعه ماژولهای جدید
فصل 1. ساختار ماژول در Odoo
- معرفی ساختار دایرکتوری و فایلهای ضروری در ماژول
- ایجاد دایرکتوری ماژول و تنظیم فایل
__manifest__.py - بررسی فایلهای اصلی (مدلها، نماها، کنترلهای امنیتی، گزارشها و دادههای اولیه)
فصل 2. ایجاد فایل Manifest و مدیریت وابستگیها
- تعریف فایل
__manifest__.pyو تنظیمات آن - تعیین اطلاعات ماژول مانند نام، نسخه، وابستگیها و دادههای قابل نصب
- تنظیم
dependsبرای مشخص کردن وابستگی ماژول به ماژولهای دیگر - بارگذاری دادههای اولیه (data files)
فصل 3. تعریف مدلهای داده در ماژول
- ایجاد فایل
models.pyبرای تعریف مدلهای دادهای - اضافه کردن فیلدهای مختلف به مدل
- استفاده از روابط
One2manyوMany2many - اعمال محدودیتها و قوانین کسبوکار در مدلها
فصل 4. مدیریت دیدگاهها (Views) در ماژول
- ایجاد و تعریف فرمهای ورود اطلاعات (Form Views)
- طراحی لیستها (Tree Views) و کانبان (Kanban)
- تنظیمات جستجو (Search Views) و فیلترهای پیشفرض
- شخصیسازی ظاهر فرمها با QWeb و XML
فصل 5. ایجاد اکشنها و منوها در ماژول
- تعریف اکشنهای مرتبط با مدلها (window actions, server actions)
- ایجاد منوهای جدید برای دسترسی به مدلهای جدید
- لینک کردن اکشنها به منوها برای نمایش مناسب در UI
فصل 6. مدیریت دسترسیها و امنیت ماژول
- ایجاد فایل
security/ir.model.access.csvبرای تنظیم مجوزهای دسترسی - تعریف ACL (Access Control Lists) برای کاربران مختلف
- تنظیم قوانین دسترسی به رکوردها (Record Rules)
فصل 7. افزودن قابلیتهای جدید به ماژول
- توسعه و شخصیسازی ماژولهای پیشفرض Odoo
- افزودن دکمهها و قابلیتهای اکشن در فرمها
- ایجاد توابع سفارشی در
models.pyبرای پردازش دادهها
فصل 8. مدیریت دادههای اولیه و دادههای پیشفرض
- ایجاد فایل
data.xmlبرای بارگذاری دادههای اولیه - استفاده از
demo.xmlبرای دادههای آزمایشی - تکنیکهای بارگذاری دادههای مورد نیاز هنگام نصب ماژول
فصل 9. توسعه ویژگیهای خاص در ماژولها
- افزودن قابلیتهای ویژه مانند هشدارها، اعلانها و ایمیلها
- پیادهسازی رویدادها (Onchange, Compute, API Constraints)
- توسعه ماژولهای مرتبط با موجودی، فروش، حسابداری و منابع انسانی
فصل 10. نصب، تست و دیباگ ماژول
- نحوه نصب ماژول جدید در Odoo
- بررسی لاگهای خطا و رفع مشکلات در توسعه
- ابزارهای اشکالزدایی (Debugging) و تست عملکرد ماژول
فصل 11. بهترین روشهای توسعه ماژول در Odoo
- رعایت استانداردهای کدنویسی در Odoo
- استفاده از ابزارهای مدیریت نسخه (Git) برای توسعه ماژول
- تکنیکهای بهینهسازی عملکرد ماژول برای بهبود سرعت و کارایی
بخش 5: مدیریت امنیت و دسترسیها
فصل 1. معرفی امنیت و کنترل دسترسی در Odoo
- اهمیت مدیریت امنیت در Odoo
- نحوه کنترل دسترسی در لایههای مختلف
- تفاوت بین ACL، Record Rules و Field Security
فصل 2. مدیریت گروهها و نقشهای کاربری
- تعریف گروههای کاربری در Odoo
- نحوه ایجاد نقشهای سفارشی
- ارتباط بین کاربران، گروهها و دسترسیها
- تعیین نقشهای پیشفرض هنگام ایجاد کاربر جدید
فصل 3. تنظیمات دسترسی به مدلها (Access Control Lists – ACL)
- مفهوم ACL و نحوه اعمال آن در Odoo
- سطح دسترسیهای پایه (Read, Write, Create, Delete)
- ایجاد و ویرایش ACL برای ماژولهای سفارشی
- بررسی اولویت و ترتیب پردازش ACL
فصل 4. قوانین ضبط (Record Rules) و کنترل دسترسی پویا
- مفهوم و اهمیت Record Rules
- نحوه نوشتن قوانین ضبط برای محدود کردن دادهها
- استفاده از دامنهها (Domain) برای تعریف قوانین
- ایجاد قوانین دسترسی سفارشی برای کاربران خاص
- مثالهای عملی برای محدود سازی دادههای کاربران
فصل 5. امنیت در سطح فیلد (Field Security)
- تعیین سطح دسترسی به فیلدها
- نحوه ایجاد محدودیت نمایش و ویرایش فیلدها
- استفاده از attributeهای invisible، readonly و required
- کنترل امنیت فیلدها با شرطهای پویا (attrs)
فصل 6. مدیریت امنیت در APIها و دسترسیهای خارجی
- کنترل دسترسی در XML-RPC و JSON-RPC
- محدودسازی دسترسی به APIها بر اساس گروههای کاربری
- ایمنسازی دادههای ارسال و دریافت شده از طریق API
- پیادهسازی احراز هویت (Authentication) در APIهای Odoo
فصل 7. امنیت دادهها و محافظت از اطلاعات حساس
- نحوه رمزگذاری و محافظت از دادههای حساس
- استفاده از سرورهای امن و مکانیزمهای رمزگذاری در Odoo
- کنترل سطح دسترسی به اطلاعات مشتریان و تراکنشها
- بهترین روشهای جلوگیری از افشای اطلاعات محرمانه
فصل 8. مدیریت لاگها و مانیتورینگ امنیتی
- بررسی لاگهای Odoo برای تحلیل امنیتی
- نحوه فعالسازی و مدیریت سطح دسترسی لاگها
- ابزارهای نظارت بر امنیت و تشخیص فعالیتهای مشکوک
- ثبت لاگهای دسترسی کاربران برای بررسی تخلفات
فصل 9. جلوگیری از حملات و افزایش امنیت Odoo
- جلوگیری از حملات Brute Force و SQL Injection
- استفاده از مکانیزمهای Captcha و محدودیت ورود کاربران
- اعمال سیاستهای رمز عبور قوی
- جلوگیری از XSS و CSRF در فرمها و درخواستها
فصل 10. پیکربندی امنیتی و تست نفوذ در Odoo
- بررسی تنظیمات امنیتی در Odoo
- روشهای تست نفوذ برای ارزیابی سطح امنیت
- اجرای تستهای امنیتی در محیط توسعه و عملیاتی
- بهروزرسانی مداوم برای جلوگیری از آسیبپذیریها
[cdb_course_lessons title=”پاسخ به سوالات فنی کاربران”][cdb_course_lesson icon=”fas fa-arrow-alt-circle-down” badge=”free” title=”پشتیبانی دائمی و در لحظه” subtitle=”توضیحات کامل”]ما در این دوره تمام تلاش خود را کردهایم تا محتوایی جامع و کاربردی ارائه دهیم که شما را برای ورود به دنیای حرفهای آماده کند. اما اگر در طول دوره یا پس از آن با سوالات فنی، چالشها یا حتی مشکلاتی در اجرای مطالب آموزشی مواجه شدید، نگران نباشید!
- پرسشهای شما، بخش مهمی از دوره است:
هر سوال یا مشکلی که مطرح کنید، با دقت بررسی شده و پاسخ کامل و کاربردی برای آن ارائه میشود. علاوه بر این، سوالات و پاسخهای شما به دوره اضافه خواهند شد تا برای سایر کاربران نیز مفید باشد. - پشتیبانی دائمی و در لحظه:
تیم ما همواره آماده پاسخگویی به سوالات شماست. هدف ما این است که شما با خیالی آسوده بتوانید مهارتهای خود را به کار بگیرید و پروژههای واقعی را با اعتماد به نفس کامل انجام دهید. - آپدیت دائمی دوره:
این دوره به طور مداوم بهروزرسانی میشود تا همگام با نیازهای جدید و سوالات کاربران تکمیلتر و بهتر گردد. هر نکته جدید یا مشکل رایج، در نسخههای بعدی دوره قرار خواهد گرفت.
حرف آخر
با ما همراه باشید تا نه تنها به مشکلات شما پاسخ دهیم، بلکه در مسیر یادگیری و پیشرفت حرفهای، شما را پشتیبانی کنیم. هدف ما این است که شما به یک متخصص حرفهای و قابلاعتماد تبدیل شوید و بتوانید با اطمینان پروژههای واقعی را بپذیرید و انجام دهید.
📩 اگر سوالی دارید یا به مشکلی برخوردید، همین حالا مطرح کنید!
ما در کوتاهترین زمان ممکن پاسخ شما را ارائه خواهیم داد. 🙌[/cdb_course_lesson][/cdb_course_lessons]
خدمات شبکه فراز نتورک | پیشرو در ارائه خدمات دیتاسنتری و کلود

نقد و بررسی وجود ندارد.