From 4374256c5cd512c9f9367d898021d760c6740e24 Mon Sep 17 00:00:00 2001 From: mtpc4s9 Date: Wed, 19 Nov 2025 21:10:16 +0700 Subject: [PATCH] Cap nhat views --- .../__pycache__/zoo_animal.cpython-312.pyc | Bin 4132 -> 5213 bytes .../__pycache__/zoo_creature.cpython-312.pyc | Bin 1118 -> 1118 bytes addons/zoo/models/zoo_animal.py | 6 ++-- addons/zoo/views/zoo_animal_views.xml | 32 ++++++++++++++---- 4 files changed, 29 insertions(+), 9 deletions(-) diff --git a/addons/zoo/models/__pycache__/zoo_animal.cpython-312.pyc b/addons/zoo/models/__pycache__/zoo_animal.cpython-312.pyc index 0ea30c4d77d54c43735b9e54a7bca36020809b7b..c7af4df628b41a3564c29e8e8237bb0f139f5e30 100644 GIT binary patch delta 1893 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 Tx}%`yp7VjH?D@&jr8VLYR}0%U diff --git a/addons/zoo/models/__pycache__/zoo_creature.cpython-312.pyc b/addons/zoo/models/__pycache__/zoo_creature.cpython-312.pyc index f9516ac31f7c778258a517b561cd7237bba7a02c..2f0e94299a6a8731af48c648f9abade0d0fa4b86 100644 GIT binary patch delta 19 Zcmcb|agT%RG%qg~0}z})zL6`01pqn;1#bWV delta 19 Zcmcb|agT%RG%qg~0}yOEw2>=>1pqlt1y29~ diff --git a/addons/zoo/models/zoo_animal.py b/addons/zoo/models/zoo_animal.py index a5c9b24..6eeed05 100644 --- a/addons/zoo/models/zoo_animal.py +++ b/addons/zoo/models/zoo_animal.py @@ -25,8 +25,6 @@ class ZooAnimal(models.Model): introduction_vn = fields.Html('Introduction (VI)') is_purchased = fields.Boolean('Has Been Purchased', default=False) purchase_price = fields.Float('Purchase Price') - parent_id = fields.Many2one(comodel_name='zoo.animal', string='Parent', ondelete='set null') - male_children_ids = fields.One2many(comodel_name='zoo.animal', inverse_name='parent_id', string='Children') veterinarian_id = fields.Many2one(comodel_name='res.partner', string='Veterinarian') # thêm vào cuối: @@ -38,6 +36,10 @@ class ZooAnimal(models.Model): mother_id = fields.Many2one(comodel_name='zoo.animal', string='Mother', ondelete='set null') # ondelete: 'set null', 'restrict', 'cascade' mother_name = fields.Char('Mother Name', related='mother_id.name') female_children_ids = fields.One2many(comodel_name='zoo.animal', inverse_name='mother_id', string='Female Children') + father_id = fields.Many2one(comodel_name='zoo.animal', string='Father', ondelete='set null') + father_name = fields.Char('Father Name', related='father_id.name') + male_children_ids = fields.One2many(comodel_name='zoo.animal', inverse_name='father_id', string='Male Children') + toy_ids = fields.Many2many(comodel_name='product.product', string="Toys", diff --git a/addons/zoo/views/zoo_animal_views.xml b/addons/zoo/views/zoo_animal_views.xml index 3b45458..a6a37ed 100644 --- a/addons/zoo/views/zoo_animal_views.xml +++ b/addons/zoo/views/zoo_animal_views.xml @@ -23,11 +23,17 @@ + + + + + + @@ -38,6 +44,10 @@