diff --git a/addons_extensions/one2many_search_widget/__init__.py b/addons_extensions/one2many_search_widget/__init__.py new file mode 100755 index 000000000..759bba5d7 --- /dev/null +++ b/addons_extensions/one2many_search_widget/__init__.py @@ -0,0 +1,21 @@ +# -*- coding: utf-8 -*- +############################################################################### +# +# Cybrosys Technologies Pvt. Ltd. +# +# Copyright (C) 2025-TODAY Cybrosys Technologies() +# Author: Cybrosys Techno Solutions() +# +# You can modify it under the terms of the GNU AFFERO +# GENERAL PUBLIC LICENSE (AGPL v3), Version 3. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU AFFERO GENERAL PUBLIC LICENSE (AGPL v3) for more details. +# +# You should have received a copy of the GNU LESSER GENERAL PUBLIC LICENSE +# (AGPL v3) along with this program. +# If not, see . +# +############################################################################### diff --git a/addons_extensions/one2many_search_widget/__manifest__.py b/addons_extensions/one2many_search_widget/__manifest__.py new file mode 100755 index 000000000..e917d4bbd --- /dev/null +++ b/addons_extensions/one2many_search_widget/__manifest__.py @@ -0,0 +1,46 @@ +# -*- coding: utf-8 -*- +############################################################################### +# +# Cybrosys Technologies Pvt. Ltd. +# +# Copyright (C) 2025-TODAY Cybrosys Technologies() +# Author: Cybrosys Techno Solutions() +# +# You can modify it under the terms of the GNU AFFERO +# GENERAL PUBLIC LICENSE (AGPL v3), Version 3. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU AFFERO PUBLIC LICENSE (AGPL v3) for more details. +# +# You should have received a copy of the GNU AFFERO GENERAL PUBLIC LICENSE +# (AGPL v3) along with this program. +# If not, see . +# +############################################################################### +{ + 'name': 'One2many Search Widget', + 'version': '18.0.1.0.0', + 'category': 'Extra Tools', + 'summary': 'Quick Search Feature For One2many Fields In Odoo', + 'description': """This module enables users to search for text within + One2many fields. The rows that match the search criteria will be displayed, + while others will be hidden.""", + 'author': 'Pranay', + 'company': 'FTPROTECH', + 'website': "https://www.ftprotech.in", + 'depends': ['web'], + 'assets': { + 'web.assets_backend': [ + 'one2many_search_widget/static/src/css/header.css', + 'one2many_search_widget/static/src/fields/one2manysearch/one2manysearch.js', + 'one2many_search_widget/static/src/fields/one2manysearch/one2manysearch_template.xml', + ], + }, + 'images': ['static/description/banner.jpg'], + 'license': 'AGPL-3', + 'installable': True, + 'auto_install': False, + "application": False, +} diff --git a/addons_extensions/one2many_search_widget/doc/RELEASE_NOTES.md b/addons_extensions/one2many_search_widget/doc/RELEASE_NOTES.md new file mode 100644 index 000000000..f464cd3fd --- /dev/null +++ b/addons_extensions/one2many_search_widget/doc/RELEASE_NOTES.md @@ -0,0 +1,7 @@ +## Module + +#### 11.07.2025 +#### Version 18.0.1.0.0 +##### ADD + +- Initial commit for One2many Search Widget diff --git a/addons_extensions/one2many_search_widget/static/description/assets/cybro-icon.png b/addons_extensions/one2many_search_widget/static/description/assets/cybro-icon.png new file mode 100644 index 000000000..06e73e11d Binary files /dev/null and b/addons_extensions/one2many_search_widget/static/description/assets/cybro-icon.png differ diff --git a/addons_extensions/one2many_search_widget/static/description/assets/cybro-odoo.png b/addons_extensions/one2many_search_widget/static/description/assets/cybro-odoo.png new file mode 100644 index 000000000..ed02e07a4 Binary files /dev/null and b/addons_extensions/one2many_search_widget/static/description/assets/cybro-odoo.png differ diff --git a/addons_extensions/one2many_search_widget/static/description/assets/h2.png b/addons_extensions/one2many_search_widget/static/description/assets/h2.png new file mode 100644 index 000000000..0bfc4707d Binary files /dev/null and b/addons_extensions/one2many_search_widget/static/description/assets/h2.png differ diff --git a/addons_extensions/one2many_search_widget/static/description/assets/icons/arrows-repeat.svg b/addons_extensions/one2many_search_widget/static/description/assets/icons/arrows-repeat.svg new file mode 100644 index 000000000..1d7efabc5 --- /dev/null +++ b/addons_extensions/one2many_search_widget/static/description/assets/icons/arrows-repeat.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/addons_extensions/one2many_search_widget/static/description/assets/icons/banner-1.png b/addons_extensions/one2many_search_widget/static/description/assets/icons/banner-1.png new file mode 100644 index 000000000..c180db172 Binary files /dev/null and b/addons_extensions/one2many_search_widget/static/description/assets/icons/banner-1.png differ diff --git a/addons_extensions/one2many_search_widget/static/description/assets/icons/banner-2.svg b/addons_extensions/one2many_search_widget/static/description/assets/icons/banner-2.svg new file mode 100644 index 000000000..e606d97d9 --- /dev/null +++ b/addons_extensions/one2many_search_widget/static/description/assets/icons/banner-2.svg @@ -0,0 +1,73 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/addons_extensions/one2many_search_widget/static/description/assets/icons/banner-bg.png b/addons_extensions/one2many_search_widget/static/description/assets/icons/banner-bg.png new file mode 100644 index 000000000..a8238d3c0 Binary files /dev/null and b/addons_extensions/one2many_search_widget/static/description/assets/icons/banner-bg.png differ diff --git a/addons_extensions/one2many_search_widget/static/description/assets/icons/banner-bg.svg b/addons_extensions/one2many_search_widget/static/description/assets/icons/banner-bg.svg new file mode 100644 index 000000000..b1378103e --- /dev/null +++ b/addons_extensions/one2many_search_widget/static/description/assets/icons/banner-bg.svg @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/addons_extensions/one2many_search_widget/static/description/assets/icons/banner-call.svg b/addons_extensions/one2many_search_widget/static/description/assets/icons/banner-call.svg new file mode 100644 index 000000000..96c687e81 --- /dev/null +++ b/addons_extensions/one2many_search_widget/static/description/assets/icons/banner-call.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/addons_extensions/one2many_search_widget/static/description/assets/icons/banner-mail.svg b/addons_extensions/one2many_search_widget/static/description/assets/icons/banner-mail.svg new file mode 100644 index 000000000..cbf0d158d --- /dev/null +++ b/addons_extensions/one2many_search_widget/static/description/assets/icons/banner-mail.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/addons_extensions/one2many_search_widget/static/description/assets/icons/banner-pattern.svg b/addons_extensions/one2many_search_widget/static/description/assets/icons/banner-pattern.svg new file mode 100644 index 000000000..9c1c7e101 --- /dev/null +++ b/addons_extensions/one2many_search_widget/static/description/assets/icons/banner-pattern.svg @@ -0,0 +1,343 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/addons_extensions/one2many_search_widget/static/description/assets/icons/banner-promo.svg b/addons_extensions/one2many_search_widget/static/description/assets/icons/banner-promo.svg new file mode 100644 index 000000000..d52791b11 --- /dev/null +++ b/addons_extensions/one2many_search_widget/static/description/assets/icons/banner-promo.svg @@ -0,0 +1,147 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/addons_extensions/one2many_search_widget/static/description/assets/icons/brand-pair.svg b/addons_extensions/one2many_search_widget/static/description/assets/icons/brand-pair.svg new file mode 100644 index 000000000..d8db7fc1e --- /dev/null +++ b/addons_extensions/one2many_search_widget/static/description/assets/icons/brand-pair.svg @@ -0,0 +1,41 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/addons_extensions/one2many_search_widget/static/description/assets/icons/check.png b/addons_extensions/one2many_search_widget/static/description/assets/icons/check.png new file mode 100644 index 000000000..c8e85f51d Binary files /dev/null and b/addons_extensions/one2many_search_widget/static/description/assets/icons/check.png differ diff --git a/addons_extensions/one2many_search_widget/static/description/assets/icons/chevron.png b/addons_extensions/one2many_search_widget/static/description/assets/icons/chevron.png new file mode 100644 index 000000000..2089293d6 Binary files /dev/null and b/addons_extensions/one2many_search_widget/static/description/assets/icons/chevron.png differ diff --git a/addons_extensions/one2many_search_widget/static/description/assets/icons/close-icon.svg b/addons_extensions/one2many_search_widget/static/description/assets/icons/close-icon.svg new file mode 100644 index 000000000..df8cce37a --- /dev/null +++ b/addons_extensions/one2many_search_widget/static/description/assets/icons/close-icon.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/addons_extensions/one2many_search_widget/static/description/assets/icons/cogs.png b/addons_extensions/one2many_search_widget/static/description/assets/icons/cogs.png new file mode 100644 index 000000000..95d0bad62 Binary files /dev/null and b/addons_extensions/one2many_search_widget/static/description/assets/icons/cogs.png differ diff --git a/addons_extensions/one2many_search_widget/static/description/assets/icons/collabarate-icon.svg b/addons_extensions/one2many_search_widget/static/description/assets/icons/collabarate-icon.svg new file mode 100644 index 000000000..dd4e10518 --- /dev/null +++ b/addons_extensions/one2many_search_widget/static/description/assets/icons/collabarate-icon.svg @@ -0,0 +1,3 @@ + + + diff --git a/addons_extensions/one2many_search_widget/static/description/assets/icons/consultation.png b/addons_extensions/one2many_search_widget/static/description/assets/icons/consultation.png new file mode 100644 index 000000000..8319d4baa Binary files /dev/null and b/addons_extensions/one2many_search_widget/static/description/assets/icons/consultation.png differ diff --git a/addons_extensions/one2many_search_widget/static/description/assets/icons/cybro-logo.png b/addons_extensions/one2many_search_widget/static/description/assets/icons/cybro-logo.png new file mode 100644 index 000000000..ff4b78220 Binary files /dev/null and b/addons_extensions/one2many_search_widget/static/description/assets/icons/cybro-logo.png differ diff --git a/addons_extensions/one2many_search_widget/static/description/assets/icons/down.svg b/addons_extensions/one2many_search_widget/static/description/assets/icons/down.svg new file mode 100644 index 000000000..f21c36271 --- /dev/null +++ b/addons_extensions/one2many_search_widget/static/description/assets/icons/down.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/addons_extensions/one2many_search_widget/static/description/assets/icons/ecom-black.png b/addons_extensions/one2many_search_widget/static/description/assets/icons/ecom-black.png new file mode 100644 index 000000000..a9385ff13 Binary files /dev/null and b/addons_extensions/one2many_search_widget/static/description/assets/icons/ecom-black.png differ diff --git a/addons_extensions/one2many_search_widget/static/description/assets/icons/education-black.png b/addons_extensions/one2many_search_widget/static/description/assets/icons/education-black.png new file mode 100644 index 000000000..3eb09b27b Binary files /dev/null and b/addons_extensions/one2many_search_widget/static/description/assets/icons/education-black.png differ diff --git a/addons_extensions/one2many_search_widget/static/description/assets/icons/faq.png b/addons_extensions/one2many_search_widget/static/description/assets/icons/faq.png new file mode 100644 index 000000000..4250b5b81 Binary files /dev/null and b/addons_extensions/one2many_search_widget/static/description/assets/icons/faq.png differ diff --git a/addons_extensions/one2many_search_widget/static/description/assets/icons/feature-icon.svg b/addons_extensions/one2many_search_widget/static/description/assets/icons/feature-icon.svg new file mode 100644 index 000000000..fa0ea6850 --- /dev/null +++ b/addons_extensions/one2many_search_widget/static/description/assets/icons/feature-icon.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/addons_extensions/one2many_search_widget/static/description/assets/icons/feature.png b/addons_extensions/one2many_search_widget/static/description/assets/icons/feature.png new file mode 100644 index 000000000..ac7a785c0 Binary files /dev/null and b/addons_extensions/one2many_search_widget/static/description/assets/icons/feature.png differ diff --git a/addons_extensions/one2many_search_widget/static/description/assets/icons/gear.svg b/addons_extensions/one2many_search_widget/static/description/assets/icons/gear.svg new file mode 100644 index 000000000..0cc66b6ea --- /dev/null +++ b/addons_extensions/one2many_search_widget/static/description/assets/icons/gear.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/addons_extensions/one2many_search_widget/static/description/assets/icons/hero.gif b/addons_extensions/one2many_search_widget/static/description/assets/icons/hero.gif new file mode 100644 index 000000000..380654dfe Binary files /dev/null and b/addons_extensions/one2many_search_widget/static/description/assets/icons/hero.gif differ diff --git a/addons_extensions/one2many_search_widget/static/description/assets/icons/hire-odoo.svg b/addons_extensions/one2many_search_widget/static/description/assets/icons/hire-odoo.svg new file mode 100644 index 000000000..e1ac089b0 --- /dev/null +++ b/addons_extensions/one2many_search_widget/static/description/assets/icons/hire-odoo.svg @@ -0,0 +1,12 @@ + + + + + + + + + + + + diff --git a/addons_extensions/one2many_search_widget/static/description/assets/icons/hotel-black.png b/addons_extensions/one2many_search_widget/static/description/assets/icons/hotel-black.png new file mode 100644 index 000000000..130f613be Binary files /dev/null and b/addons_extensions/one2many_search_widget/static/description/assets/icons/hotel-black.png differ diff --git a/addons_extensions/one2many_search_widget/static/description/assets/icons/license.png b/addons_extensions/one2many_search_widget/static/description/assets/icons/license.png new file mode 100644 index 000000000..a5869797e Binary files /dev/null and b/addons_extensions/one2many_search_widget/static/description/assets/icons/license.png differ diff --git a/addons_extensions/one2many_search_widget/static/description/assets/icons/life-ring-icon.svg b/addons_extensions/one2many_search_widget/static/description/assets/icons/life-ring-icon.svg new file mode 100644 index 000000000..3ae6e1d89 --- /dev/null +++ b/addons_extensions/one2many_search_widget/static/description/assets/icons/life-ring-icon.svg @@ -0,0 +1,13 @@ + + + + + + + + + + + + + diff --git a/addons_extensions/one2many_search_widget/static/description/assets/icons/lifebuoy.png b/addons_extensions/one2many_search_widget/static/description/assets/icons/lifebuoy.png new file mode 100644 index 000000000..658d56ccc Binary files /dev/null and b/addons_extensions/one2many_search_widget/static/description/assets/icons/lifebuoy.png differ diff --git a/addons_extensions/one2many_search_widget/static/description/assets/icons/mail.svg b/addons_extensions/one2many_search_widget/static/description/assets/icons/mail.svg new file mode 100644 index 000000000..1eedde695 --- /dev/null +++ b/addons_extensions/one2many_search_widget/static/description/assets/icons/mail.svg @@ -0,0 +1,3 @@ + + + diff --git a/addons_extensions/one2many_search_widget/static/description/assets/icons/manufacturing-black.png b/addons_extensions/one2many_search_widget/static/description/assets/icons/manufacturing-black.png new file mode 100644 index 000000000..697eb0e9f Binary files /dev/null and b/addons_extensions/one2many_search_widget/static/description/assets/icons/manufacturing-black.png differ diff --git a/addons_extensions/one2many_search_widget/static/description/assets/icons/notes.png b/addons_extensions/one2many_search_widget/static/description/assets/icons/notes.png new file mode 100644 index 000000000..ee5e95404 Binary files /dev/null and b/addons_extensions/one2many_search_widget/static/description/assets/icons/notes.png differ diff --git a/addons_extensions/one2many_search_widget/static/description/assets/icons/notification icon.svg b/addons_extensions/one2many_search_widget/static/description/assets/icons/notification icon.svg new file mode 100644 index 000000000..053189973 --- /dev/null +++ b/addons_extensions/one2many_search_widget/static/description/assets/icons/notification icon.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/addons_extensions/one2many_search_widget/static/description/assets/icons/odoo-consultancy.svg b/addons_extensions/one2many_search_widget/static/description/assets/icons/odoo-consultancy.svg new file mode 100644 index 000000000..e05f65bde --- /dev/null +++ b/addons_extensions/one2many_search_widget/static/description/assets/icons/odoo-consultancy.svg @@ -0,0 +1,4 @@ + + + + diff --git a/addons_extensions/one2many_search_widget/static/description/assets/icons/odoo-licencing.svg b/addons_extensions/one2many_search_widget/static/description/assets/icons/odoo-licencing.svg new file mode 100644 index 000000000..2606c88b0 --- /dev/null +++ b/addons_extensions/one2many_search_widget/static/description/assets/icons/odoo-licencing.svg @@ -0,0 +1,3 @@ + + + diff --git a/addons_extensions/one2many_search_widget/static/description/assets/icons/odoo-logo.png b/addons_extensions/one2many_search_widget/static/description/assets/icons/odoo-logo.png new file mode 100644 index 000000000..0e4d0eb5a Binary files /dev/null and b/addons_extensions/one2many_search_widget/static/description/assets/icons/odoo-logo.png differ diff --git a/addons_extensions/one2many_search_widget/static/description/assets/icons/patter.svg b/addons_extensions/one2many_search_widget/static/description/assets/icons/patter.svg new file mode 100644 index 000000000..25c9c0a8f --- /dev/null +++ b/addons_extensions/one2many_search_widget/static/description/assets/icons/patter.svg @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/addons_extensions/one2many_search_widget/static/description/assets/icons/pattern1.png b/addons_extensions/one2many_search_widget/static/description/assets/icons/pattern1.png new file mode 100644 index 000000000..09ab0fb2d Binary files /dev/null and b/addons_extensions/one2many_search_widget/static/description/assets/icons/pattern1.png differ diff --git a/addons_extensions/one2many_search_widget/static/description/assets/icons/pos-black.png b/addons_extensions/one2many_search_widget/static/description/assets/icons/pos-black.png new file mode 100644 index 000000000..97c0f90c1 Binary files /dev/null and b/addons_extensions/one2many_search_widget/static/description/assets/icons/pos-black.png differ diff --git a/addons_extensions/one2many_search_widget/static/description/assets/icons/puzzle-piece-icon.svg b/addons_extensions/one2many_search_widget/static/description/assets/icons/puzzle-piece-icon.svg new file mode 100644 index 000000000..3e9ad9373 --- /dev/null +++ b/addons_extensions/one2many_search_widget/static/description/assets/icons/puzzle-piece-icon.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/addons_extensions/one2many_search_widget/static/description/assets/icons/puzzle.png b/addons_extensions/one2many_search_widget/static/description/assets/icons/puzzle.png new file mode 100644 index 000000000..65cf854e7 Binary files /dev/null and b/addons_extensions/one2many_search_widget/static/description/assets/icons/puzzle.png differ diff --git a/addons_extensions/one2many_search_widget/static/description/assets/icons/replace-icon.svg b/addons_extensions/one2many_search_widget/static/description/assets/icons/replace-icon.svg new file mode 100644 index 000000000..d0e3a7af1 --- /dev/null +++ b/addons_extensions/one2many_search_widget/static/description/assets/icons/replace-icon.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/addons_extensions/one2many_search_widget/static/description/assets/icons/restaurant-black.png b/addons_extensions/one2many_search_widget/static/description/assets/icons/restaurant-black.png new file mode 100644 index 000000000..4a35eb939 Binary files /dev/null and b/addons_extensions/one2many_search_widget/static/description/assets/icons/restaurant-black.png differ diff --git a/addons_extensions/one2many_search_widget/static/description/assets/icons/screenshot-main.png b/addons_extensions/one2many_search_widget/static/description/assets/icons/screenshot-main.png new file mode 100644 index 000000000..575f8e676 Binary files /dev/null and b/addons_extensions/one2many_search_widget/static/description/assets/icons/screenshot-main.png differ diff --git a/addons_extensions/one2many_search_widget/static/description/assets/icons/screenshot.png b/addons_extensions/one2many_search_widget/static/description/assets/icons/screenshot.png new file mode 100644 index 000000000..cef272529 Binary files /dev/null and b/addons_extensions/one2many_search_widget/static/description/assets/icons/screenshot.png differ diff --git a/addons_extensions/one2many_search_widget/static/description/assets/icons/service-black.png b/addons_extensions/one2many_search_widget/static/description/assets/icons/service-black.png new file mode 100644 index 000000000..301ab51cb Binary files /dev/null and b/addons_extensions/one2many_search_widget/static/description/assets/icons/service-black.png differ diff --git a/addons_extensions/one2many_search_widget/static/description/assets/icons/skype-fill.svg b/addons_extensions/one2many_search_widget/static/description/assets/icons/skype-fill.svg new file mode 100644 index 000000000..c17423639 --- /dev/null +++ b/addons_extensions/one2many_search_widget/static/description/assets/icons/skype-fill.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/addons_extensions/one2many_search_widget/static/description/assets/icons/skype.png b/addons_extensions/one2many_search_widget/static/description/assets/icons/skype.png new file mode 100644 index 000000000..51b409fb3 Binary files /dev/null and b/addons_extensions/one2many_search_widget/static/description/assets/icons/skype.png differ diff --git a/addons_extensions/one2many_search_widget/static/description/assets/icons/skype.svg b/addons_extensions/one2many_search_widget/static/description/assets/icons/skype.svg new file mode 100644 index 000000000..df3dad39b --- /dev/null +++ b/addons_extensions/one2many_search_widget/static/description/assets/icons/skype.svg @@ -0,0 +1,3 @@ + + + diff --git a/addons_extensions/one2many_search_widget/static/description/assets/icons/star-1.svg b/addons_extensions/one2many_search_widget/static/description/assets/icons/star-1.svg new file mode 100644 index 000000000..7e55ab162 --- /dev/null +++ b/addons_extensions/one2many_search_widget/static/description/assets/icons/star-1.svg @@ -0,0 +1,53 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/addons_extensions/one2many_search_widget/static/description/assets/icons/star-2.svg b/addons_extensions/one2many_search_widget/static/description/assets/icons/star-2.svg new file mode 100644 index 000000000..5ae9f507a --- /dev/null +++ b/addons_extensions/one2many_search_widget/static/description/assets/icons/star-2.svg @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/addons_extensions/one2many_search_widget/static/description/assets/icons/support.png b/addons_extensions/one2many_search_widget/static/description/assets/icons/support.png new file mode 100644 index 000000000..4f18b8b82 Binary files /dev/null and b/addons_extensions/one2many_search_widget/static/description/assets/icons/support.png differ diff --git a/addons_extensions/one2many_search_widget/static/description/assets/icons/test-1 - Copy.png b/addons_extensions/one2many_search_widget/static/description/assets/icons/test-1 - Copy.png new file mode 100644 index 000000000..f6a902663 Binary files /dev/null and b/addons_extensions/one2many_search_widget/static/description/assets/icons/test-1 - Copy.png differ diff --git a/addons_extensions/one2many_search_widget/static/description/assets/icons/test-1.png b/addons_extensions/one2many_search_widget/static/description/assets/icons/test-1.png new file mode 100644 index 000000000..0908add2b Binary files /dev/null and b/addons_extensions/one2many_search_widget/static/description/assets/icons/test-1.png differ diff --git a/addons_extensions/one2many_search_widget/static/description/assets/icons/test-2.png b/addons_extensions/one2many_search_widget/static/description/assets/icons/test-2.png new file mode 100644 index 000000000..4671fe91e Binary files /dev/null and b/addons_extensions/one2many_search_widget/static/description/assets/icons/test-2.png differ diff --git a/addons_extensions/one2many_search_widget/static/description/assets/icons/trading-black.png b/addons_extensions/one2many_search_widget/static/description/assets/icons/trading-black.png new file mode 100644 index 000000000..9398ba2f1 Binary files /dev/null and b/addons_extensions/one2many_search_widget/static/description/assets/icons/trading-black.png differ diff --git a/addons_extensions/one2many_search_widget/static/description/assets/icons/training.png b/addons_extensions/one2many_search_widget/static/description/assets/icons/training.png new file mode 100644 index 000000000..884ca024d Binary files /dev/null and b/addons_extensions/one2many_search_widget/static/description/assets/icons/training.png differ diff --git a/addons_extensions/one2many_search_widget/static/description/assets/icons/translate.svg b/addons_extensions/one2many_search_widget/static/description/assets/icons/translate.svg new file mode 100644 index 000000000..af9c8a1aa --- /dev/null +++ b/addons_extensions/one2many_search_widget/static/description/assets/icons/translate.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/addons_extensions/one2many_search_widget/static/description/assets/icons/update.png b/addons_extensions/one2many_search_widget/static/description/assets/icons/update.png new file mode 100644 index 000000000..ecbc5a01a Binary files /dev/null and b/addons_extensions/one2many_search_widget/static/description/assets/icons/update.png differ diff --git a/addons_extensions/one2many_search_widget/static/description/assets/icons/user.png b/addons_extensions/one2many_search_widget/static/description/assets/icons/user.png new file mode 100644 index 000000000..6ffb23d9f Binary files /dev/null and b/addons_extensions/one2many_search_widget/static/description/assets/icons/user.png differ diff --git a/addons_extensions/one2many_search_widget/static/description/assets/icons/video.png b/addons_extensions/one2many_search_widget/static/description/assets/icons/video.png new file mode 100644 index 000000000..576705b17 Binary files /dev/null and b/addons_extensions/one2many_search_widget/static/description/assets/icons/video.png differ diff --git a/addons_extensions/one2many_search_widget/static/description/assets/icons/whatsapp.png b/addons_extensions/one2many_search_widget/static/description/assets/icons/whatsapp.png new file mode 100644 index 000000000..d513a5356 Binary files /dev/null and b/addons_extensions/one2many_search_widget/static/description/assets/icons/whatsapp.png differ diff --git a/addons_extensions/one2many_search_widget/static/description/assets/icons/wrench-icon.svg b/addons_extensions/one2many_search_widget/static/description/assets/icons/wrench-icon.svg new file mode 100644 index 000000000..174b5a465 --- /dev/null +++ b/addons_extensions/one2many_search_widget/static/description/assets/icons/wrench-icon.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/addons_extensions/one2many_search_widget/static/description/assets/icons/wrench.png b/addons_extensions/one2many_search_widget/static/description/assets/icons/wrench.png new file mode 100644 index 000000000..6c04dea0f Binary files /dev/null and b/addons_extensions/one2many_search_widget/static/description/assets/icons/wrench.png differ diff --git a/addons_extensions/one2many_search_widget/static/description/assets/modules/courier_management.jpg b/addons_extensions/one2many_search_widget/static/description/assets/modules/courier_management.jpg new file mode 100644 index 000000000..3e4a22c32 Binary files /dev/null and b/addons_extensions/one2many_search_widget/static/description/assets/modules/courier_management.jpg differ diff --git a/addons_extensions/one2many_search_widget/static/description/assets/modules/cw_sale.png b/addons_extensions/one2many_search_widget/static/description/assets/modules/cw_sale.png new file mode 100644 index 000000000..1b75c62d5 Binary files /dev/null and b/addons_extensions/one2many_search_widget/static/description/assets/modules/cw_sale.png differ diff --git a/addons_extensions/one2many_search_widget/static/description/assets/modules/cw_stock.png b/addons_extensions/one2many_search_widget/static/description/assets/modules/cw_stock.png new file mode 100644 index 000000000..62af09ec6 Binary files /dev/null and b/addons_extensions/one2many_search_widget/static/description/assets/modules/cw_stock.png differ diff --git a/addons_extensions/one2many_search_widget/static/description/assets/modules/delivery_split.jpg b/addons_extensions/one2many_search_widget/static/description/assets/modules/delivery_split.jpg new file mode 100644 index 000000000..76724ebda Binary files /dev/null and b/addons_extensions/one2many_search_widget/static/description/assets/modules/delivery_split.jpg differ diff --git a/addons_extensions/one2many_search_widget/static/description/assets/modules/multi_product_return_from_website.jpg b/addons_extensions/one2many_search_widget/static/description/assets/modules/multi_product_return_from_website.jpg new file mode 100644 index 000000000..7f2cc2ab5 Binary files /dev/null and b/addons_extensions/one2many_search_widget/static/description/assets/modules/multi_product_return_from_website.jpg differ diff --git a/addons_extensions/one2many_search_widget/static/description/assets/modules/purchase_history_of_product.jpg b/addons_extensions/one2many_search_widget/static/description/assets/modules/purchase_history_of_product.jpg new file mode 100644 index 000000000..dab7b184c Binary files /dev/null and b/addons_extensions/one2many_search_widget/static/description/assets/modules/purchase_history_of_product.jpg differ diff --git a/addons_extensions/one2many_search_widget/static/description/assets/screenshots/hero.gif b/addons_extensions/one2many_search_widget/static/description/assets/screenshots/hero.gif new file mode 100644 index 000000000..e69dc4c1a Binary files /dev/null and b/addons_extensions/one2many_search_widget/static/description/assets/screenshots/hero.gif differ diff --git a/addons_extensions/one2many_search_widget/static/description/assets/screenshots/one2many_search_01.png b/addons_extensions/one2many_search_widget/static/description/assets/screenshots/one2many_search_01.png new file mode 100644 index 000000000..5a48dbc66 Binary files /dev/null and b/addons_extensions/one2many_search_widget/static/description/assets/screenshots/one2many_search_01.png differ diff --git a/addons_extensions/one2many_search_widget/static/description/assets/screenshots/one2many_search_02.png b/addons_extensions/one2many_search_widget/static/description/assets/screenshots/one2many_search_02.png new file mode 100644 index 000000000..26421afc6 Binary files /dev/null and b/addons_extensions/one2many_search_widget/static/description/assets/screenshots/one2many_search_02.png differ diff --git a/addons_extensions/one2many_search_widget/static/description/assets/screenshots/one2many_search_03.png b/addons_extensions/one2many_search_widget/static/description/assets/screenshots/one2many_search_03.png new file mode 100644 index 000000000..641b0eff7 Binary files /dev/null and b/addons_extensions/one2many_search_widget/static/description/assets/screenshots/one2many_search_03.png differ diff --git a/addons_extensions/one2many_search_widget/static/description/assets/screenshots/one2many_search_04.png b/addons_extensions/one2many_search_widget/static/description/assets/screenshots/one2many_search_04.png new file mode 100644 index 000000000..14d304509 Binary files /dev/null and b/addons_extensions/one2many_search_widget/static/description/assets/screenshots/one2many_search_04.png differ diff --git a/addons_extensions/one2many_search_widget/static/description/assets/screenshots/one2many_search_05.png b/addons_extensions/one2many_search_widget/static/description/assets/screenshots/one2many_search_05.png new file mode 100644 index 000000000..6c1aa9ef9 Binary files /dev/null and b/addons_extensions/one2many_search_widget/static/description/assets/screenshots/one2many_search_05.png differ diff --git a/addons_extensions/one2many_search_widget/static/description/assets/y18.jpg b/addons_extensions/one2many_search_widget/static/description/assets/y18.jpg new file mode 100644 index 000000000..eea1714f2 Binary files /dev/null and b/addons_extensions/one2many_search_widget/static/description/assets/y18.jpg differ diff --git a/addons_extensions/one2many_search_widget/static/description/banner.jpg b/addons_extensions/one2many_search_widget/static/description/banner.jpg new file mode 100644 index 000000000..915809ed9 Binary files /dev/null and b/addons_extensions/one2many_search_widget/static/description/banner.jpg differ diff --git a/addons_extensions/one2many_search_widget/static/description/icon.png b/addons_extensions/one2many_search_widget/static/description/icon.png new file mode 100644 index 000000000..89a01dd5f Binary files /dev/null and b/addons_extensions/one2many_search_widget/static/description/icon.png differ diff --git a/addons_extensions/one2many_search_widget/static/description/index.html b/addons_extensions/one2many_search_widget/static/description/index.html new file mode 100644 index 000000000..889f20bf8 --- /dev/null +++ b/addons_extensions/one2many_search_widget/static/description/index.html @@ -0,0 +1,994 @@ + + + + + + One2many Search Widget + + + + + + + + + + +
+
+ + + +
+
+ Community +
+
+ Enterprise +
+
+ Odoo.sh +
+
+
+ +
+
+
+
+

