-
+
+
@@ -368,4 +470,4 @@
-
\ No newline at end of file
+
diff --git a/bemade_fsm/reports/worksheet_custom_reports.xml b/bemade_fsm/reports/worksheet_custom_reports.xml
index 70d099b..e8daf4e 100644
--- a/bemade_fsm/reports/worksheet_custom_reports.xml
+++ b/bemade_fsm/reports/worksheet_custom_reports.xml
@@ -5,9 +5,12 @@
Work Order Report (PDF)
bemade_fsm.work_order
bemade_fsm.work_order
-
'%s Work Order %s' % (
- time.strftime('%Y-%m-%d'), object.work_order_number)
+
'%s %s' % (
+ object.planned_date_begin.strftime('%Y-%m-%d') if object.planned_date_begin else time.strftime('%Y-%m-%d'),
+ object.name
+ )
+
qweb-pdf
-
\ No newline at end of file
+
diff --git a/bemade_fsm/reports/worksheet_templates.xml b/bemade_fsm/reports/worksheet_templates.xml
deleted file mode 100644
index 026f037..0000000
--- a/bemade_fsm/reports/worksheet_templates.xml
+++ /dev/null
@@ -1,146 +0,0 @@
-
-
-
-
- Complete Worksheet Report (PDF)
- project.task
- qweb-pdf
- bemade_fsm.worksheet_complete
-
- '%s Worksheet %s' % (time.strftime('%Y-%m-%d'), object.name)
-
-
- report
-
-
-
-
-
-
-
-
-
-
-
-
-
- Customer:
-
-
-
- Service Address:
-
-
-
-
-
- Work Order
-
-
-
-
-
-
- Your Reference:
-
-
-
- Site Contacts:
-
-
-
-
-
-
- Work order attn:
-
-
-
-
-
-
-
-
-
-
-
Interventions
-
-
-
-
-
-
-
-
Equipment:
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/bemade_fsm/tests/test_equipment.py b/bemade_fsm/tests/test_equipment.py
index 16e06e2..879f129 100644
--- a/bemade_fsm/tests/test_equipment.py
+++ b/bemade_fsm/tests/test_equipment.py
@@ -19,3 +19,7 @@ class TestEquipment(BemadeFSMBaseTest):
partner_company.write({'equipment_ids': [Command.set([])]})
with self.assertRaises(MissingError):
equipment.name
+
+ def test_compute_complete_name_when_name_blank(self):
+ equipment = self._generate_equipment(name=False)
+ complete_name = equipment.complete_name
diff --git a/bemade_fsm/tests/test_task.py b/bemade_fsm/tests/test_task.py
index c2b5543..e04cffc 100644
--- a/bemade_fsm/tests/test_task.py
+++ b/bemade_fsm/tests/test_task.py
@@ -23,7 +23,8 @@ class TaskTest(BemadeFSMBaseTest):
task.propagate_assignment = True
task.write({
- 'user_ids': [Command.set([self.user.id])]
+ 'user_ids': [Command.set([self.user.id])],
+ 'propagate_assignment': True,
})
self.assertTrue(all([t.user_ids == self.user for t in task | task._get_all_subtasks()]))
@@ -31,7 +32,8 @@ class TaskTest(BemadeFSMBaseTest):
def test_reassigning_task_doesnt_propagate_by_default(self):
task = self.task
task.write({
- 'user_ids': [Command.set([self.user.id])]
+ 'user_ids': [Command.set([self.user.id])],
+ 'propagate_assignment': True,
})
self.assertFalse(any([t.user_ids for t in task.child_ids.child_ids]))
diff --git a/bemade_fsm/views/res_partner.xml b/bemade_fsm/views/res_partner.xml
index 004311e..7d47c0f 100644
--- a/bemade_fsm/views/res_partner.xml
+++ b/bemade_fsm/views/res_partner.xml
@@ -18,20 +18,20 @@
-
-
+ attrs="{'invisible': [('company_type','=','company'), ('type', '=', 'delivery')]}">
diff --git a/bemade_open_project_details/__init__.py b/bemade_open_project_details/__init__.py
new file mode 100644
index 0000000..e69de29
diff --git a/bemade_open_project_details/__manifest__.py b/bemade_open_project_details/__manifest__.py
new file mode 100644
index 0000000..ca5354a
--- /dev/null
+++ b/bemade_open_project_details/__manifest__.py
@@ -0,0 +1,39 @@
+#
+# Bemade Inc.
+#
+# Copyright (C) June 2023 Bemade Inc. ().
+# Author: mdurepos (Contact : it@bemade.org)
+#
+# This program is under the terms of the Odoo Proprietary License v1.0 (OPL-1)
+# It is forbidden to publish, distribute, sublicense, or sell copies of the Software
+# or modified copies of the Software.
+#
+# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
+# IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
+# DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
+# ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
+# DEALINGS IN THE SOFTWARE.
+#
+{
+ 'name': 'Open Project Details',
+ 'version': '15.0.0.0.1',
+ 'summary': 'Open Project Details',
+ 'description': """
+ This module adds the ability to view project details from the project form view.
+ """,
+ 'category': 'Project',
+ 'author': 'Bemade Inc.',
+ 'website': 'https://www.bemade.org',
+ 'license': 'OPL-1',
+ 'depends': [
+ 'project',
+ ],
+ 'data': [
+ 'views/project_project_views.xml'
+ ],
+ 'demo': [],
+ 'installable': True,
+ 'auto_install': False,
+}
diff --git a/bemade_open_project_details/views/project_project_views.xml b/bemade_open_project_details/views/project_project_views.xml
new file mode 100644
index 0000000..8458b5b
--- /dev/null
+++ b/bemade_open_project_details/views/project_project_views.xml
@@ -0,0 +1,20 @@
+
+
+
+
+
+ project.view.project.kanban.inherit
+ project.project
+
+
+
+
+
+ Open
+
+
+
+
+
diff --git a/bemade_packing_wizard/__manifest__.py b/bemade_packing_wizard/__manifest__.py
index 41b136d..0e822a8 100644
--- a/bemade_packing_wizard/__manifest__.py
+++ b/bemade_packing_wizard/__manifest__.py
@@ -1,6 +1,6 @@
{
'name': 'Packing wizard',
- 'version': '15.0.1.0.0',
+ 'version': '15.0.1.0.1',
'category': 'Extra Tools',
'summary': 'Allow automated packing type creation',
'description': """
diff --git a/bemade_packing_wizard/wizard/choose_delivery_package.py b/bemade_packing_wizard/wizard/choose_delivery_package.py
index 55a0a9e..f7cfc01 100644
--- a/bemade_packing_wizard/wizard/choose_delivery_package.py
+++ b/bemade_packing_wizard/wizard/choose_delivery_package.py
@@ -59,7 +59,7 @@ class ChooseDeliveryPackage(models.TransientModel):
# if no package type found, create one
if not delivery_package_type:
delivery_package_type = delivery_package_type.create({
- 'name': f'Box {vals["width"]}x{vals["height"]}x{vals["length"]}',
+ 'name': f'Box {self.width}x{self.height}x{self.length}',
'width': self.width,
'height': self.height,
'packaging_length': self.length,
diff --git a/bemade_search_supplier_code/__init__.py b/bemade_search_supplier_code/__init__.py
new file mode 100644
index 0000000..02565c9
--- /dev/null
+++ b/bemade_search_supplier_code/__init__.py
@@ -0,0 +1,5 @@
+# -*- coding: utf-8 -*-
+from . import models
+
+
+
diff --git a/bemade_search_supplier_code/__manifest__.py b/bemade_search_supplier_code/__manifest__.py
new file mode 100644
index 0000000..729b3fc
--- /dev/null
+++ b/bemade_search_supplier_code/__manifest__.py
@@ -0,0 +1,24 @@
+{
+ 'name': 'Search Supplier Code',
+ 'version': '1.0',
+ 'summary': 'Search for products by supplier code',
+ 'sequence': 10,
+ 'description': """
+ This module adds the ability to search for products by supplier code.
+ """,
+ 'category': 'Inventory/Purchase',
+ 'author': 'Bemade',
+ 'website': 'https://www.bemade.org',
+ 'depends': [
+ 'purchase',
+ 'product'
+ ],
+ 'data': [
+ 'views/product_product_views.xml',
+ ],
+ 'demo': [],
+ 'installable': True,
+ 'application': False,
+ 'auto_install': False,
+ 'license': 'LGPL-3',
+}
\ No newline at end of file
diff --git a/bemade_search_supplier_code/models/__init__.py b/bemade_search_supplier_code/models/__init__.py
new file mode 100644
index 0000000..5c74c8c
--- /dev/null
+++ b/bemade_search_supplier_code/models/__init__.py
@@ -0,0 +1 @@
+from . import product_product
diff --git a/bemade_search_supplier_code/models/product_product.py b/bemade_search_supplier_code/models/product_product.py
new file mode 100644
index 0000000..21c29cc
--- /dev/null
+++ b/bemade_search_supplier_code/models/product_product.py
@@ -0,0 +1,26 @@
+from odoo import models, fields, api
+
+
+class ProductProduct(models.Model):
+ _inherit = 'product.product'
+
+ supplier_codes = fields.Char(
+ compute='_compute_supplier_codes',
+ string='Supplier Codes',
+ store=True,
+ search='_search_supplier_codes')
+
+ @api.depends('variant_seller_ids', 'variant_seller_ids.product_code')
+ def _compute_supplier_codes(self):
+ for product in self:
+ codes = filter(lambda x: isinstance(x, str), product.variant_seller_ids.mapped('product_code'))
+ product.supplier_codes = ', '.join(codes)
+
+ def _search_supplier_codes(self, operator, value):
+ if not value:
+ return []
+
+ supplierinfo_ids = self.env['product.supplierinfo'].search([('product_code', operator, value)])
+ product_ids = supplierinfo_ids.mapped('product_id.id')
+
+ return [('id', 'in', product_ids)]
\ No newline at end of file
diff --git a/bemade_search_supplier_code/views/product_product_views.xml b/bemade_search_supplier_code/views/product_product_views.xml
new file mode 100644
index 0000000..61861b3
--- /dev/null
+++ b/bemade_search_supplier_code/views/product_product_views.xml
@@ -0,0 +1,12 @@
+
+
+ product.product.search.inherit
+ product.product
+
+
+
+
+
+
+
+
\ No newline at end of file