Skip to content

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

Your team installs a custom module:

nova_sale_extension

The requirements were:

  • add approval_reason to 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_reason does 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.