From ab97cbd9e59c301b012ae8acac2d229457d0f068 Mon Sep 17 00:00:00 2001 From: Denis Roussel Date: Tue, 6 Aug 2019 11:15:28 +0200 Subject: [PATCH 01/19] [12.0][ADD] attachment_category --- attachment_category/README.rst | 78 ++++ attachment_category/__init__.py | 1 + attachment_category/__manifest__.py | 19 + attachment_category/models/__init__.py | 2 + attachment_category/models/ir_attachment.py | 18 + .../models/ir_attachment_category.py | 62 +++ attachment_category/readme/CONTRIBUTORS.rst | 1 + attachment_category/readme/DESCRIPTION.rst | 1 + attachment_category/readme/USAGE.rst | 1 + .../security/ir_attachment_category.xml | 17 + .../static/description/icon.png | Bin 0 -> 9455 bytes .../static/description/index.html | 426 ++++++++++++++++++ attachment_category/views/ir_attachment.xml | 40 ++ .../views/ir_attachment_category.xml | 71 +++ 14 files changed, 737 insertions(+) create mode 100644 attachment_category/README.rst create mode 100644 attachment_category/__init__.py create mode 100644 attachment_category/__manifest__.py create mode 100644 attachment_category/models/__init__.py create mode 100644 attachment_category/models/ir_attachment.py create mode 100644 attachment_category/models/ir_attachment_category.py create mode 100644 attachment_category/readme/CONTRIBUTORS.rst create mode 100644 attachment_category/readme/DESCRIPTION.rst create mode 100644 attachment_category/readme/USAGE.rst create mode 100644 attachment_category/security/ir_attachment_category.xml create mode 100644 attachment_category/static/description/icon.png create mode 100644 attachment_category/static/description/index.html create mode 100644 attachment_category/views/ir_attachment.xml create mode 100644 attachment_category/views/ir_attachment_category.xml diff --git a/attachment_category/README.rst b/attachment_category/README.rst new file mode 100644 index 00000000000..257d8e1f946 --- /dev/null +++ b/attachment_category/README.rst @@ -0,0 +1,78 @@ +================== +Atachment Category +================== + +.. !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! + !! This file is generated by oca-gen-addon-readme !! + !! changes will be overwritten. !! + !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! + +.. |badge1| image:: https://img.shields.io/badge/maturity-Beta-yellow.png + :target: https://odoo-community.org/page/development-status + :alt: Beta +.. |badge2| image:: https://img.shields.io/badge/licence-AGPL--3-blue.png + :target: http://www.gnu.org/licenses/agpl-3.0-standalone.html + :alt: License: AGPL-3 +.. |badge3| image:: https://img.shields.io/badge/github-OCA%2Fknowledge-lightgray.png?logo=github + :target: https://github.com/OCA/knowledge/tree/12.0/attachment_category + :alt: OCA/knowledge +.. |badge4| image:: https://img.shields.io/badge/weblate-Translate%20me-F47D42.png + :target: https://translation.odoo-community.org/projects/knowledge-12-0/knowledge-12-0-attachment_category + :alt: Translate me on Weblate +.. |badge5| image:: https://img.shields.io/badge/runbot-Try%20me-875A7B.png + :target: https://runbot.odoo-community.org/runbot/118/12.0 + :alt: Try me on Runbot + +|badge1| |badge2| |badge3| |badge4| |badge5| + +This module adds a document category to help classification. + +**Table of contents** + +.. contents:: + :local: + +Usage +===== + +* Go to Attachments, and set categories as tags. + +Bug Tracker +=========== + +Bugs are tracked on `GitHub Issues `_. +In case of trouble, please check there if your issue has already been reported. +If you spotted it first, help us smashing it by providing a detailed and welcomed +`feedback `_. + +Do not contact contributors directly about support or help with technical issues. + +Credits +======= + +Authors +~~~~~~~ + +* ACSONE SA/NV + +Contributors +~~~~~~~~~~~~ + +* Denis Roussel + +Maintainers +~~~~~~~~~~~ + +This module is maintained by the OCA. + +.. image:: https://odoo-community.org/logo.png + :alt: Odoo Community Association + :target: https://odoo-community.org + +OCA, or the Odoo Community Association, is a nonprofit organization whose +mission is to support the collaborative development of Odoo features and +promote its widespread use. + +This module is part of the `OCA/knowledge `_ project on GitHub. + +You are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute. diff --git a/attachment_category/__init__.py b/attachment_category/__init__.py new file mode 100644 index 00000000000..0650744f6bc --- /dev/null +++ b/attachment_category/__init__.py @@ -0,0 +1 @@ +from . import models diff --git a/attachment_category/__manifest__.py b/attachment_category/__manifest__.py new file mode 100644 index 00000000000..36976887e89 --- /dev/null +++ b/attachment_category/__manifest__.py @@ -0,0 +1,19 @@ +# Copyright 2020 ACSONE SA/NV +# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). + +{ + 'name': 'Atachment Category', + 'summary': """ + Adds a document category to help classification""", + 'version': '12.0.1.0.0', + 'license': 'AGPL-3', + 'author': 'ACSONE SA/NV,Odoo Community Association (OCA)', + 'depends': [ + "base", + ], + 'data': [ + 'views/ir_attachment.xml', + 'security/ir_attachment_category.xml', + 'views/ir_attachment_category.xml', + ], +} diff --git a/attachment_category/models/__init__.py b/attachment_category/models/__init__.py new file mode 100644 index 00000000000..6858a37c7f8 --- /dev/null +++ b/attachment_category/models/__init__.py @@ -0,0 +1,2 @@ +from . import ir_attachment_category +from . import ir_attachment diff --git a/attachment_category/models/ir_attachment.py b/attachment_category/models/ir_attachment.py new file mode 100644 index 00000000000..0251d80c09d --- /dev/null +++ b/attachment_category/models/ir_attachment.py @@ -0,0 +1,18 @@ +# Copyright 2020 ACSONE SA/NV +# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). + +from odoo import fields, models + + +class IrAttachment(models.Model): + + _inherit = 'ir.attachment' + + category_ids = fields.Many2many( + comodel_name="ir.attachment.category", + relation="ir_attachment_category_rel", + column1="attachment_id", + column2="category_id", + ondelete="restrict", + index=True, + ) diff --git a/attachment_category/models/ir_attachment_category.py b/attachment_category/models/ir_attachment_category.py new file mode 100644 index 00000000000..da1c392d437 --- /dev/null +++ b/attachment_category/models/ir_attachment_category.py @@ -0,0 +1,62 @@ +# Copyright 2020 ACSONE SA/NV +# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). + +from odoo import api, fields, models + + +class IrAttachmentCategory(models.Model): + + _name = 'ir.attachment.category' + _description = 'Attachment Category' + _parent_store = True + + name = fields.Char() + display_name = fields.Char( + compute="_compute_display_name", + store=True, + ) + parent_id = fields.Many2one( + "ir.attachment.category", + ) + parent_path = fields.Char(index=True) + attachment_ids = fields.Many2many( + compute="_compute_attachment_count", + comodel_name="ir.attachment" + ) + attachment_count = fields.Integer( + compute="_compute_attachment_count", + ) + + @api.depends('name', 'parent_id.display_name') + def _compute_display_name(self): + """ + + :return: + """ + for category in self: + if category.parent_id.display_name: + category.display_name = '%s/%s' % ( + category.parent_id.display_name, category.name) + else: + category.display_name = category.name + + @api.depends() + def _compute_attachment_count(self): + category_obj = self.env["ir.attachment.category"] + attachment_obj = self.env["ir.attachment"] + for category in self: + child_categories = category_obj.search([ + ("id", "child_of", category.id)]) + attachment_ids = attachment_obj.search([ + ("category_ids", "in", child_categories.ids)]) + category.attachment_ids = attachment_ids + category.attachment_count = len(attachment_ids) + + def action_attachment_view(self): + self.ensure_one() + action = self.env.ref('base.action_attachment').read()[0] + action["domain"] = [("category_ids", "child_of", self.id)] + context = self.env.context.copy() + context.update({"default_category_ids": [self.id]}) + action["context"] = context + return action diff --git a/attachment_category/readme/CONTRIBUTORS.rst b/attachment_category/readme/CONTRIBUTORS.rst new file mode 100644 index 00000000000..9179ee4b8fa --- /dev/null +++ b/attachment_category/readme/CONTRIBUTORS.rst @@ -0,0 +1 @@ +* Denis Roussel diff --git a/attachment_category/readme/DESCRIPTION.rst b/attachment_category/readme/DESCRIPTION.rst new file mode 100644 index 00000000000..60554088563 --- /dev/null +++ b/attachment_category/readme/DESCRIPTION.rst @@ -0,0 +1 @@ +This module adds a document category to help classification. diff --git a/attachment_category/readme/USAGE.rst b/attachment_category/readme/USAGE.rst new file mode 100644 index 00000000000..2ca9eb6c3b1 --- /dev/null +++ b/attachment_category/readme/USAGE.rst @@ -0,0 +1 @@ +* Go to Attachments, and set categories as tags. diff --git a/attachment_category/security/ir_attachment_category.xml b/attachment_category/security/ir_attachment_category.xml new file mode 100644 index 00000000000..ba18907c327 --- /dev/null +++ b/attachment_category/security/ir_attachment_category.xml @@ -0,0 +1,17 @@ + + + + + + + Attachment Category User + + + + + + + + + diff --git a/attachment_category/static/description/icon.png b/attachment_category/static/description/icon.png new file mode 100644 index 0000000000000000000000000000000000000000..3a0328b516c4980e8e44cdb63fd945757ddd132d GIT binary patch literal 9455 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 z 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 Xviia!U7SGha1wx#SCgwmn*{w2TRX*I literal 0 HcmV?d00001 diff --git a/attachment_category/static/description/index.html b/attachment_category/static/description/index.html new file mode 100644 index 00000000000..e8bb87d07f8 --- /dev/null +++ b/attachment_category/static/description/index.html @@ -0,0 +1,426 @@ + + + + + + +Atachment Category + + + +
+