+ Quick Search Feature for One2many Fields In Odoo. +

+

One2many Search Widget +

+
+
+ +
+ +
+ +
+
+
+ +
+
+ +
+
+ +
+
+
+

Key + Highlights

+
+
+
+
+ +
+
+ Quick Search Feature for any One2Many Field. +
+

+ Users can perform searches within One2Many fields using this widget.

+ +
+
+
+
+
+ +
+
+ Search for Both Texts and Numbers. +
+

+ You can search for both texts and numbers using this widget. + +

+
+
+
+
+
+ +
+
+ Community,Enterprise and Odoo.sh Support +
+

+ Available in both community, enterprise and odoo.sh editions. +

+
+
+
+
+ +
+
+
+ One2many Search Widget +

+ Are you ready to make your business more + organized? +
Improve now! +

+ +
+
+ +
+
+
+ + + + +
+
+ +
+
+
+
+ acc_bg +
+ +
+
+
+
+

+ Set one2many_search + + Widget +

+
+
+

+ Set the "one2many_search" widget for the One2Many field. +

+
+
+
+ +
+
+
+
+
+
+
+
+
+

+ Search Bar is + + Located +

+
+
+

+ A search bar is located above the One2Many field. +

+
+
+
+ +
+
+
+
+
+
+
+
+
+

