From 6b2b0d54ff4132a6c5ad233972ed434373de4731 Mon Sep 17 00:00:00 2001 From: Maxime Chambreuil Date: Tue, 6 Oct 2020 15:51:38 -0500 Subject: [PATCH] [ADD] animal_owner --- animal_owner/README.rst | 21 ++++++++ animal_owner/__init__.py | 3 ++ animal_owner/__manifest__.py | 16 +++++++ animal_owner/models/__init__.py | 3 ++ animal_owner/models/animal.py | 11 +++++ animal_owner/models/res_partner.py | 27 +++++++++++ animal_owner/readme/CONTRIBUTORS.rst | 3 ++ animal_owner/readme/DESCRIPTION.rst | 1 + animal_owner/readme/USAGE.rst | 3 ++ animal_owner/static/description/icon.png | Bin 0 -> 28332 bytes animal_owner/views/animal.xml | 58 +++++++++++++++++++++++ animal_owner/views/res_partner.xml | 22 +++++++++ 12 files changed, 168 insertions(+) create mode 100644 animal_owner/README.rst create mode 100644 animal_owner/__init__.py create mode 100644 animal_owner/__manifest__.py create mode 100644 animal_owner/models/__init__.py create mode 100644 animal_owner/models/animal.py create mode 100644 animal_owner/models/res_partner.py create mode 100644 animal_owner/readme/CONTRIBUTORS.rst create mode 100644 animal_owner/readme/DESCRIPTION.rst create mode 100644 animal_owner/readme/USAGE.rst create mode 100644 animal_owner/static/description/icon.png create mode 100644 animal_owner/views/animal.xml create mode 100644 animal_owner/views/res_partner.xml diff --git a/animal_owner/README.rst b/animal_owner/README.rst new file mode 100644 index 000000000..21cd7854d --- /dev/null +++ b/animal_owner/README.rst @@ -0,0 +1,21 @@ +**This file is going to be generated by oca-gen-addon-readme.** + +*Manual changes will be overwritten.* + +Please provide content in the ``readme`` directory: + +* **DESCRIPTION.rst** (required) +* INSTALL.rst (optional) +* CONFIGURE.rst (optional) +* **USAGE.rst** (optional, highly recommended) +* DEVELOP.rst (optional) +* ROADMAP.rst (optional) +* HISTORY.rst (optional, recommended) +* **CONTRIBUTORS.rst** (optional, highly recommended) +* CREDITS.rst (optional) + +Content of this README will also be drawn from the addon manifest, +from keys such as name, authors, maintainers, development_status, +and license. + +A good, one sentence summary in the manifest is also highly recommended. diff --git a/animal_owner/__init__.py b/animal_owner/__init__.py new file mode 100644 index 000000000..3b2a810b9 --- /dev/null +++ b/animal_owner/__init__.py @@ -0,0 +1,3 @@ +# Copyright (C) 2020 Open Source Integrators +# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). +from . import models diff --git a/animal_owner/__manifest__.py b/animal_owner/__manifest__.py new file mode 100644 index 000000000..dcee2735f --- /dev/null +++ b/animal_owner/__manifest__.py @@ -0,0 +1,16 @@ +# Copyright (C) 2020 Open Source Integrators +# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). +{ + "name": "Animal Owner", + "version": "12.0.1.0.0", + "license": "AGPL-3", + "summary": "Add owner to the animal", + "author": "Open Source Integrators, Odoo Community Association (OCA)", + "maintainer": "Open Source Integrators", + "website": "https://github.com/OCA/partner-contact", + "depends": ["animal"], + "data": ["views/animal.xml", "views/res_partner.xml"], + "application": False, + "development_status": "Beta", + "maintainers": ["max3903"], +} diff --git a/animal_owner/models/__init__.py b/animal_owner/models/__init__.py new file mode 100644 index 000000000..4324c4e96 --- /dev/null +++ b/animal_owner/models/__init__.py @@ -0,0 +1,3 @@ +# Copyright (C) 2020 Open Source Integrators +# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). +from . import animal, res_partner diff --git a/animal_owner/models/animal.py b/animal_owner/models/animal.py new file mode 100644 index 000000000..3bc4e8461 --- /dev/null +++ b/animal_owner/models/animal.py @@ -0,0 +1,11 @@ +# Copyright (C) 2020 Open Source Integrators +# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). +from odoo import fields, models + + +class Animal(models.Model): + _inherit = "animal" + + partner_id = fields.Many2one( + "res.partner", string="Owner", index=True, track_visibility="onchange" + ) diff --git a/animal_owner/models/res_partner.py b/animal_owner/models/res_partner.py new file mode 100644 index 000000000..66945cb70 --- /dev/null +++ b/animal_owner/models/res_partner.py @@ -0,0 +1,27 @@ +# Copyright (C) 2020 Open Source Integrators +# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). +from odoo import api, fields, models + + +class ResPartner(models.Model): + _inherit = "res.partner" + + @api.depends("animal_ids") + def _compute_animal_count(self): + for rec in self: + rec.animal_count = len(rec.animal_ids) + + animal_ids = fields.One2many("animal", "partner_id", string="Animals") + animal_count = fields.Integer( + compute=_compute_animal_count, string="Number of Animals", store=True + ) + + @api.multi + def action_view_animals(self): + action = self.env.ref("animal.action_animal").read()[0] + if self.animal_count > 1: + action["domain"] = [("id", "in", self.animal_ids.ids)] + else: + action["views"] = [(self.env.ref("animal.view_animal_form").id, "form")] + action["res_id"] = self.animal_ids and self.animal_ids.ids[0] or False + return action diff --git a/animal_owner/readme/CONTRIBUTORS.rst b/animal_owner/readme/CONTRIBUTORS.rst new file mode 100644 index 000000000..cddff22dc --- /dev/null +++ b/animal_owner/readme/CONTRIBUTORS.rst @@ -0,0 +1,3 @@ +* Open Source Integrators + + * Maxime Chambreuil diff --git a/animal_owner/readme/DESCRIPTION.rst b/animal_owner/readme/DESCRIPTION.rst new file mode 100644 index 000000000..539fc224c --- /dev/null +++ b/animal_owner/readme/DESCRIPTION.rst @@ -0,0 +1 @@ +This module allows you to store the owner of a pet. diff --git a/animal_owner/readme/USAGE.rst b/animal_owner/readme/USAGE.rst new file mode 100644 index 000000000..dbb34ff8c --- /dev/null +++ b/animal_owner/readme/USAGE.rst @@ -0,0 +1,3 @@ +* Go to Animals +* Create or select an animal +* Select his owner diff --git a/animal_owner/static/description/icon.png b/animal_owner/static/description/icon.png new file mode 100644 index 0000000000000000000000000000000000000000..85d01763f361c30600d58dc27612405c1827fa00 GIT binary patch literal 28332 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 XbJh3;7b);{a{ydLTe<9sW!V1%857^I literal 0 HcmV?d00001 diff --git a/animal_owner/views/animal.xml b/animal_owner/views/animal.xml new file mode 100644 index 000000000..6968c30cf --- /dev/null +++ b/animal_owner/views/animal.xml @@ -0,0 +1,58 @@ + + + + + view.animal.owner.tree + animal + + + + + + + + + + + view.animal.owner.form + animal + + + + + + + + + + + view.animal.owner.kanban + animal + + + + + + +
  • +
    +
    +
    + + + + view.animal.owner.search + animal + + + + + + + + + + + +
    diff --git a/animal_owner/views/res_partner.xml b/animal_owner/views/res_partner.xml new file mode 100644 index 000000000..b7a1c1495 --- /dev/null +++ b/animal_owner/views/res_partner.xml @@ -0,0 +1,22 @@ + + + + + view.partner.animal.owner.form + res.partner + + + + + + + +