Server actions are backend operations triggered manually or by code—like running Python scripts, updating records, or calling methods.
Automated actions are rule-based triggers that run automatically when certain conditions are met—like sending an email when a record is created or updated.
🧠 In short: - Server actions = manual or script-based - Automated actions = automatic rule-based triggers
QWeb is Odoo’s XML-based templating engine. It’s mainly used to design reports, website pages, and dynamic UI elements. It lets you insert Python data into HTML/XML and control how content is displayed in things like PDF reports, invoices, or website views.
Odoo has a modular and layered architecture made up of the following components:
1. 🧠 Core (Framework):
Built in Python using the Odoo ORM
Handles business logic and data models
2. 🗃️ Database Layer:
Uses PostgreSQL to store all records, users, and configurations
3. 🧩 Modules:
Each app (like CRM, Sales, Inventory) is a module
Modules can be installed, upgraded, or customized independently
4. 🌐 Web Interface (Frontend):
Built with JavaScript (OWL/QWeb)
Renders UI and communicates with the backend via JSON-RPC or XML-RPC
5. 📡 API Layer:
Allows external integrations using REST, JSON-RPC, or XML-RPC
6. ⚙️ Odoo Server:
Runs the entire system
Interacts with both the database and the client/browser
📝 Summary: Odoo is a full-stack, modular ERP built with Python (backend), PostgreSQL (database), and JavaScript (frontend), allowing easy customization and integration.
Ques:- How do you manage workflows and approvals in Odoo?
Asked In :-
Right Answer:
Odoo manages workflows using stages, rules, and automated actions. For approvals, you can enable approval settings in apps like Purchase or Leave. You can also customize approval flows using Studio or by adding custom rules and user roles in Python or XML.
1. Import libraries like requests or http.client in your Python code. 2. Use Python code (in models) to send/receive API data (GET, POST, etc.). 3. Handle API authentication (token, key, OAuth). 4. Parse and use the response (e.g., save in Odoo models). 5. Optionally schedule it with cron jobs for auto-sync.
Odoo Community is free and open-source with basic features. Odoo Enterprise is paid, includes everything in Community plus extra features like Studio, advanced accounting, mobile support, better UI, and official support from Odoo.
Ques:- What are the steps to upgrade a module from one version of Odoo to another?
Asked In :-
Right Answer:
Update the module’s version in manifest.py. 2. Check for deprecated APIs and replace them. 3. Update XML files (views, menus) to match new structure. 4. Migrate Python code (models, methods) as needed. 5. Test the module on the new Odoo version. 6. Fix any errors or warnings during installation. 7. Upgrade the module from the Apps menu.
Answer: ORM stands for Object-Relational Mapping. In Odoo, ORM is a powerful system that lets developers interact with the database using Python code instead of writing SQL queries directly. It maps Python classes (called models) to database tables and handles all CRUD operations (Create, Read, Update, Delete) behind the scenes.
—
🛠 How it works:
Each model in Odoo (e.g., res.partner) represents a table.
Fields in the model represent columns.
When you create or update a record in Python, Odoo’s ORM automatically updates the database.
Ques:- How do you create and use views like tree form kanban and calendar
Asked In :-
Right Answer:
In Odoo, views define how data is displayed. Common types:
1. 🔢 Tree View – shows records in a table format. 2. 📝 Form View – shows one record in detail. 3. 📌 Kanban View – shows cards for records, used in CRM/projects. 4. 📅 Calendar View – shows records by date (e.g., events/tasks).
1. Enable developer mode in the UI. 2. Use logging (e.g., _logger.info()) in your Python code. 3. Check logs in the terminal or Odoo log file. 4. Use pdb (Python debugger) to pause and inspect code. 5. Inspect XML views or JS console for frontend issues.