UNIT II EXERCISE
Answer before scrolling to the solution. For each response, give the concept, scenario evidence, and a reason. Self-score each original numbered question or named part: 0 = missing/incorrect, 1 = correct label without reasoning, 2 = correct explanation using evidence. Rework every answer below 2. The solution is one defensible model, not wording to memorize; clearly stated alternative assumptions can support a different answer.
This exercise covers all of Unit II: Chapters 4, 5, and 6.
Try answering without looking back first. Work through the scenario in your own words, then compare with the complete solution below.
TABLE OF CONTENTS
- Case Study: Broken Customization Investigation
- Question 1: Likely Layer
- Question 2: addons_path
- Question 3: Module Installed
- Question 4: Manifest
- Question 5: Import Chain
- Question 6: Unimported File
- Question 7: Field Exists UI Missing
- Question 8: sale.view_order_form
- Question 9: action_confirm Never Runs
- Question 10: Debugger Evidence
- Question 11: Editing Standard sale_order.py
- Question 12: Full Investigation Flow
- Complete Solution
CASE STUDY: BROKEN CUSTOMIZATION INVESTIGATION
Your team installs a custom module:
nova_sale_extension
The requirements were:
- add
approval_reasonto Sales Order, - display it on the Sales Order form,
- perform extra logic when Sales Order is confirmed.
After installation on odoo19_dev:
- the module is visible in Apps,
approval_reasondoes not appear,- no error is displayed,
- the confirmation behavior also appears unchanged.
Rami owns the investigation. Lina asks for evidence, not guesses. Noor still needs Meridian Supplies orders such as SO0052 to confirm correctly.
Diagnose the problem using everything from Unit II (architecture, environment, source navigation).
QUESTION 1: LIKELY LAYER
Which architectural layer is most likely involved if the Odoo web client loads normally but the custom field is missing?
QUESTION 2: ADDONS_PATH
Why should you check addons_path?
QUESTION 3: MODULE INSTALLED
Why should you check whether the module is installed in the current database?
QUESTION 4: MANIFEST
Why should you inspect __manifest__.py?
QUESTION 5: IMPORT CHAIN
Why should you inspect __init__.py and models/__init__.py?
QUESTION 6: UNIMPORTED FILE
Suppose:
Example
class SaleOrder(models.Model):
_inherit = "sale.order"
approval_reason = fields.Char()exists, but sale_order.py is not imported.
What happens conceptually?
QUESTION 7: FIELD EXISTS UI MISSING
Suppose the Python field works but the UI still does not display it. Which area should you inspect?
QUESTION 8: SALE.VIEW_ORDER_FORM
Suppose your XML inherits sale.view_order_form. What is that value?
QUESTION 9: ACTION_CONFIRM NEVER RUNS
Your custom action_confirm() never runs. List at least five things to investigate.
QUESTION 10: DEBUGGER EVIDENCE
How would a debugger help you determine whether the override participates in runtime execution?
QUESTION 11: EDITING STANDARD SALE_ORDER.PY
Why is editing addons/sale/models/sale_order.py directly a bad solution?
QUESTION 12: FULL INVESTIGATION FLOW
Construct a complete investigation flow from symptom to root cause.