Atachment Category

+ + +

Beta License: AGPL-3 OCA/knowledge Translate me on Weblate Try me on Runbot

+

This module adds a document category to help classification.

+

Table of contents

+ +
+

Usage

+
    +
  • Go to Attachments, and set categories as tags.
  • +
+
+
+

Bug Tracker

+

Bugs are tracked on GitHub Issues. +In case of trouble, please check there if your issue has already been reported. +If you spotted it first, help us smashing it by providing a detailed and welcomed +feedback.

+

Do not contact contributors directly about support or help with technical issues.

+
+
+

Credits

+
+

Authors

+
    +
  • ACSONE SA/NV
  • +
+
+
+

Contributors

+ +
+
+

Maintainers

+

This module is maintained by the OCA.

+Odoo Community Association +

OCA, or the Odoo Community Association, is a nonprofit organization whose +mission is to support the collaborative development of Odoo features and +promote its widespread use.

+

This module is part of the OCA/knowledge project on GitHub.

+

You are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute.

+
+
+
+ + diff --git a/attachment_category/views/ir_attachment.xml b/attachment_category/views/ir_attachment.xml new file mode 100644 index 00000000000..43b78b0a4d2 --- /dev/null +++ b/attachment_category/views/ir_attachment.xml @@ -0,0 +1,40 @@ + + + + + + + ir.attachment.form (in attachment_category) + ir.attachment + + + + + + + + + + ir.attachment.search (in attachment_category) + ir.attachment + + + + + + + + + + ir.attachment.tree (in attachment_category) + ir.attachment + + + + + + + + + diff --git a/attachment_category/views/ir_attachment_category.xml b/attachment_category/views/ir_attachment_category.xml new file mode 100644 index 00000000000..3392a33030d --- /dev/null +++ b/attachment_category/views/ir_attachment_category.xml @@ -0,0 +1,71 @@ + + + + + + + ir.attachment.category.form (in document_category) + ir.attachment.category + +
+
+ +
+ +
+ +
+ + + + +
+
+
+
+ + + ir.attachment.category.search (in document_category) + ir.attachment.category + + + + + + + + + ir.attachment.category.tree (in document_category) + ir.attachment.category + + + + + + + + + Attachment Categories + ir.attachment.category + tree,form + +