+ All lines are shown when the search bar is + + Empty +

+
+
+

+ When the search bar is empty, all rows in the one2many field will be visible. +

+
+
+
+ +
+
+
+
+
+
+
+
+
+

+ Filtering Based on + + Text +

+
+
+

+ The One2Many field is filtered based on the text entered the search bar. + +

+
+
+
+ +
+
+
+
+
+
+
+
+
+

+ Filtering Based on + + Numbers +

+
+
+

+ The One2Many field is filtered based on the numbers entered the search bar. +

+
+
+
+ +
+
+
+
+
+ +
+
+
+ +
+
+
+
+ +
+

+ Available in Odoo Community , Enterprise and Sh.

+
+
+
+
+
+
+ +
+

+ Can Search for Both Texts and Numbers.

+
+
+
+
+
+
+
+ +
+

+ Can Search within One2Many Fields Using this Widget.

+
+
+
+ +
+
+
+
+
+
+
+ +
+ +
+ +
+

+ To enable the search functionality, you need to set the one2many_search widget for the desired One2Many field in your Odoo form view. This can be done by modifying the XML view definition of the form to include the widget="one2many_search" attribute for the One2Many field. Once set, a search bar will appear above the One2Many field, allowing users to filter records. +

+
+
+ +
+ +
+

