بنقرة واحدة
odoo-module-interaction
Interact with other modules, create link modules, and trigger cross-module logic.
التثبيت باستخدام Codex أو Claude انسخ هذا Prompt والصقه في Codex أو Claude أو مساعد آخر ليراجع صفحة Skill ويثبّتها لك.
القائمة
Interact with other modules, create link modules, and trigger cross-module logic.
التثبيت باستخدام Codex أو Claude انسخ هذا Prompt والصقه في Codex أو Claude أو مساعد آخر ليراجع صفحة Skill ويثبّتها لك.
استنادا إلى تصنيف SOC المهني
A router skill that identifies and recommends the most appropriate Odoo skill for a given user request.
Create HTTP endpoints for Websites and APIs.
Comprehensive guide to Odoo fields, including basic, relational, computed, and robust technical features (indexing, company_dependent, properties).
Master the Odoo ORM for data manipulation, environment management, and CRUD operations.
Configure Access Control Lists (ACLs) using CSV files.
Write automated tests using TransactionCase and Form emulators to ensure code quality.
| name | Odoo Module Interaction |
| description | Interact with other modules, create link modules, and trigger cross-module logic. |
Extend functionality by leveraging other installed modules (e.g., creating an Invoice from the Real Estate module).
A "Link Module" is a module designed to glue two other independent modules together.
__manifest__.py, depend on both modules.
'depends': ['estate', 'account'],
estate doesn't need to know about account, and vice-versa.To extend logic from another module, inherit the model and override methods.
Example: Trigger Invoice Creation on Property Sale
class EstateProperty(models.Model):
_inherit = "estate.property"
def action_sold(self):
# 1. Call super to execute original logic (set state to sold)
res = super().action_sold()
# 2. Add new logic (Create Invoice)
for prop in self:
self.env["account.move"].create({
"partner_id": prop.buyer_id.id,
"move_type": "out_invoice",
"line_ids": [
Command.create({
"name": prop.name,
"quantity": 1,
"price_unit": prop.selling_price * 0.06,
}),
Command.create({
"name": "Administrative Fees",
"quantity": 1,
"price_unit": 100.00,
}),
],
})
return res
Use self.env['model.name'].create(values_dict).
Many2one: Pass the integer ID (e.g., 'partner_id': 5).One2many/Many2many: Use Command tuples (e.g., [Command.create({...})]).print() or a debugger to verify method overrides are triggering.