+ Create a new document +

+

+ Also you will find here all the related document categories. +

+
+
+ + + Attachment Categories + + + + + +
From 2a97b9f504782bb5ad6067c0a870713758d2acd2 Mon Sep 17 00:00:00 2001 From: Denis Roussel Date: Sun, 18 Oct 2020 14:59:51 +0200 Subject: [PATCH 02/19] [IMP] : black, isort, prettier --- attachment_category/__manifest__.py | 22 +++++----- attachment_category/models/ir_attachment.py | 2 +- .../models/ir_attachment_category.py | 38 ++++++++---------- .../security/ir_attachment_category.xml | 17 ++++---- attachment_category/views/ir_attachment.xml | 19 ++++----- .../views/ir_attachment_category.xml | 40 +++++++++---------- 6 files changed, 60 insertions(+), 78 deletions(-) diff --git a/attachment_category/__manifest__.py b/attachment_category/__manifest__.py index 36976887e89..54b7f3760e3 100644 --- a/attachment_category/__manifest__.py +++ b/attachment_category/__manifest__.py @@ -2,18 +2,16 @@ # License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). { - 'name': 'Atachment Category', - 'summary': """ + "name": "Atachment Category", + "summary": """ Adds a document category to help classification""", - 'version': '12.0.1.0.0', - 'license': 'AGPL-3', - 'author': 'ACSONE SA/NV,Odoo Community Association (OCA)', - 'depends': [ - "base", - ], - 'data': [ - 'views/ir_attachment.xml', - 'security/ir_attachment_category.xml', - 'views/ir_attachment_category.xml', + "version": "12.0.1.0.0", + "license": "AGPL-3", + "author": "ACSONE SA/NV,Odoo Community Association (OCA)", + "depends": ["base",], + "data": [ + "views/ir_attachment.xml", + "security/ir_attachment_category.xml", + "views/ir_attachment_category.xml", ], } diff --git a/attachment_category/models/ir_attachment.py b/attachment_category/models/ir_attachment.py index 0251d80c09d..5c6f144f196 100644 --- a/attachment_category/models/ir_attachment.py +++ b/attachment_category/models/ir_attachment.py @@ -6,7 +6,7 @@ class IrAttachment(models.Model): - _inherit = 'ir.attachment' + _inherit = "ir.attachment" category_ids = fields.Many2many( comodel_name="ir.attachment.category", diff --git a/attachment_category/models/ir_attachment_category.py b/attachment_category/models/ir_attachment_category.py index da1c392d437..dea599987b8 100644 --- a/attachment_category/models/ir_attachment_category.py +++ b/attachment_category/models/ir_attachment_category.py @@ -6,28 +6,20 @@ class IrAttachmentCategory(models.Model): - _name = 'ir.attachment.category' - _description = 'Attachment Category' + _name = "ir.attachment.category" + _description = "Attachment Category" _parent_store = True name = fields.Char() - display_name = fields.Char( - compute="_compute_display_name", - store=True, - ) - parent_id = fields.Many2one( - "ir.attachment.category", - ) + display_name = fields.Char(compute="_compute_display_name", store=True,) + parent_id = fields.Many2one("ir.attachment.category",) parent_path = fields.Char(index=True) attachment_ids = fields.Many2many( - compute="_compute_attachment_count", - comodel_name="ir.attachment" - ) - attachment_count = fields.Integer( - compute="_compute_attachment_count", + compute="_compute_attachment_count", comodel_name="ir.attachment" ) + attachment_count = fields.Integer(compute="_compute_attachment_count",) - @api.depends('name', 'parent_id.display_name') + @api.depends("name", "parent_id.display_name") def _compute_display_name(self): """ @@ -35,8 +27,10 @@ def _compute_display_name(self): """ for category in self: if category.parent_id.display_name: - category.display_name = '%s/%s' % ( - category.parent_id.display_name, category.name) + category.display_name = "{}/{}".format( + category.parent_id.display_name, + category.name, + ) else: category.display_name = category.name @@ -45,16 +39,16 @@ def _compute_attachment_count(self): category_obj = self.env["ir.attachment.category"] attachment_obj = self.env["ir.attachment"] for category in self: - child_categories = category_obj.search([ - ("id", "child_of", category.id)]) - attachment_ids = attachment_obj.search([ - ("category_ids", "in", child_categories.ids)]) + child_categories = category_obj.search([("id", "child_of", category.id)]) + attachment_ids = attachment_obj.search( + [("category_ids", "in", child_categories.ids)] + ) category.attachment_ids = attachment_ids category.attachment_count = len(attachment_ids) def action_attachment_view(self): self.ensure_one() - action = self.env.ref('base.action_attachment').read()[0] + action = self.env.ref("base.action_attachment").read()[0] action["domain"] = [("category_ids", "child_of", self.id)] context = self.env.context.copy() context.update({"default_category_ids": [self.id]}) diff --git a/attachment_category/security/ir_attachment_category.xml b/attachment_category/security/ir_attachment_category.xml index ba18907c327..354d0f546c9 100644 --- a/attachment_category/security/ir_attachment_category.xml +++ b/attachment_category/security/ir_attachment_category.xml @@ -1,17 +1,14 @@ - + - - Attachment Category User - - - - - - + + + + + + - diff --git a/attachment_category/views/ir_attachment.xml b/attachment_category/views/ir_attachment.xml index 43b78b0a4d2..c61f047a562 100644 --- a/attachment_category/views/ir_attachment.xml +++ b/attachment_category/views/ir_attachment.xml @@ -1,40 +1,35 @@ - + - - ir.attachment.form (in attachment_category) ir.attachment - + - + - ir.attachment.search (in attachment_category) ir.attachment - + - + - ir.attachment.tree (in attachment_category) ir.attachment - + - + - diff --git a/attachment_category/views/ir_attachment_category.xml b/attachment_category/views/ir_attachment_category.xml index 3392a33030d..371355295af 100644 --- a/attachment_category/views/ir_attachment_category.xml +++ b/attachment_category/views/ir_attachment_category.xml @@ -1,9 +1,7 @@ - + - - ir.attachment.category.form (in document_category) ir.attachment.category @@ -13,59 +11,59 @@ -
-
- - + +
- ir.attachment.category.search (in document_category) ir.attachment.category - + - ir.attachment.category.tree (in document_category) ir.attachment.category - + - Attachment Categories ir.attachment.category tree,form -