+ Yes, the One2many Search Widget supports filtering for both text and numbers. Users can enter text or numeric values in the search bar above the One2Many field to filter the displayed rows based on the entered criteria. If the search bar is left empty, all rows in the One2Many field will be visible. +

+
+
+
+ +
+
+
+
+
+
+ +
+
+

+ Latest Release 18.0.1.0.0 +

+ + 11th July, 2025 + +
+
+
+
+
+ Add +
+
+
+
    +
  • + Initial Commit +
  • + +
+
+
+
+
+
+
+
+
+
+ + + +
+

+ Related Products +

+ +
+ + +
+

+ Our Services

+ +
+
+ +
+
+ .... +
+
+ +
+ +
+
+ + + + + + diff --git a/addons_extensions/one2many_search_widget/static/src/css/header.css b/addons_extensions/one2many_search_widget/static/src/css/header.css new file mode 100644 index 000000000..eb7a41629 --- /dev/null +++ b/addons_extensions/one2many_search_widget/static/src/css/header.css @@ -0,0 +1,11 @@ +.oe_search_value{ + border-radius: 25px; + border: 2px solid #eceff2; + padding: 10px; + margin-top: 20px; + margin-left: 10px; + width: 600px; + height: 20px; + color:#495057; + font-size: 16px; +} diff --git a/addons_extensions/one2many_search_widget/static/src/fields/one2manysearch/one2manysearch.js b/addons_extensions/one2many_search_widget/static/src/fields/one2manysearch/one2manysearch.js new file mode 100644 index 000000000..832457157 --- /dev/null +++ b/addons_extensions/one2many_search_widget/static/src/fields/one2manysearch/one2manysearch.js @@ -0,0 +1,22 @@ +/** @odoo-module **/ +import { registry } from "@web/core/registry"; +import { X2ManyField, x2ManyField } from "@web/views/fields/x2many/x2many_field"; + +export class One2ManySearch extends X2ManyField { +// Whenever text is entered into the search input box, it dynamically +// filters the content of the One2Many field to display only matching records + onInputKeyUp(event) { + const value = event.currentTarget.value.toLowerCase(); + const rows = document.querySelectorAll(".o_list_table tbody tr"); + rows.forEach(row => { + const text = row.textContent.toLowerCase(); + row.style.display = text.includes(value) ? "" : "none"; + }); +} +} +One2ManySearch.template = "One2ManySearchTemplate"; +export const one2ManySearch = { + ...x2ManyField, + component: One2ManySearch, +}; +registry.category("fields").add("one2many_search", one2ManySearch); diff --git a/addons_extensions/one2many_search_widget/static/src/fields/one2manysearch/one2manysearch_template.xml b/addons_extensions/one2many_search_widget/static/src/fields/one2manysearch/one2manysearch_template.xml new file mode 100644 index 000000000..7c80fed95 --- /dev/null +++ b/addons_extensions/one2many_search_widget/static/src/fields/one2manysearch/one2manysearch_template.xml @@ -0,0 +1,18 @@ + + + + + +
+
+ +
+
+
+
+
diff --git a/addons_extensions/project_task_timesheet_extended/__manifest__.py b/addons_extensions/project_task_timesheet_extended/__manifest__.py index f9fa63cda..dbefd4e29 100644 --- a/addons_extensions/project_task_timesheet_extended/__manifest__.py +++ b/addons_extensions/project_task_timesheet_extended/__manifest__.py @@ -43,6 +43,8 @@ Key Features: 'view/project_stages.xml', 'view/task_stages.xml', 'view/deployment_log.xml', + 'view/maintenance_support.xml', + 'view/project_closer.xml', 'view/project.xml', 'view/project_task.xml', 'view/timesheets.xml', diff --git a/addons_extensions/project_task_timesheet_extended/models/__init__.py b/addons_extensions/project_task_timesheet_extended/models/__init__.py index 671e43486..610eb5339 100644 --- a/addons_extensions/project_task_timesheet_extended/models/__init__.py +++ b/addons_extensions/project_task_timesheet_extended/models/__init__.py @@ -10,6 +10,8 @@ from . import project_code_commit from . import project_stages from . import task_stages from . import deployment_log +from . import maintenance_support +from . import project_closer from . import project from . import project_task from . import timesheets diff --git a/addons_extensions/project_task_timesheet_extended/models/maintenance_support.py b/addons_extensions/project_task_timesheet_extended/models/maintenance_support.py new file mode 100644 index 000000000..12d7d8846 --- /dev/null +++ b/addons_extensions/project_task_timesheet_extended/models/maintenance_support.py @@ -0,0 +1,43 @@ +from odoo import models, fields, api + +class MaintenanceSupport(models.Model): + _name = 'project.maintenance.support' + _description = 'Maintenance & Support Logs' + _order = 'support_date desc' + + # Link to Project + project_id = fields.Many2one('project.project', string="Project") + + # Basic Details + support_date = fields.Date(string="Support Date", required=True) + support_type = fields.Selection([ + ('bug_fix', 'Bug Fix'), + ('enhancement', 'Enhancement'), + ('support_call', 'Support Call'), + ('system_check', 'System Check') + ], string="Support Type", required=True) + + issue_reported = fields.Char(string="Issue") + root_cause = fields.Text(string="Root Cause") + resolution = fields.Text(string="Resolution Provided") + + status = fields.Selection([ + ('pending', 'Pending'), + ('in_progress', 'In Progress'), + ('resolved', 'Resolved'), + ('on_hold', 'On Hold') + ], string="Status", default='pending') + + assigned_to = fields.Many2one('res.users', string="Handled By") + time_spent = fields.Float(string="Time Spent (Hours)") + + notes = fields.Text(string="Notes") + + # Attachments + maintenance_file_ids = fields.Many2many( + 'ir.attachment', + 'maintenance_support_attachment_rel', + 'support_id', + 'attachment_id', + string="Files" + ) diff --git a/addons_extensions/project_task_timesheet_extended/models/project.py b/addons_extensions/project_task_timesheet_extended/models/project.py index 4b6381ad1..992318f9b 100644 --- a/addons_extensions/project_task_timesheet_extended/models/project.py +++ b/addons_extensions/project_task_timesheet_extended/models/project.py @@ -138,7 +138,33 @@ class ProjectProject(models.Model): 'project_id', string="Deployment Logs" ) + maintenance_support_ids = fields.One2many( + 'project.maintenance.support', + 'project_id', + string="Maintenance Logs" + ) + all_deliverables_submitted = fields.Boolean(string="All Deliverables Submitted") + final_qa_done = fields.Boolean(string="Final QA Completed") + client_signoff_closure = fields.Boolean(string="Client Closure Sign-Off") + billing_completed = fields.Boolean(string="Billing Completed") + training_completed = fields.Boolean(string="Training Completed") + + # ------------------------ + # B. Closure Documents + # ------------------------ + closure_document_ids = fields.One2many( + "project.closure.document", + "project_id", + string="Closure Documents" + ) + + # ------------------------ + # C. Learning & Review + # ------------------------ + lessons_learned = fields.Text(string="Lessons Learned") + challenges_faced = fields.Text(string="Challenges Faced") + future_recommendations = fields.Text(string="Future Recommendations") @api.depends('require_sprint','project_stages','assign_approval_flow') def _compute_project_project_stages(self): for rec in self: diff --git a/addons_extensions/project_task_timesheet_extended/models/project_closer.py b/addons_extensions/project_task_timesheet_extended/models/project_closer.py new file mode 100644 index 000000000..ef2ab148c --- /dev/null +++ b/addons_extensions/project_task_timesheet_extended/models/project_closer.py @@ -0,0 +1,26 @@ +from odoo import models, fields + +class ProjectClosureDocument(models.Model): + _name = "project.closure.document" + _description = "Closure Stage Documents" + _rec_name = "document_name" + + project_id = fields.Many2one("project.project", required=True, ondelete="cascade") + + document_name = fields.Char(required=True) + upload_date = fields.Date(default=fields.Date.today) + uploaded_by = fields.Many2one("res.users", default=lambda self: self.env.user) + + notes = fields.Text() + + # Binary file upload + datas = fields.Binary("File") + mimetype = fields.Char("Mimetype") + filename = fields.Char("Filename") + + # Status for approval workflow + status = fields.Selection([ + ('pending', "Pending"), + ('approved', "Approved"), + ('rejected', "Rejected"), + ], default='pending') diff --git a/addons_extensions/project_task_timesheet_extended/security/ir.model.access.csv b/addons_extensions/project_task_timesheet_extended/security/ir.model.access.csv index 5b618eb20..119de08e1 100644 --- a/addons_extensions/project_task_timesheet_extended/security/ir.model.access.csv +++ b/addons_extensions/project_task_timesheet_extended/security/ir.model.access.csv @@ -58,4 +58,8 @@ access_project_task_time_lines_manager,access_project_task_time_lines_manager,mo access_user_task_availability,user.task.availability.access,model_user_task_availability,base.group_user,1,0,0,0 -access_project_deployment_log_user,access.project.deployment.log.user,model_project_deployment_log,base.group_user,1,1,1,1 \ No newline at end of file +access_project_deployment_log_user,access.project.deployment.log.user,model_project_deployment_log,base.group_user,1,1,1,1 + +access_project_maintenance_support_user,access.project.maintenance.support.user,model_project_maintenance_support,base.group_user,1,1,1,1 + +access_project_closure_document_user,access.project.closure.document.user,model_project_closure_document,base.group_user,1,1,1,1 \ No newline at end of file diff --git a/addons_extensions/project_task_timesheet_extended/view/deployment_log.xml b/addons_extensions/project_task_timesheet_extended/view/deployment_log.xml index 1519d770a..40c83532f 100644 --- a/addons_extensions/project_task_timesheet_extended/view/deployment_log.xml +++ b/addons_extensions/project_task_timesheet_extended/view/deployment_log.xml @@ -5,7 +5,7 @@ project.deployment.log.kanban project.deployment.log - + @@ -18,39 +18,61 @@ -
-
- +
+ + +
+
- -
- +
+ +
+ - +
-
-
    -
  • Deployment Ready: - -
  • -
  • QA Signoff: - -
  • -
  • Client Signoff: - -
  • -
  • Backup: - -
  • -
+ +
+
+ Deployment Ready: + + + +
+ +
+ QA Signoff: + + + +
+ +
+ Client Signoff: + + + +
+ +
+ Backup: + + + +
- + + +
+ Notes: +
+ + + +
+
diff --git a/addons_extensions/project_task_timesheet_extended/view/maintenance_support.xml b/addons_extensions/project_task_timesheet_extended/view/maintenance_support.xml new file mode 100644 index 000000000..ec22f7d2a --- /dev/null +++ b/addons_extensions/project_task_timesheet_extended/view/maintenance_support.xml @@ -0,0 +1,140 @@ + + + + + + project.maintenance.support.form + project.maintenance.support + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+
+ + + + project.maintenance.support.list + project.maintenance.support + + + + + + + + + + + + + + project.maintenance.support.kanban + project.maintenance.support + + + + + + + + + + +
+
+
+ +
+ +
+ + +
+
+
+
+ Status: + + + + +
+
+ Handled By: + + + + + +
+
+
+ Time Spent: + + + +
+ +
+ + +
+ Issue: +
+ + + +
+
+
+
+
+
+
+
+ + + + Maintenance & Support + project.maintenance.support + list,form,kanban + + +
diff --git a/addons_extensions/project_task_timesheet_extended/view/project.xml b/addons_extensions/project_task_timesheet_extended/view/project.xml index 823f6eab8..757863e8e 100644 --- a/addons_extensions/project_task_timesheet_extended/view/project.xml +++ b/addons_extensions/project_task_timesheet_extended/view/project.xml @@ -602,6 +602,38 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/addons_extensions/project_task_timesheet_extended/view/project_closer.xml b/addons_extensions/project_task_timesheet_extended/view/project_closer.xml new file mode 100644 index 000000000..7979151f0 --- /dev/null +++ b/addons_extensions/project_task_timesheet_extended/view/project_closer.xml @@ -0,0 +1,114 @@ + + + + + project.closure.document.kanban + project.closure.document + + + + + + + + + + +
+ + + +
+
+ +
+ +
+ + +
+ +
+
+
+ Status: + + + +
+ +
+ Uploaded By: + + + +
+ +
+ + +
+ Notes: +
+ + + +
+
+
+
+
+
+ +
+
+ + + project.closure.document.form + project.closure.document + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+
+ + + Project Closure Document + project.closure.document + kanban,form + + + +