diff --git a/addons/zoo/__manifest__.py b/addons/zoo/__manifest__.py index 17e5bd1..69b1b5b 100644 --- a/addons/zoo/__manifest__.py +++ b/addons/zoo/__manifest__.py @@ -30,5 +30,6 @@ 'security/ir.model.access.csv', 'views/zoo_animal_views.xml', 'views/zoo_creature_views.xml', + 'views/zoo_cage_views.xml', ], } \ No newline at end of file diff --git a/addons/zoo/models/__init__.py b/addons/zoo/models/__init__.py index f19462e..aa34548 100644 --- a/addons/zoo/models/__init__.py +++ b/addons/zoo/models/__init__.py @@ -1,2 +1,3 @@ from . import zoo_animal -from . import zoo_creature \ No newline at end of file +from . import zoo_creature +from . import zoo_cage \ No newline at end of file diff --git a/addons/zoo/models/__pycache__/__init__.cpython-312.pyc b/addons/zoo/models/__pycache__/__init__.cpython-312.pyc index 165872c..87878ab 100644 Binary files a/addons/zoo/models/__pycache__/__init__.cpython-312.pyc and b/addons/zoo/models/__pycache__/__init__.cpython-312.pyc differ diff --git a/addons/zoo/models/__pycache__/zoo_cage.cpython-312.pyc b/addons/zoo/models/__pycache__/zoo_cage.cpython-312.pyc new file mode 100644 index 0000000..5d3e1c5 Binary files /dev/null and b/addons/zoo/models/__pycache__/zoo_cage.cpython-312.pyc differ diff --git a/addons/zoo/models/__pycache__/zoo_creature.cpython-312.pyc b/addons/zoo/models/__pycache__/zoo_creature.cpython-312.pyc index 2f0e942..12edf9a 100644 Binary files a/addons/zoo/models/__pycache__/zoo_creature.cpython-312.pyc and b/addons/zoo/models/__pycache__/zoo_creature.cpython-312.pyc differ diff --git a/addons/zoo/models/zoo_cage.py b/addons/zoo/models/zoo_cage.py new file mode 100644 index 0000000..ceb24e6 --- /dev/null +++ b/addons/zoo/models/zoo_cage.py @@ -0,0 +1,20 @@ +# -*- coding: utf-8 -*- +from odoo import models, fields, api + +class ZooCage(models.Model): + _name = 'zoo.cage' + _description = 'Zoo Cage' + _order = 'name' + + name = fields.Char(string='Cage Name', required=True) + capacity = fields.Integer(string='Capacity', help='Maximum number of animals') + location = fields.Char(string='Location') + cage_type = fields.Selection([ + ('indoor', 'Indoor'), + ('outdoor', 'Outdoor'), + ('aquarium', 'Aquarium'), + ('aviary', 'Aviary'), + ], string='Cage Type', default='outdoor') + area = fields.Float(string='Area (m²)', help='Cage area in square meters') + description = fields.Text(string='Description') + active = fields.Boolean(string='Active', default=True) diff --git a/addons/zoo/models/zoo_creature.py b/addons/zoo/models/zoo_creature.py index 65bdbe7..6f7e1c7 100644 --- a/addons/zoo/models/zoo_creature.py +++ b/addons/zoo/models/zoo_creature.py @@ -11,6 +11,15 @@ class ZooCreature(models.Model): ('water', 'Water'), ('ground', 'Ground'), ('sky', 'Sky'), + ('ocean', 'Ocean'), + ('forest', 'Forest'), + ('desert', 'Desert'), + ('mountain', 'Mountain'), + ('river', 'River'), + ('lake', 'Lake'), + ('pond', 'Pond'), + ('sea', 'Sea'), + ('cool', 'Cool'), ], string='Environment', default='ground') is_rare = fields.Boolean('Is Rare', default=False) diff --git a/addons/zoo/security/ir.model.access.csv b/addons/zoo/security/ir.model.access.csv index 9207661..41093a4 100644 --- a/addons/zoo/security/ir.model.access.csv +++ b/addons/zoo/security/ir.model.access.csv @@ -1,3 +1,4 @@ id,name,model_id:id,group_id:id,perm_read,perm_write,perm_create,perm_unlink access_zoo_animal,access_zoo_animal,model_zoo_animal,base.group_user,1,1,1,1 -access_zoo_creature,access_zoo_creature,model_zoo_creature,base.group_user,1,1,1,1 \ No newline at end of file +access_zoo_creature,access_zoo_creature,model_zoo_creature,base.group_user,1,1,1,1 +access_zoo_cage,access_zoo_cage,model_zoo_cage,base.group_user,1,1,1,1 \ No newline at end of file diff --git a/addons/zoo/views/zoo_animal_views.xml b/addons/zoo/views/zoo_animal_views.xml index a5fb2f3..392dca9 100644 --- a/addons/zoo/views/zoo_animal_views.xml +++ b/addons/zoo/views/zoo_animal_views.xml @@ -1,6 +1,7 @@ + zoo.animal.form.view zoo.animal @@ -93,6 +94,7 @@ + zoo.animal.list.view zoo.animal @@ -100,21 +102,22 @@ - + - - - - + + + + + Zoo Animal ir.actions.act_window @@ -124,6 +127,7 @@ (0, 0, {'view_mode': 'form', 'view_id': ref('zoo_animal_form_view')})]"/> + + + + + + zoo.cage.form.view + zoo.cage + +
+ +
+
+ + + + + + + + + + + + + + + + +
+
+
+
+ + + + zoo.cage.list.view + zoo.cage + + + + + + + + + + + + + + + Cage + ir.actions.act_window + zoo.cage + + + + + + +
+