+

Create a new document

-

+

Also you will find here all the related document categories.

-
+
- Attachment Categories - - - + + + -
From 6cd91306c6358cb25a82a35a582d69e176dc9475 Mon Sep 17 00:00:00 2001 From: Denis Roussel Date: Thu, 27 Feb 2020 16:16:20 +0100 Subject: [PATCH 03/19] [13.0][MIG] attachment_category" --- attachment_category/README.rst | 10 +++++----- attachment_category/__manifest__.py | 4 ++-- attachment_category/models/ir_attachment_category.py | 3 +-- attachment_category/static/description/index.html | 8 ++++---- 4 files changed, 12 insertions(+), 13 deletions(-) diff --git a/attachment_category/README.rst b/attachment_category/README.rst index 257d8e1f946..14af0a2f9bd 100644 --- a/attachment_category/README.rst +++ b/attachment_category/README.rst @@ -14,13 +14,13 @@ Atachment Category :target: http://www.gnu.org/licenses/agpl-3.0-standalone.html :alt: License: AGPL-3 .. |badge3| image:: https://img.shields.io/badge/github-OCA%2Fknowledge-lightgray.png?logo=github - :target: https://github.com/OCA/knowledge/tree/12.0/attachment_category + :target: https://github.com/OCA/knowledge/tree/13.0/attachment_category :alt: OCA/knowledge .. |badge4| image:: https://img.shields.io/badge/weblate-Translate%20me-F47D42.png - :target: https://translation.odoo-community.org/projects/knowledge-12-0/knowledge-12-0-attachment_category + :target: https://translation.odoo-community.org/projects/knowledge-13-0/knowledge-13-0-attachment_category :alt: Translate me on Weblate .. |badge5| image:: https://img.shields.io/badge/runbot-Try%20me-875A7B.png - :target: https://runbot.odoo-community.org/runbot/118/12.0 + :target: https://runbot.odoo-community.org/runbot/118/13.0 :alt: Try me on Runbot |badge1| |badge2| |badge3| |badge4| |badge5| @@ -43,7 +43,7 @@ Bug Tracker Bugs are tracked on `GitHub Issues `_. In case of trouble, please check there if your issue has already been reported. If you spotted it first, help us smashing it by providing a detailed and welcomed -`feedback `_. +`feedback `_. Do not contact contributors directly about support or help with technical issues. @@ -73,6 +73,6 @@ OCA, or the Odoo Community Association, is a nonprofit organization whose mission is to support the collaborative development of Odoo features and promote its widespread use. -This module is part of the `OCA/knowledge `_ project on GitHub. +This module is part of the `OCA/knowledge `_ project on GitHub. You are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute. diff --git a/attachment_category/__manifest__.py b/attachment_category/__manifest__.py index 54b7f3760e3..5a09a1171bc 100644 --- a/attachment_category/__manifest__.py +++ b/attachment_category/__manifest__.py @@ -5,10 +5,10 @@ "name": "Atachment Category", "summary": """ Adds a document category to help classification""", - "version": "12.0.1.0.0", + "version": "13.0.1.0.0", "license": "AGPL-3", "author": "ACSONE SA/NV,Odoo Community Association (OCA)", - "depends": ["base",], + "depends": ["base"], "data": [ "views/ir_attachment.xml", "security/ir_attachment_category.xml", diff --git a/attachment_category/models/ir_attachment_category.py b/attachment_category/models/ir_attachment_category.py index dea599987b8..e2671fe0c0b 100644 --- a/attachment_category/models/ir_attachment_category.py +++ b/attachment_category/models/ir_attachment_category.py @@ -28,8 +28,7 @@ def _compute_display_name(self): for category in self: if category.parent_id.display_name: category.display_name = "{}/{}".format( - category.parent_id.display_name, - category.name, + category.parent_id.display_name, category.name, ) else: category.display_name = category.name diff --git a/attachment_category/static/description/index.html b/attachment_category/static/description/index.html index e8bb87d07f8..f6e343da714 100644 --- a/attachment_category/static/description/index.html +++ b/attachment_category/static/description/index.html @@ -3,7 +3,7 @@ - + Atachment Category -
-

Atachment Category

+
+

Attachment Category

-

Beta License: AGPL-3 OCA/knowledge Translate me on Weblate Try me on Runboat

+

Beta License: AGPL-3 OCA/knowledge Translate me on Weblate Try me on Runboat

This module adds a document category to help classification.

Table of contents

@@ -395,7 +395,7 @@

Bug Tracker

Bugs are tracked on GitHub Issues. In case of trouble, please check there if your issue has already been reported. If you spotted it first, help us to smash it by providing a detailed and welcomed -feedback.

+feedback.

Do not contact contributors directly about support or help with technical issues.

@@ -421,7 +421,7 @@

Maintainers

OCA, or the Odoo Community Association, is a nonprofit organization whose mission is to support the collaborative development of Odoo features and promote its widespread use.

-

This module is part of the OCA/knowledge project on GitHub.

+

This module is part of the OCA/knowledge project on GitHub.

You are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute.

diff --git a/attachment_category/views/ir_attachment_category.xml b/attachment_category/views/ir_attachment_category.xml index 51c358d0772..6f2fdcbf89a 100644 --- a/attachment_category/views/ir_attachment_category.xml +++ b/attachment_category/views/ir_attachment_category.xml @@ -42,15 +42,15 @@ ir.attachment.category.tree (in document_category) ir.attachment.category - + - + Attachment Categories ir.attachment.category - tree,form + list,form

Create a new document

Also you will find here all the related document categories.