The business logic that's coded into Python methods can also be extended. For this, Odoo borrows the mechanism that Python already provides for inherited objects to extend their parent class behavior.
As a practical example, we will extend the Library Book ISBN validation logic. The logic provided by the base Library app only validates modern 13-digit ISBNs, but some older titles might have a 10-digit ISBN. We will extend the _check_isbn()
method to also validate these cases.
Add this additional method in the library_member/models/library_book.py
file:
from odoo import api, fields, models class Book(models.Model): _inherit = 'library.book' is_available = fields.Boolean('Is Available?', readonly=False) @api.multi def _check_isbn(self): self.ensure_one() digits = [int(x) for x in self.isbn if x.isdigit()] if len(digits) == 10: ponderators = [1, 2, 3, 4, 5, 6, 7, 8, 9] total = sum(a * b for a, b in zip...