From 44645e7c70c4ba02adef87714766d72400dab8f4 Mon Sep 17 00:00:00 2001 From: mtpc4s9 Date: Fri, 21 Nov 2025 21:39:24 +0700 Subject: [PATCH] =?UTF-8?q?Th=C3=AAm=2002=20models:=201.=20Health=20Record?= =?UTF-8?q?s=202.=20Diet=20Plan:=20embedded=20Diet=20line?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- addons/zoo/__manifest__.py | 1 + addons/zoo/models/__init__.py | 3 +- .../__pycache__/__init__.cpython-312.pyc | Bin 211 -> 243 bytes .../__pycache__/zoo_cage.cpython-312.pyc | Bin 0 -> 1306 bytes .../__pycache__/zoo_creature.cpython-312.pyc | Bin 1118 -> 1262 bytes addons/zoo/models/zoo_cage.py | 20 +++++ addons/zoo/models/zoo_creature.py | 9 +++ addons/zoo/security/ir.model.access.csv | 3 +- addons/zoo/views/zoo_animal_views.xml | 14 ++-- addons/zoo/views/zoo_cage_views.xml | 71 ++++++++++++++++++ 10 files changed, 114 insertions(+), 7 deletions(-) create mode 100644 addons/zoo/models/__pycache__/zoo_cage.cpython-312.pyc create mode 100644 addons/zoo/models/zoo_cage.py create mode 100644 addons/zoo/views/zoo_cage_views.xml 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 165872ca4d7c05e1713c484b3961a1ee263e06e6..87878ab712ccb86e464a26bb5133a8e15333bcf1 100644 GIT binary patch delta 112 zcmcc2_?eOSG%qg~0}z}MlF#&-$ScXHF;QJsAcY}?Ifo&aIf|K)p^`C%v?=nc-WsthZAXdZy G6aoN)h8Iu( delta 80 zcmey&c$ty+G%qg~0}vGNm(4Vu$ScVxGf`cZrIJ~bWnzdjkDn&zN%0Ix4{@DLz?lmLW^tAwhnhMKD>Kn33dq}~Te!^*aGI%P^{Y_D^;;i$}v6Y57>%%b>q>QjuEwG11u?kCOG$5-GTKTJbA zO2eNpwaKOpBR_;e?5H%)D`NUh95k49nbcw8lgLq|+0jK{KSG31X0FMZTXG~#q$zhb z1Kei8+bN`e8Zv8XfP^pH@gZ$8b4kvFk~f+SOshQYQT80dn=lQMRNUnyilKcreENse znvfkrVelh67ICp1;sn!}6<2Uvr+!0}%j4G*e+RESW6bhAu{)l}3ZBRBX&MMz@;vSx z3|0(D;YKtZ!y^=7N_Dv(%QqpV;z6+7T9n`|Oqo?5>?gB=!9KD4_c*{jH?JWt4#`V+ zZ_HQ?2uzqRDrfozzLT)xaH`xzLIMnV-B8y3J9y1Afp=%;!YG;JbP8u6LL`dk`03AO zuT4NtSU3W~T6LELMzaqDqiob#xSHzE!wKXl4q{|FP@2th_6u+jQb5*?L g_!Jk1nxZH#!PIjw^+vBM3%i?pK__?%IF!!+0T+E#9{>OV literal 0 HcmV?d00001 diff --git a/addons/zoo/models/__pycache__/zoo_creature.cpython-312.pyc b/addons/zoo/models/__pycache__/zoo_creature.cpython-312.pyc index 2f0e94299a6a8731af48c648f9abade0d0fa4b86..12edf9a9c572e441420f163a3a64c8ca32830c1c 100644 GIT binary patch delta 275 zcmcb|@s5-4G%qg~0}!|f$!GdAZ{$16$jCGK4x?VZCetm}{N&Wcyj!gPAPUH5OUo}x zEiSpm<_4xgA}OiGsYO5$7cdPJ;mFM|%_~XF%)7!D#|QNExN@T1fqa^mYl@w z)LSe*KoZ0&$j?i;#S#D{fjs8o)WloNg2AbYAgSd1{G3}X&OmZ97n2dA=44wY7e(ZFZ}9#gGkFHH2BXd7gUmrv)<9ns*?hyVZp 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 + + + + + + +
+